18 points par ragingwind 2022-08-01 | 3 commentaires | Partager sur WhatsApp
  • Chez Facebook, un langage pris en charge (Supported Language) est une langue pouvant être utilisée de manière durable et bénéficiant de divers soutiens à l’échelle de l’entreprise (explications supplémentaires dans le document)
  • Une fois la décision prise, elle a un impact important sur l’ingénierie, d’où un processus de sélection extrêmement minutieux
  • L’usage de Rust est recommandé pour les services sensibles aux performances et le développement d’outils CLI

3 commentaires

 
xguru 2022-08-01

Ah, haha, j’étais en train d’en faire un résumé pour le publier, mais c’est déjà en ligne ! Ce serait dommage de le perdre, donc je l’ajoute en commentaire~!

  • Meta choisit ses langages avec énormément de prudence
  • Hack, C++, Python, et récemment Rust s’y est ajouté
    • Pour les backends où les performances sont cruciales : C++ et Rust
    • Rust est aussi recommandé pour les CLI
    • Pour la logique métier et les applications stateless, l’écosystème Hack offre le plus haut niveau d’automatisation
    • Pour la data science / le ML / Instagram : Python
    • Java, Erlang, Haskell, Go, etc. ne sont utilisés que pour des cas d’usage spécifiques
  • Ce que signifie un langage de programmation "Supported"
    • Offrir une bonne expérience pour l’édition de code, le débogage, le build, le déploiement, ainsi que pour les bibliothèques cœur et l’interopérabilité
    • Si on choisit ce langage, il n’y a pas besoin plus tard de passer à un autre
    • Dans la plupart des cas, il est recommandé de choisir ce langage pour les nouveaux projets/services
    • Le support complet d’un langage représente un gros investissement pour Meta, donc les autres langages de la "long tail" sont "Community Supported"
      • Pour ces langages, chaque équipe doit assumer elle-même la charge de maintenance, et ils ne devraient pas être utilisés pour de nouveaux développements (sauf si l’équipe y a déjà investi massivement de façon spécifique)
  • Raisons du choix des langages "Supported"
    • Réduire les efforts nécessaires au support des bibliothèques cœur
    • Sécurité et protection de la vie privée
    • Minimiser les risques opérationnels
    • Renforcer l’expertise
    • Améliorer l’expérience développeur
 
tpdns90321 2022-08-02

Étonnant que Facebook, une entreprise de services web et le créateur de React, n’ait pas choisi TS ou JS.

 
cwyang 2022-08-02

C’est un langage côté serveur :-)