Programming Languages
Update Jul 27 2022
Meta, formerly known as Facebook, announced Rust is the latest addition to their list of supported server-side languages.
Company | Languages |
---|---|
Meta | Primary supported server-side languages: Hack, C++, Rust, Python Specific use cases: Java, Erlang, Haskell, Go |
Over the years, I've utilized several programming languages in my software solutions, systems, and deliverables. Here's a snap-shot:
ActionScript, Assembly, Awk, BASIC, BBx, C, C++, C#, Clojure, COBOL, CoffeeScript, Crystal, CSS, Delphi, Eiffel, Elixir, Elm, Erlang, F#, Go, Haskell, HTML, IronPython, IronRuby, J#, Java, JavaScript, JRuby, Julia, Jython, Logo, Lua, M, Objective-C, Octave, Pascal, Perl, PowerBuilder, Python, QuickBASIC, R, Rexx, Ruby, Rust, Scala, Shell, SQL, Swift, Visual Basic, Visual C++, VRML, WML, XSLT.
Contemplating my own programming language choices, it's compelling to compare myself to other well known companies. Below is a sample:
At Other Companies
Company | Languages |
---|---|
Airbnb | Ruby |
Amazon | Java, C++, Erlang, Perl, Ruby |
Disqus | Python |
Dropbox | Python, Go, Rust |
Ocaml, PHP, Python, C++, Java, Lua, Erlang, D, Haskell | |
GitHub | Ruby |
C / C++, Go, Java, Python | |
Java, JRuby, JavaScript, Scala | |
Mozilla | C / C++, JavaScript, Rust |
Netflix | Java, Groovy, Python, Ruby, Scala |
PayPal | JavaScript, Go, Python |
Python, Elixir | |
Python | |
Salesforce | Java, Scala |
C++, Java, Scala, Ruby | |
Uber | JavaScript, Python |
Yahoo | Erlang, JavaScript, PHP |
The languages listed can be categorized into the following groups:
Static languages
C, C++, D, Go, Java, Haskell, Rust, Scala
Dynamic languages
Erlang, Elixir, Groovy, JavaScript, JRuby, Ocaml, Perl, PHP, Python, Ruby
Object-oriented languages
C++, D, Java, JRuby, Python, Ruby, Scala
Functional languages
Erlang, Elixir, Haskell, Ocaml
System languages
C, C++, Go, Rust
It is apparent that most companies utilize several programming languages. Some companies start out with one language and eventually migrate to another. For example, Twitter started out with Ruby but eventually migrated to Scala. Likewise, both Google and Dropbox moved from Python to Go. PayPal moved from Java to JavaScript and then to Python and Go. Pinterest moved from Java to Elixir.
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.
At Startups
Startups initially adopt programming languages geared towards developer productivity and agility. This is driven by the desire to release a minimum viable product as soon as possible. Typically, Ruby on Rails has been the dominating trend. In the last few years server-side JavaScript (Node.js) has become a favorite due to performance enhancements over Ruby on Rails.
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.
Which Technologies Do Startups Use?
An Exploration of AngelList Data.
- JavaScript / Node.js
- Ruby / Ruby on Rails
- PHP
- Java
- Python / Django
- Scala
- Clojure / Haskell / Erlang
- C / C++
- Go
- Perl
Indexes
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 |
---|---|---|
|
|
|
Conclusion
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.
Related Articles
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