Programmeertalen goedgekeurd voor gebruik aan de serverzijde bij Meta

Programmeertalen goedgekeurd voor gebruik aan de serverzijde bij Meta

– Het ondersteunen van een programmeertaal bij Meta is een zeer zorgvuldige en weloverwogen beslissing.

– We delen onze interne programmeertaalbegeleiding die onze ingenieurs en ontwikkelaars helpt de beste taal voor hun projecten te kiezen.

– Rust is de nieuwste toevoeging aan Meta’s lijst van ondersteunde server-side talen.

Bij Meta gebruiken we veel verschillende programmeertalen voor een breed scala aan platforms en use cases. Het ondersteunen van een nieuwe taal is geen beslissing die we lichtvaardig nemen. Het is belangrijk dat elke taal die we gebruiken het beste past bij een bepaalde gebruikssituatie, dus we doen een hoge mate van zorgvuldigheid wanneer we een taal evalueren. Taalbeslissingen blijven vaak hangen als ze eenmaal zijn genomen, dus we willen vanaf het begin weloverwogen zijn om onze technici de beste tools te geven om mee te werken.

Vandaag delen we inzichten in onze interne begeleiding over de verschillende talen die een belangrijke rol spelen bij Meta – en specifiek onze server-side programmeertalen, waarvan Rust de nieuwste toevoeging is.

Wat is een ondersteunde taal bij Meta?

Voordat we ingaan op de individuele details, hier is wat: ondersteund betekent (en betekent niet) binnen Meta:

  • Als een taal is ondersteund, kunnen ontwikkelaars rekenen op een goede ervaring met het bewerken, debuggen, bouwen en implementeren van code, evenals met kernbibliotheken en interoperabiliteit. Ontwikkelaars kunnen er ook op rekenen dat die ervaring niet verdwijnt – ze zullen niet worden gevraagd een ondersteunde taal te verlaten. In de meeste gevallen raadt Meta aan om een ​​ondersteunde taal te kiezen voor nieuwe projecten en diensten.
  • Het volledig ondersteunen van een taal is een grote investering voor Meta, dus “long tail” talen zijn dat wel gemeenschap ondersteund. Voor die talen zijn er veel minder garanties, en teams die ze overnemen, zullen de onderhoudslast op zich moeten nemen. In de meeste gevallen moeten teams ze niet gebruiken voor nieuwe toepassingen, tenzij een team al een aanzienlijke investering in de taal heeft gedaan.

Meta’s primaire ondersteunde server-side talen zijn: Hack, C++, Rust en Python.

  • Voor prestatiegevoelige back-endservices moedigen we C++ en Rust aan. Rust is een nieuwe toevoeging aan deze lijst. Er is een snel toenemende Rust-voetafdruk in onze producten en diensten, en we verbinden ons aan Rust voor de lange termijn en verwelkomen early adopters.
  • Voor CLI-tools, raden wij Rust aan. Dit is een nieuwe aanbeveling voor dit jaar.
  • Voor bedrijfslogica en relatief stateless applicaties heeft het Hack-ecosysteem het hoogste niveau van automatisering en ondersteuning bij Meta en is het de aanbevolen taal.
  • Ten slotte blijft Meta onze Python-ontwikkelaars zwaar ondersteunen. Voor data science, ML-applicaties en Instagram blijft Python de taal bij uitstek en we blijven investeren in de ervaring met dit ecosysteem.
  • Voor specifieke gebruikssituaties ondersteunen we andere talen, waaronder Java, Erlang, Haskell en Go.

Hoe zijn we tot onze lijst met ondersteunde talen gekomen?

Laten we uitleggen waarom we een lijst met ondersteunde talen hebben en waarom we over het algemeen terughoudend zijn om talen aan die lijst toe te voegen (hoewel Rust een nieuwe toevoeging is). De belangrijkste reden is dat het een aanzienlijke technische investering vergt om een ​​programmeertaal op Meta-schaal te ondersteunen, en dat de kosten breed worden verdeeld – niet alleen gedragen door de gebruikers. Een paar voorbeelden:

  • Ondersteuning voor kernbibliotheken. Er zijn maar heel weinig geïsoleerde services, en hoe minder talen we hebben, hoe minder druk er is op kernbibliotheken.
  • Veiligheid en privacy. Een gefragmenteerde stapel verhoogt de complexiteit van het inbouwen van belangrijke beveiligings- en privacyfuncties in onze services.
  • Operationeel risico. Als een service een kritiek probleem tegenkomt, heeft deze onmiddellijke hulp nodig. We hebben ongelooflijk veel expertise opgebouwd in het diagnosticeren en oplossen van productieproblemen, en onze reactie op incidenten is afhankelijk van het kunnen lezen, begrijpen en debuggen van services om te helpen bij een groot incident. Het vermijden van versnippering vermindert het operationele risico.
  • Expertise. We bouwen en onderhouden een kritische massa van ingenieurs met expertise in elk van deze talen.
  • Ervaring ontwikkelen. Ondersteunde talen hebben teams die werken aan het verbeteren van gebieden zoals IDE-ondersteuning, bouwsnelheid, foutopsporingservaring en meer.

Het kiezen van een suboptimale taal voor een project kan kostbaar zijn in termen van tijd, efficiëntie en productiviteit. Het is dus de moeite waard om elke taal die we evalueren zwaar onder de loep te nemen. De bovenstaande voorbeelden laten zien hoeveel we investeren in het ondersteunen van een taal.

Rust is de nieuwste server-side taal bij Meta

Sinds we begon onze reis met Rust, is het aantal projecten dat Rust inside Meta gebruikt in versneld tempo toegenomen. We zijn verheugd dat Rust is toegevoegd aan deze lijst met door de server ondersteunde talen, waardoor onze technici meer tools, flexibiliteit en ondersteuning voor hun werk krijgen. Meta zet zich in om langdurige ondersteuning te bieden voor programmeertalen die door onze ontwikkelaar worden gebruikt, en deze stap signaleert Meta’s langdurige inzet en ondersteuning voor het Rust-taalecosysteem.

Leave a Reply

Your email address will not be published.