Cel mai bun răspuns
Python este destul de capabil ca limbaj de pe server. Există alte opțiuni care, în funcție de nevoile dvs., poate fi o alegere mai bună:
Go, PHP, Java / Kotlin și C # pentru a numi câțiva. Acestea au biblioteci de server stabilite (sau în cazul Go și PHP, care sunt construite în mod specific ca server motoare ).
Răspuns
Am fost siguri că nu am vrut să folosim PHP. Facebook este blocat de asta din motive vechi, nu pentru că este cea mai bună alegere în acest moment. [1] Scopul nostru principal din această experiență este că alegerea limbajului de programare este foarte importantă și este extrem de costisitoare de schimbat.
Python a fost un limbaj pe care Charlie și cu mine îl cunoșteam amândoi în mod rezonabil (deși îl știu mult mai bine acum decât Am făcut-o când am început). De asemenea, am luat în considerare pe scurt C #, Java și Scala. Cele mai mari probleme cu Python sunt viteza și lipsa verificării tipografice.
C # părea destul de promițător. Ca limbaj de programare, este „grozav”, dar:
- Nu am vrut să fim în stiva Microsoft. Am fost pregătiți să învățăm ceva nou, iar MS SQL Server părea de fapt destul de bun, dar știam că ar trebui să ne integrăm cu o mulțime de cod sursă deschisă care are suport doar pentru clasa a doua pentru. De asemenea, majoritatea celor mai buni ingineri din zilele noastre sunt folosiți pentru a deschide lucruri open source.
- Nu am vrut să ne asumăm riscul de a fi pe Mono (o implementare open source a C # /. NET). Nu este clar cât timp vor fi finanțate proiectul respectiv și am auzit de diverse probleme de performanță. În plus, părea că orice altceva din ecosistemul C # ar presupune că suntem în stiva Microsoft.
Din multe motive mici, programele Java ajung să fie mai lungi și mai dureroase de scris decât programele Python echivalente. De asemenea, este mai greu de interoperat cu lucruri non-Java. Scala a avut multe dezavantaje ale Java și JVM, deși nu a fost la fel de rău. Limbajul părea puțin prea nou și, ca și cum ar aduce un risc inutil (de exemplu, cine știe cât de bun va fi sprijinul peste 10 ani).
Alte două limbi la care ne-am gândit foarte scurt au fost OCaml și Haskell (niciunul dintre ei nu avea ecosisteme suficient de mari sau biblioteci standard destul de bune și ambele erau potențial prea grele pentru unii designeri / analiști de date / non-ingineri care ar putea avea nevoie să scrie cod).
Am decis că Python este suficient de rapid pentru majoritatea a ceea ce trebuie să facem (deoarece ne împingem codul critic de performanță pentru servere backend scrise în C ++ ori de câte ori este posibil). În ceea ce privește verificarea tipografică, am ajuns să scriem teste unitare foarte amănunțite care merită să fie scrise oricum și să atingem majoritatea acelorași obiective. De asemenea, am avut multă încredere că Python va continua să evolueze într-o direcție care ar fi bună pentru viața bazei noastre de cod, după ce l-am urmărit evoluând în ultimii 5 ani.
Până acum, am A fost destul de mulțumit de alegere. Există o mică părtinire de selecție, dar toți angajații timpurii care lucraseră cu alte limbi în trecut au fost fericiți să treacă la Python, în special cei care provin din PHP. s-a întâmplat:
- Python 2.6 a ajuns la punctul în care suficiente biblioteci pe care le-am folosit erau compatibile cu acesta și am făcut o tranziție foarte ușoară către acesta.
- Tornado (web framework) a fost lansat ca open source și am mutat serviciul nostru de actualizare live în acest sens.
- PyPy a ajuns la punctul în care se pare că va fi în cele din urmă utilizabil și ne va oferi o accelerare semnificativă.
Toate împreună, acestea ne oferă încredere că limbajul și ecosistemul se mișcă într-o direcție bună.
[1] Care sunt ororile s de PHP? și Îți place inginerii Facebook să programeze în PHP? și De ce Facebook nu a migrat departe de PHP? și Care sunt unele dintre avantajele PHP față de alte limbaje de programare? pentru mai multe despre asta.