Nejlepší odpověď
Python je docela schopný jako jazyk na straně serveru. Existují i další možnosti, které podle vašich potřeb mohou být lepší volbou:
Jmenovat můžete pomocí PHP, Java / Kotlin a C # trochu. Ty mají buď zavedené knihovny na straně serveru (nebo v případě Go a PHP, které jsou vytvořeny speciálně jako motory ) na straně serveru.
Odpověď
Byli jsme si jisti, že jsme nechtěli používat PHP. Facebook je v tom přilepený ze starších důvodů, ne proto, že je to právě teď nejlepší volba. [1] Náš hlavní zážitek z této zkušenosti je, že výběr programovacího jazyka je velmi důležitý a jeho změna je extrémně nákladná.
Python byl jazyk, který jsme oba Charlie a já znali rozumně dobře (i když to teď vím mnohem lépe než Udělal jsem, když jsme začali). Krátce jsme také zvážili C #, Java a Scala. Největšími problémy Pythonu jsou rychlost a nedostatek kontroly typů.
C # se zdálo docela slibné. Jako programovací jazyk je to skvělé, ale:
- Nechtěli jsme být na zásobníku Microsoftu. Byli jsme připraveni naučit se něco nového a MS SQL Server se ve skutečnosti zdál docela dobrý, ale věděli jsme, že se musíme integrovat se spoustou otevřeného zdrojového kódu, který má pouze druhořadou podporu pro .NET, pokud ji vůbec podporuje. Většina z nejlepších techniků je v dnešní době také zvyklá na věci s otevřeným zdrojovým kódem.
- Nechtěli jsme riskovat, že budeme na Mono (implementace open source C # /. NET). „Není jasné, jak dlouho bude financování tohoto projektu trvat, a slyšel jsem o různých problémech s výkonem. Navíc se zdálo, že vše ostatní v ekosystému C # by předpokládalo, že jsme v zásobníku Microsoftu.
Z mnoha důvodů jsou programy Java nakonec delší a bolestivější než psaní ekvivalentní programy Pythonu. Je také těžší spolupracovat s jinými než Java prostředky. Scala měla spoustu nevýhod Javy a JVM, i když to nebylo tak špatné. Jazyk vypadal trochu příliš nový a byl by rád, že by přinesl nějaké zbytečné riziko (například kdo ví, jak dobrá podpora bude za 10 let).
Dva další jazyky, o kterých jsme velmi stručně uvažovali, byly OCaml a Haskell (ani jeden neměl dostatečně velké ekosystémy nebo dostatečně dobré standardní knihovny a obě byly potenciálně příliš tvrdé pro některé designéry / analytiky dat / neinženýry, kteří by možná museli psát kód).
Rozhodli jsme se, že Python byl dostatečně rychlý pro většinu z toho, co musíme udělat (protože náš kód kritický pro výkon posíláme back-end serverům napsaným v C ++, kdykoli je to možné). Pokud jde o kontrolu typů, skončili jsme psaním velmi důkladných testů jednotek, které stejně stojí za to napsat, a dosáhli jsme většiny stejných cílů. Také jsme měli velkou důvěru v to, že Python se bude i nadále vyvíjet směrem, který by byl dobrý pro život naší kódové základny, protože jsme sledovali, jak se vyvíjí za posledních 5 let.
Zatím jsme byli docela spokojeni s výběrem. Existuje malá zkreslení výběru, ale všichni časní zaměstnanci, kteří v minulosti pracovali s jinými jazyky, byli rádi, že přešli na Python, zejména ti, kteří pocházejí z PHP. Od spuštění následujících věcí stalo se:
- Python 2.6 se dostal do bodu, kdy s ním bylo kompatibilní dostatek knihoven, které jsme použili, a provedli jsme k němu velmi snadný přechod.
- Tornado (web Framework) byl vydán jako otevřený zdroj a my jsme k tomu přesunuli naši živou aktualizační webovou službu.
- PyPy se dostal do bodu, kdy to vypadá, že bude nakonec použitelné a umožní nám výrazné zrychlení.
Všichni společně nám dávají jistotu, že jazyk a ekosystém se ubírají dobrým směrem.
[1] Jaká je ta hrůza s PHP? a Baví inženýry Facebooku programování v PHP? a Proč Facebook nepronikl pryč z PHP? a Jaké jsou některé výhody PHP oproti jiným programovacím jazykům? o tom více.