Legjobb válasz
A Python eléggé képes szerveroldali nyelvként használni. Vannak más lehetőségek is, amelyek az igényeitől függően lehetnek jobb választások:
Go, PHP, Java / Kotlin és C # névvel néhány. Ezek vagy szerveroldali könyvtárakkal rendelkeznek (vagy Go és PHP esetén, amelyek kifejezetten szerveroldali motorokként épülnek).
Válasz
Biztosak voltunk benne, hogy nem akartuk használni a PHP-t. A Facebook örökös okokból ragaszkodik ehhez, nem azért, mert ez a legjobb választás jelenleg. [1] A legfontosabb elvonás ebből a tapasztalatból az, hogy a programozási nyelv megválasztása nagyon fontos, és ennek megváltoztatása rendkívül költséges.
A Python egy olyan nyelv volt, amelyet Charlie és én egyaránt jól ismertünk (bár ezt most sokkal jobban ismerem, mint Tettem, amikor elkezdtük). Röviden átgondoltuk a C # -ot, a Java-t és a Scalát is. A Python legnagyobb problémája a sebesség és a gépi ellenőrzés hiánya.
A C # igencsak ígéretesnek tűnt. Programozási nyelvként nagyon jó, de:
- Nem akartunk a Microsoft veremben lenni. Valami újat akartunk megtanulni, és az MS SQL Server valójában nagyon jónak tűnt, de tudtuk, hogy sok olyan nyílt forráskóddal kell integrálnunk, amely csak másodosztályú támogatást nyújt a .NET számára, ha egyáltalán támogatja. Ezenkívül manapság a legjobb mérnökök a nyílt forráskódú dolgokat használják.
- Nem akartuk kockáztatni, hogy a Mono-val (a C # /. NET nyílt forráskódú implementációja) vagyunk. Nem világos, hogy mennyi ideig lesz finanszírozás a projekthez, és különféle teljesítményproblémákról hallottam. Ráadásul úgy tűnt, hogy minden más a C # ökoszisztémában azt feltételezi, hogy a Microsoft veremben vagyunk.
Sok kis okból kifolyólag a Java programokat végül hosszabb és fájdalmasabb írni, mint az ezzel egyenértékű Python programokat. Ugyancsak nehezebb együttműködni a nem Java cuccokkal. A Scalának sok hátránya volt a Java-nak és a JVM-nek, bár nem volt olyan rossz. A nyelv kissé túl újnak tűnt, és mintha felesleges kockázattal járna (például ki tudja, milyen jó lesz a támogatás 10 év múlva).
Két másik nyelv, amelyekre nagyon röviden gondoltunk, az OCaml és Haskell (egyikük sem volt elég nagy ökoszisztémával vagy elég jó szabványos könyvtárral, és mindkettő potenciálisan túl nehéz volt néhány tervező / adatelemző / nem mérnök számára, akiknek esetleg kódot kellett írniuk.)
Úgy döntöttünk, hogy a Python elég gyors a legtöbb tennivalónk (mivel a teljesítménykritikus kódunkat a C ++ nyelven írt szerverek háttérbe szorítására fordítjuk, amikor csak lehetséges). Ami a gépellenőrzést illeti, végül nagyon alapos egységteszteket írtunk, amelyeket egyébként is érdemes megírni, és ugyanazokat a célokat érjük el. Nagyon bíztunk abban is, hogy a Python tovább fog fejlődni olyan irányba, amely jó lesz a kódbázisunk életére, miután figyeltük, ahogyan az elmúlt 5 évben fejlődött.
Eddig “ve” eléggé elégedett volt a választással. Van egy kis választási torzítás, de a korai alkalmazottak, akik korábban más nyelvekkel dolgoztak, örültek a Pythonra való áttérésnek, különösen a PHP-ből érkezőknek. A következő dolgok kezdete óta megtörtént:
- A Python 2.6 eljutott odáig, hogy az általunk használt könyvtárak elégsége kompatibilis volt vele, és nagyon könnyen átálltunk rá.
- Tornado (web keretrendszer) nyílt forráskódként jelent meg, és erre költöztettük az élő frissítő webes szolgáltatásunkat.
- A PyPy odáig jutott, hogy úgy tűnik, hogy végül használható lesz, és jelentős gyorsulást fog elérni.
Mindezek együttesen bíznak bennünk abban, hogy a nyelv és az ökoszisztéma jó irányba halad.
[1] Mi a borzalom s PHP? És a Facebook mérnökei élvezik a PHP programozását? és miért nem vándorolt el a Facebook a PHP-től? és mi a PHP néhány előnye más programnyelvekkel szemben?