2 ms·
Interesting that you mention Facebook. A team at Facebook can choose whatever language they want, but they're on the hook for creating and maintaining libraries
by nindalf 6y ago
Interesting that you mention Facebook. A team at Facebook can choose whatever language they want, but they're on the hook for creating and maintaining libraries that talk to internal services (config, database etc). There's a tendency to choose one of the existing popular languages (C++, Python, Java) so you get those libraries for free.
Therefore in practice, giving engineers the freedom to make their choices doesn't lead to an explosion in the number of languages used in production.
An engineering team that can get started with a new, esoteric language without having to first build internal libraries is much more likely to try that new language.
- biztos 6y agoParticularly in the case of Java, wouldn't a lot of people be tempted to try languages that can use Java libraries? Like Scala or Kotlin for example?
- nindalf 6y agoIt’s not just libraries though. All software needs to build when invoked with “buck build” and it’s dependencies need to be specified in buck’s configuration format. Scala’s build is different enough that it can’t piggyback off Java here. This requirement is a stumbling block for many languages. For example when compiling Rust, no one actually calls rustc directly, everyone uses cargo. Effectively this meant someone had to reimplement cargo within buck.