Är det en bra idé att använda Python som serversidespråk?


Bästa svaret

Python är ganska kapabelt som serverspråk. Det finns andra val som beroende på dina behov kan vara ett bättre val:

Go, PHP, Java / Kotlin och C # för att namnge några. Dessa har antingen etablerade serverbibliotek (eller i fallet med Go och PHP som är specifikt byggda som serversidan -motorer ).

Svar

Vi var säkra på att vi inte ville använda PHP. Facebook håller fast vid det av äldre skäl, inte för att det är det bästa valet just nu. [1] Vår huvudsakliga hämtning från den erfarenheten är att valet av programmeringsspråk är mycket viktigt och det är extremt kostsamt att ändra.

Python var ett språk som Charlie och jag båda kände ganska bra (även om jag känner det mycket bättre nu än Jag gjorde när vi började). Vi övervägde också kort C #, Java och Scala. De största problemen med Python är hastighet och brist på typkontroll.

C # verkade ganska lovande. Som programmeringsspråk är det bra, men:

  • Vi ville inte vara med i Microsoft-stacken. Vi var på väg att lära oss något nytt, och MS SQL Server verkade faktiskt ganska bra, men vi visste att vi skulle behöva integrera med massor av öppen källkod som bara har andra klassens stöd för .NET, om det alls stöder det. De flesta av de bästa ingenjörerna idag används också för att öppna källkods saker.
  • Vi ville inte ta risken att vara på Mono (en öppen källkodsimplementering av C # /. NET). Det är inte klart hur länge finansieringen kommer att finnas för det projektet, och jag hörde talas om olika prestationsproblem. Dessutom verkade det som om allt annat i C # -ekosystemet skulle anta att vi befann oss i Microsoft-stacken.

Av många små anledningar blir Java-program längre och mer smärtsamma att skriva än motsvarande Python-program. Det är också svårare att samarbeta med icke-Java-saker. Scala hade många nackdelar med Java och JVM, även om det inte var lika illa. Språket verkade lite för nytt och som om det skulle medföra onödig risk (till exempel vem vet hur bra stöd kommer att vara om tio år).

Två andra språk som vi mycket kort tänkte på var OCaml och Haskell (varken hade tillräckligt stora ekosystem eller tillräckligt bra standardbibliotek, och båda var potentiellt för hårda för vissa designers / dataanalytiker / icke-ingenjörer som kan behöva skriva kod).

Vi bestämde oss för att Python var tillräckligt snabb. för det mesta av vad vi behöver göra (eftersom vi driver vår prestandakritiska kod för backend-servrar skrivna i C ++ när det är möjligt). När det gäller typkontroll slutade vi med att skriva mycket noggranna enhetstester som det är värt att skriva ändå och uppnå de flesta av samma mål. Vi hade också mycket förtroende för att Python skulle fortsätta att utvecklas i en riktning som skulle vara bra för vår kodbas efter att ha sett den utvecklas under de senaste fem åren.

Hittills har vi varit ganska nöjd med valet. Det finns en liten urvalsförvrängning, men alla de tidiga anställda som tidigare arbetat med andra språk var glada övergången till Python, särskilt de som kom från PHP. Sedan starten har följande saker hände:

  • Python 2.6 kom till den punkt där tillräckligt med bibliotek vi använde var kompatibla med det, och vi gjorde en mycket enkel övergång till den.
  • Tornado (webb framework) släpptes som öppen källkod, och vi flyttade vår liveuppdaterande webbtjänst till det.
  • PyPy kom till den punkt där det ser ut att det så småningom kommer att vara användbart och kommer att ge oss en betydande hastighet. li>

Sammantaget ger dessa oss förtroende för att språket och ekosystemet går i en bra riktning.

[1] Vad är skräck s av PHP? och Gillar Facebook-ingenjörer att programmera i PHP? och varför har inte Facebook migrerat från PHP? och vad är några av fördelarna med PHP jämfört med andra programmeringsspråk? för mer om det.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *