- Supporting a programming language at Meta is a really thorough and deliberate determination.
- We’re sharing our inner programming language direction that helps our engineers and builders opt for the most effective language for their tasks.
- Rust is the latest addition to Meta’s list of supported server-side languages.
At Meta, we use many different programming languages for a wide wide variety of platforms and use conditions. Supporting a new language is not a choice we make evenly. It is significant that every language we adopt is the very best in shape for a certain use scenario, so we do a substantial degree of diligence when we examine a language. Language choices tend to adhere after they are created, so we want to be deliberate from the onset to give our engineers the very best instruments to operate with.
Currently, we’re sharing insights into our interior steering on the several languages that participate in an significant position at Meta — and exclusively our server-side programming languages, to which Rust is the latest addition.
What is a supported language at Meta?
Ahead of we get into the person information, here’s what supported implies (and does not necessarily mean) within Meta:
- If a language is supported, builders can depend on receiving a superior knowledge with code editing, debugging, build, and deployment, as perfectly as main libraries and interoperability. Developers can also count on that knowledge not going absent — they will not be requested to go off a supported language. For most situations, Meta endorses picking out a supported language for new tasks and solutions.
- Absolutely supporting a language is a big investment for Meta, so “long tail” languages are neighborhood supported. For all those languages, there are far fewer ensures, and teams adopting them will have to consider on the servicing load. In most instances, groups really should avoid applying them for new apps, unless a group currently has a substantial investment in the language.
Meta’s primary supported server-side languages are Hack, C++, Rust, and Python.
- For functionality-delicate back-close services, we motivate C++ and Rust. Rust is a new addition to this listing. There’s a speedily expanding Rust footprint in our merchandise and solutions, and we’re committing to Rust lengthy-expression and welcome early adopters.
- For CLI applications, we suggest Rust. This is a new recommendation for this 12 months.
- For business enterprise logic and reasonably stateless apps, the Hack ecosystem has the maximum stage of automation and aid at Meta and is the advised language.
- Lastly, Meta carries on to seriously aid our Python developers. For information science, ML programs, and Instagram, Python carries on to be the language of selection, and we proceed to make investments in the encounter with this ecosystem.
- For particular use conditions, we aid other languages, which includes Java, Erlang, Haskell, and Go. These languages are now not broadly supported outside the house of distinct use cases.
How did we arrive at our list of supported languages?
Let’s reveal why we have a