Programming Languages

Programming Languages

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, 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
Facebook Ocaml, PHP, Python, C++, Java, Lua, Erlang, D,
Haskell
GitHub Ruby
Google C / C++, Go, Java, Python
LinkedIn Java, JRuby, JavaScript,
Scala
Mozilla C / C++, JavaScript, Rust
Netflix Java, Groovy, Python, Ruby, Scala
PayPal JavaScript, Go, Python
Pinterest Python, Elixir
reddit Python
Salesforce Java, Scala
Twitter C++, Java, Scala, Ruby
Uber JavaScript, Python
Yahoo Erlang, JavaScript, PHP
JavaScriptPythonJavaC++RubyScalaErlangGoRustPHPCPerlOcamlLuaDHaskellJRubyGroovyElixir

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.

Platform ServicesJavaPythonNode.jsRRoRGo

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.

  1. JavaScript / Node.js
  2. Ruby / Ruby on Rails
  3. PHP
  4. Java
  5. Python / Django
  6. Scala
  7. Clojure / Haskell / Erlang
  8. C / C++
  9. Go
  10. 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
  1. Java
  2. C
  3. C++
  4. C#
  5. Python
  6. PHP
  7. JavaScript
  8. Perl
  9. Ruby
  10. Visual Basic .NET
  1. SQL
  2. Java
  3. JavaScript
  4. C#
  5. Python
  6. C++
  7. PHP
  8. IOS
  9. Ruby/Rails
  1. JavaScript
  2. Java
  3. Ruby
  4. PHP
  5. Python
  6. CSS
  7. C++
  8. C#
  9. C
  10. HTML

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

  1. Microservices: a definition of this new architectural term
  2. Microservices in action, Part 1: Introduction to microservices
  3. From a monolith to microservices + REST: The evolution of LinkedIn’s architecture
  4. Codemania 2015: Adrian Cockroft
  5. Migrating to Microservices by Adrian Cockroft (Part 1)
  6. Adopting Microservices at Netflix: Lessons for Architectural Design
  7. Adopting Microservices at Netflix: Lessons for Team and Process Design

Edward J. Stembler is a Software Engineer with 21+ years experience in designing and creating software solutions across a wide range of technologies. Passionate about Machine Learning, Data Science, Data Visualization, Elixir, Ruby, Python, Raspberry Pi, Arduino, and Robotics.

Leave a reply:

Your email address will not be published.

Sliding Sidebar

Tweets

Instagram

  • Loved the Croquetas De Jamon Catracho and Toffee Pudding! Alexhellip
    4 weeks ago by ejstembler Loved the Croquetas De Jamon, Catracho, and Toffee Pudding! Alex loved the medium-rare Catracho tenderloin too! And Yana loved the grilled octopus with sour cabbage slaw. We met the chef afterwards. She brought us these tiny Alfajores cookies. Alex asked her what is was, she told him he'd like it. He licked a cookie suspiciously and told her, "There's something wrong with this chocolate. It's too sweet!"
  • Slowly finishing off a loaf of Chicago Italian bread Yesterdayhellip
    1 month ago by ejstembler Slowly finishing off a loaf of Chicago Italian bread. Yesterday it was an egg sandwich, today French toast
  • Bangers amp Mash amp Newcastle for dinner
    1 month ago by ejstembler Bangers & Mash & Newcastle for dinner
  • Chicken Cacciatore for dinner!
    1 month ago by ejstembler Chicken Cacciatore for dinner!
  • 5 burger night!
    1 month ago by ejstembler $5 burger night!