Beste svaret
Python er ganske i stand som et serversidespråk. Det er andre valg som avhengig av dine behov kan være et bedre valg:
Go, PHP, Java / Kotlin og C # for å nevne Noen. Disse har enten etablerte serversidebiblioteker (eller i tilfelle Go og PHP som er bygget spesielt som serversiden motorer ).
Svar
Vi var sikre på at vi ikke ønsket å bruke PHP. Facebook henger fast på det av eldre årsaker, ikke fordi det er det beste valget akkurat nå. [1] Vår viktigste takeaway fra den erfaringen er at valg av programmeringsspråk er veldig viktig og er ekstremt kostbart å endre.
Python var et språk som Charlie og jeg begge kjente rimelig godt (selv om jeg kjenner det mye bedre nå enn Det gjorde jeg da vi startet). Vi vurderte også kort C #, Java og Scala. De største problemene med Python er hastighet og mangel på typekontroll.
C # virket ganske lovende. Som programmeringsspråk er det flott, men:
- Vi ville ikke være på Microsoft-stakken. Vi var opptatt av å lære noe nytt, og MS SQL Server virket faktisk ganske bra, men vi visste at vi trenger å integrere med masse åpen kildekode som bare har andre klasses støtte for .NET, hvis den i det hele tatt støtter den. Også de fleste av de beste ingeniørene i disse dager er vant til å åpne kildekode.
- Vi ville ikke ta risikoen for å være på Mono (en åpen kildekode-implementering av C # /. NET). Det er ikke klart hvor lang finansiering det vil være til det prosjektet, og jeg har hørt om ulike ytelsesproblemer. I tillegg virket det som alt annet i C # -økosystemet ville anta at vi befant oss på Microsoft-stakken.
Av mange små grunner ender Java-programmer med å være lengre og mer smertefulle å skrive enn tilsvarende Python-programmer. Det er også vanskeligere å samarbeide med ikke-Java-ting. Scala hadde mange ulemper ved Java og JVM, selv om det ikke var like ille. Språket virket litt for nytt og som om det ville medføre unødvendig risiko (for eksempel, hvem vet hvor god støtte vil være om ti år).
To andre språk vi veldig kort tenkte på var OCaml og Haskell. (verken hadde store nok økosystemer eller gode nok standardbiblioteker, og begge var potensielt for harde for noen designere / dataanalytikere / ikke-ingeniører som kanskje trenger å skrive kode).
Vi bestemte oss for at Python var rask nok. for det meste av det vi trenger å gjøre (siden vi skyver vår ytelseskritiske kode for å støtte servere skrevet i C ++ når det er mulig). Så langt som typekontroll, endte vi med å skrive veldig grundige enhetstester som uansett er verdt å skrive, og oppnår de fleste av de samme målene. Vi hadde også stor tillit til at Python ville fortsette å utvikle seg i en retning som ville være bra for hele kodebasen vår, etter å ha sett den utvikle seg de siste 5 årene.
Så langt har vi vært ganske fornøyd med valget. Det er en liten utvalgskvotitet, men alle de tidlige ansatte som tidligere har jobbet med andre språk, var glade for å gå over til Python, spesielt de som kom fra PHP. skjedde:
- Python 2.6 kom til det punktet hvor nok av bibliotekene vi brukte var kompatible med det, og vi gjorde en veldig enkel overgang til den.
- Tornado (web framework) ble utgitt som åpen kildekode, og vi flyttet vår live oppdateringstjeneste til det.
- PyPy kom til et punkt der det ser ut til at det til slutt vil være brukbart og vil gi oss en betydelig hastighet.
Alt i alt gir disse oss tillit til at språket og økosystemet beveger seg i en god retning.
[1] Hva er skrekken s av PHP? og liker Facebook-ingeniører å programmere i PHP? og hvorfor har ikke Facebook migrert fra PHP? og hva er noen av fordelene med PHP i forhold til andre programmeringsspråk? for mer om det.