Over the years, I’ve utilized several programming languages in my software solutions, systems, and deliverables. Here’s a snap-shot:
Contemplating my own programming language choices, it’s compelling to compare myself to other well known companies. Below is a sample:
At Other Companies
|Amazon||Java, C++, Erlang, Perl,
|Dropbox||Python, Go, Rust|
|Ocaml, PHP, Python, C++, Java, Lua, Erlang, D,
|C / C++, Go, Java, Python|
|Netflix||Java, Groovy, Python, Ruby, Scala|
|C++, Java, Scala, Ruby|
The languages listed can be categorized into the following groups:
C, C++, D, Go, Java, Haskell, Rust, Scala
Many companies adopt the “best tool for the job” philosophy. Facebook uses Haskell for Spam detection, D in lieu of C++, and Erlang for concurrency (Messenger Chat). Netflix allows developers to use their language of choice; this is alleviated by their Microservices architecture with REST interfaces.
Startups are also known for adopting more niche programming languages to solve specific problems they have. Functional programming languages such as Haskell and Erlang have seen an increase in use. As well has system languages like Google’s Go.
When a Startup becomes a success they usually spend time optimizing their products, sometimes migrating to programming languages known for more speed or concurrency.
An Exploration of AngelList Data.
- Ruby / Ruby on Rails
- Python / Django
- Clojure / Haskell / Erlang
- C / C++
When considering programming languages in the wild, it is also helpful to review the various language indexes. These indexes reflect what is popular today, and reveal trends on tomorrow’s languages.
|TIOBE Index for April 2016||The 9 Most In-Demand Programming Languages of 2016||Language Trends on GitHub|
Most companies utilize several programming languages, and the languages they use evolve as the company’s needs change over time.
I’m a fan of using the “right tool for the job” and being agile. Many companies, such as Facebook and Netfilx operate this way. Companies like Amazon and Netflix also employ a Microservices architecture which exposes an internal API; obviating many of the concerns of a polyglot environment.
More on Microservices
- Microservices: a definition of this new architectural term
- Microservices in action, Part 1: Introduction to microservices
- From a monolith to microservices + REST: The evolution of LinkedIn’s architecture
- Codemania 2015: Adrian Cockroft
- Migrating to Microservices by Adrian Cockroft (Part 1)
- Adopting Microservices at Netflix: Lessons for Architectural Design
- Adopting Microservices at Netflix: Lessons for Team and Process Design