Thursday, July 25, 2013

Top New Programming Languages/Frameworks of 2013


Mosaic Tiles
It seems around every corner there is a new exciting software language or framework popping up.  Developers continue to build upon older languages and patterns in new ways with new APIs, languages, tools and hardware while social websites such as GitHub and Stack Overflow help spread the excitement and offer community support.

Tools and frameworks came out in the mid-2000's which allowed for web development to become more approachable for those without formal software backgrounds.  CRUD sites could easily be created for blogging, e-commerce or just hosting a fan page on social sites.  The need for Front-End Software Engineers has increased due to the demands for complex single page applications not to mention the explosion in cloud development, mobile and cross-platform development, etc.  While Engineers have early exposure into architecture of applications with consideration for performance, security, accessibility, maintainability, extensibility and the list goes on, we do love to solve problems.
As a rule, a new language should be learned each year, or at least explored.  I've been primarily interested in HTML5 technologies and languages which are all about coding and less about configuration and setup.  The best part about a lot of new languages and web frameworks is that the creators are offering full-stack solutions from IDEs, debuggers, and hosting servers to lots of libraries to reduce rework.

This is an exciting cycle in software development and our tool belt is getting larger with each generation.  In no particular order are a few exciting projects I've been following this year and do find actually fun to use. 
  • Dart - A new language, with tools and libraries, for structured web app engineering 
  • Meteor - an open-source platform for building top-quality web apps in a fraction of the time, whether you're an expert developer or just getting started. 
  • Backbone js - gives structure to web applications by providing models, collections, views and connects it all to your existing API over a RESTful JSON interface. 
  • Groovy/Grails - an Open Source, full stack, web application framework for the JVM
  • Android - a Linux-based operating system[9] designed primarily for touchscreen mobile devices such as smartphones and tablet computers
  • Go - an open source programming environment that makes it easy to build simple, reliable, and efficient software. 
There is a plethora of options available to us all.  I believe success for teams will likely come to those teams that choose the right tool for the job and can adapt quickly in using new or old tools when necessary. 

Here is a particularly interesting infogram from IEEE on the The Top 10 Programming LanguagesWhat languages are you exploring this year?