Est-ce une bonne idée dutiliser Python comme langage côté serveur?


Meilleure réponse

Python est tout à fait capable en tant que langage côté serveur. Il existe dautres choix qui, selon vos besoins, peuvent être un meilleur choix:

Go, PHP, Java / Kotlin et C # pour nommer quelques. Celles-ci ont soit des bibliothèques côté serveur établies (ou dans le cas de Go et PHP qui sont spécifiquement construites comme moteurs côté serveur ).

Réponse

Nous étions sûrs de ne pas vouloir utiliser PHP. Facebook est bloqué là-dessus pour des raisons dhéritage, pas parce que cest le meilleur choix pour le moment. [1] Notre principal point à retenir de cette expérience est que le choix du langage de programmation est très important et quil est extrêmement coûteux à changer.

Python était un langage que Charlie et moi connaissions assez bien (même si je le sais beaucoup mieux maintenant que Je lai fait quand nous avons commencé). Nous avons également brièvement examiné C #, Java et Scala. Les plus gros problèmes avec Python sont la vitesse et le manque de vérification de type.

C # semblait assez prometteur. En tant que langage de programmation, cest génial, mais:

  • Nous ne voulions pas être sur la pile Microsoft. Nous étions prêts à apprendre quelque chose de nouveau, et MS SQL Server semblait en fait assez bon, mais nous savions que nous devions intégrer beaucoup de code open source qui na quun support de seconde classe pour .NET, sil le supporte du tout. De plus, la plupart des meilleurs ingénieurs de nos jours sont habitués à des trucs open source.
  • Nous ne voulions pas prendre le risque d’être sur Mono (une implémentation open source de C # /. NET). On ne sait pas combien de temps le financement sera là pour ce projet, et j’avais entendu parler de divers problèmes de performance. De plus, il semblait que tout le reste de lécosystème C # supposerait que nous étions sur la pile Microsoft.

Pour de nombreuses petites raisons, les programmes Java finissent par être plus longs et plus pénibles à écrire que les programmes Python équivalents. Il est également plus difficile dinteragir avec des éléments non Java. Scala avait de nombreux inconvénients de Java et de la JVM, même si ce nétait pas aussi grave. Le langage semblait un peu trop récent et entraînerait des risques inutiles (par exemple, qui sait à quel point le support sera bon dans 10 ans).

Deux autres langues auxquelles nous avons très brièvement pensé étaient OCaml et Haskell (aucun des deux n’avait d’écosystèmes assez grands ou de bibliothèques standard suffisamment bonnes, et les deux étaient potentiellement trop difficiles pour certains concepteurs / analystes de données / non-ingénieurs qui pourraient avoir besoin d’écrire du code).

Nous avons décidé que Python était assez rapide pour la plupart de ce que nous devons faire (puisque nous poussons notre code critique pour les performances vers des serveurs backend écrits en C ++ chaque fois que possible). En ce qui concerne la vérification de type, nous avons fini par écrire des tests unitaires très approfondis qui valent de toute façon la peine dêtre écrits et atteignent la plupart des mêmes objectifs. Nous étions également convaincus que Python continuerait dévoluer dans une direction qui serait bonne pour la vie de notre base de code, après lavoir vu évoluer au cours des 5 dernières années.

Jusquà présent, nous « avons été plutôt satisfait du choix. Il ya un petit biais de sélection, mais tous les premiers employés qui avaient travaillé avec d’autres langages dans le passé étaient heureux de passer à Python, en particulier ceux provenant de PHP. Depuis le début, les choses suivantes ont sest produit:

  • Python 2.6 est arrivé au point où suffisamment de bibliothèques que nous avons utilisées étaient compatibles avec lui, et nous avons fait une transition très facile vers lui.
  • Tornado (web framework) a été publié en open source, et nous avons déplacé notre service Web de mise à jour en direct vers cela.
  • PyPy est arrivé au point où il semble quil sera éventuellement utilisable et nous donnera une accélération significative.

Tous ensemble, cela nous donne lassurance que la langue et lécosystème évoluent dans la bonne direction.

[1] Quelle est lhorreur s de PHP? et Les ingénieurs de Facebook aiment-ils la programmation en PHP? et pourquoi Facebook na-t-il pas migré de PHP? et Quels sont certains des avantages de PHP par rapport aux autres langages de programmation? pour en savoir plus.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *