Paras vastaus
Python pystyy melko hyvin palvelinpuolen kielenä. On muita vaihtoehtoja, jotka tarpeidesi mukaan voivat olla parempi valinta:
Go, PHP, Java / Kotlin ja C # nimeämään muutama. Näillä on joko vakiintuneet palvelinpuolen kirjastot (tai Go- ja PHP-sovellusten tapauksessa, jotka on rakennettu nimenomaan palvelinpuolen moottoreiksi ).
Vastaa
Olimme varmoja, ettemme halunneet käyttää PHP: tä. Facebook on juuttunut siihen vanhoista syistä, ei siksi, että se on paras valinta juuri nyt. [1] Tärkein otteemme tästä kokemuksesta on, että ohjelmointikielen valinta on erittäin tärkeää ja sen muuttaminen on erittäin kallista.
Python oli kieli, jonka Charlie ja minä tiesimme molemmat kohtuullisen hyvin (vaikka tiedän sen nyt paljon paremmin kuin nyt Tein kun aloitimme). Pohdimme myös lyhyesti C #: ta, Java: ta ja Scalaa. Suurimmat ongelmat Pythonissa ovat nopeus ja kirjoitustarkastusten puute.
C # näytti melko lupaavalta. Ohjelmointikielenä se on hienoa, mutta:
- Emme halunneet olla Microsoftin pino. Oppimme jotain uutta, ja MS SQL Server näytti todella hyvältä, mutta tiesimme, että meidän on integroitava monien avoimen lähdekoodin kanssa, jolla on vain toisen luokan tuki .NET: lle, jos se tukee sitä ollenkaan. Suurinta osaa nykypäivän parhaista insinööreistä käytetään myös avoimen lähdekoodin sisältöön.
- Emme halunneet ottaa riskiä olla Monossa (C # /. NET: n avoimen lähdekoodin toteutus). Ei ole selvää, kuinka kauan kyseiselle projektille on varattu rahoitusta, ja kuulin erilaisista suorituskykyongelmista. Lisäksi näytti siltä, että kaikki muu C # -ekosysteemissä olettaa olleen Microsoftin pino.
Monista pienistä syistä Java-ohjelmat ovat lopulta pidempiä ja tuskallisempia kirjoittaa kuin vastaavat Python-ohjelmat. Se on myös vaikeampaa toimia yhdessä muiden kuin Java-tavaroiden kanssa. Scalalla oli paljon Java- ja JVM-haittoja, vaikka se ei ollutkaan niin huono. Kieli tuntui hieman liian uudelta ja se toisi tarpeettomia riskejä (esimerkiksi kuka tietää kuinka hyvä tuki on 10 vuoden kuluttua).
Kaksi muuta kieltä, joista ajattelimme lyhyesti, olivat OCaml ja Haskell (kummallakaan ei ollut tarpeeksi suuria ekosysteemejä tai riittävän hyviä standardikirjastoja, ja molemmat olivat mahdollisesti liian vaikeita joillekin suunnittelijoille / data-analyytikoille / muille kuin insinööreille, joiden on ehkä kirjoitettava koodi).
Päätimme, että Python oli tarpeeksi nopea suurimman osan siitä, mitä meidän on tehtävä (koska työnnämme suorituskykykriittisen koodin C12+ -järjestelmään kirjoitettujen palvelimien takaamiseksi aina kun mahdollista). Kirjoittamisen osalta päädyimme kirjoittamaan erittäin perusteellisia yksikkötestejä, jotka ovat joka tapauksessa kirjoittamisen arvoisia ja saavuttavat suurimman osan samoista tavoitteista. Luotimme myös siihen, että Python kehittyy edelleen suuntaan, joka olisi hyvä koodikantamme elämälle, kun olemme katsoneet sen kehittyvän viimeisten 5 vuoden aikana.
Toistaiseksi olemme ”ve ollut melko tyytyväinen valintaan. Siellä on pieni valinta-puolueellisuus, mutta kaikki varhaiset työntekijät, jotka olivat aiemmin työskennelleet muiden kielten kanssa, siirtyivät mielellään Pythoniin, etenkin PHP: ltä tulevat. Seuraavien asioiden aloittamisesta lähtien tapahtui:
- Python 2.6 pääsi siihen pisteeseen, että riittävä määrä käyttämistämme kirjastoista oli yhteensopivia sen kanssa, ja siirtyimme siihen helposti.
- Tornado (web framework) julkaistiin avoimena lähdekoodina, ja siirrimme päivitettävän verkkopalvelumme siihen.
- PyPy pääsi siihen pisteeseen, jossa näyttää siltä, että sitä lopulta voidaan käyttää ja se antaa meille huomattavaa nopeutta.
Nämä kaikki yhdessä antavat meille varmuuden siitä, että kieli ja ekosysteemi liikkuvat hyvään suuntaan.
[1] Mikä on kauhu PHP: tä? Ja nauttivatko Facebook-insinöörit ohjelmoinnista PHP: ssä? ja miksi Facebookia ei ole siirretty pois PHP: stä? ja mitkä ovat PHP: n edut muihin ohjelmointikieliin nähden?