Top Programming Languages for 2015: The More Things Change...

As we approach the back to school season and the end of summer, it’s a good time look out and examine what software development tools we might add to our curriculum. A quote by a software developer that I admire comes to mind: “The computing field is essentially infinite in all directions.”  With several years of labs at Start Code, summer camps, and high school classes, we have many paths the students can follow. However with so many options it can be overwhelming to newcomers if you don’t filter things down and choose a direction.  The IEEE has just released their list of the top programming languages for 2015.  How do the programming languages and tools used at Start Code hold up? The more things change the more some things surprisingly stay the same. 

The IEEE is a highly respected organization so their opinion and conclusions hold weight. IEEE, pronounced "Eye-triple-E," stands for the Institute of Electrical and Electronics Engineers. It is the worlds largest technical professional organization and its’ members include computer scientists, software developers, information technology professionals, physicists, medical doctors, and many others in addition to IEEE's electrical and electronics engineering core.  Their top 10 list for 2015 can be found here.

The top languages in order are Java, C, C++, Python, and C#.  So we essentially have Java, flavors of C, and Python.  This is good to see because it confirms the first languages that we use with our students, Python and Java.  Java is sitting on top because it is used across platforms including the web, mobile, and desktop environments. With Java powering the Android operating system and also being used by Google in it’s new Android development tool, we can rest assured that it isn’t going anywhere in the near future.  Python has been a darling of the coding community for several years now because and is known for being probably the most readable of all languages and it’s great for starting coders.  Python’s flexibility and quick results continue to surprise with new libraries and shared code constantly available.  I was just speaking with a colleague yesterday sharing notes on lesson plans and tools and he showed me a really cool Python library that can be used for vision and face detection.  And with just a few lines of code!  It’s amazing what Python can do.

Going further down the top ten list we see PHP, JavaScript, and Ruby. These are the tools of the web development community and many might argue why they weren’t ranked higher. I suspect that it’s because of the broad nature of the IEEE including many fields beyond web development including scientists and doctors. This only makes Java and Python more relevant for beginning programmers because we cannot know which direction their interests and skills may go. They could end up in many different fields with the skills developed by learning to code (see our other blog entry about computer science). Python and Java are a wonderful foundation to build upon and if web development is a path they choose then PHP, JavaScript, and Ruby will be there and they will then be even easier to learn. The common concepts, algorithms, data structures, etc., cross between languages and make new ones easier to pick up.

The IEEE article also mentions Apple’s new language, Swift, as a rapid up and comer to the list this year. This is probably due to the fact that Objective-C is notoriously difficult to learn and use. After doing a semester of coding with Objective-C in graduate school, I can attest to that fact. Swift is a welcome addition to the Apple development stable.

Ultimately what matters is that we have something that can grab the students interest and get them motivated and interested. There are so many options and decisions for the beginning programmer to choose from and we have that “infinite in all directions” dilemma mentioned earlier. With so many choices our job at Start Code is to evaluate the tools available and create a path. We choose real languages with real future paths for students going on to college or projects of their own. It’s nice to see Python and Java on still sitting in the top five. However we can't sit still either so we keep updating our tools and lessons. We have supplemented these over time with app development using Corona, game development using Game Maker and others, and also have our eye on excellent tools like Processing. Plus it’s fun for both the students and us!  We have the best job in the world.