Guest Author: Joe Ellegood
In a time when over half of all software development work (TIOBE) is being done on a few staid languages, is there enough room for improvement to justify more programming languages? Every year brings evolutionary improvements to existing languages that programmers know and love. That same year, however, a handful of new programming languages aim to spark a revolution with new features and syntax that older languages have only dreamed about. So are these new programming languages worth it? As a programmer, is it worth the time to learn this new set of building blocks, another tool for my “programming toolbox”? As a manager, will a new language help my applications build faster, run faster, or be more maintainable in the years to come? These are the questions we will try to answer for a few of the newest “up and coming” languages.
My Take: Dart is a web language has a syntax that is more familiar to all programmers, but its slow native VM adoption rate means it will be slow going. Once Dart gains the interest of more web developers I think it will flourish.
Next up is a one-size-fits-all language: Scala. Scala, in development since 2003 by Martin Odersky and released publicly in 2004, is touted as a “scalable language”. That means that it can be used for scripting, applications, or even for mission critical systems (WHATISSCALA). This scalability is achieved through a combination of features. It is a fully object-oriented language, where every value is an object and every operation is a method call. It is a functional language, which among other things means it supports first-class functions as well as generally prefers immutability over mutation in objects. It is also compatible not only with the Java VM through native compilation to Java ByteCode, but also with all Java libraries, frameworks, and tools. Scala has a lot of functional language features that Java doesn’t including anonymous functions (closures), type inference, and lazy initialization. This focus on different programming concepts puts Scala in a weird position because it is not trying to compete with Java (on the contrary, it fully supports Java), but adds another layer of.. well.. scalability that programmers may find intriguing.
My Take: Given how Scala has been positioned I see this language growing in popularity for years to come. More companies are adopting it, and it doesn’t require anything else to get started other than a Java VM (which is fairly ubiquitous).
My Take: Red Hat is taking a risk in developing Ceylon as opposed to supporting Scala, but it has some unique features that differentiate it. I think it will have a harder time gaining popularity in the wake of Scala, but its unique take on some programming language fundamentals differentiates it enough to keep it relevant.
About Guest Author Joe Ellegood:
Joe Ellegood is a Software Engineer based in St. Louis, MO. A graduate of Missouri University of Science and Technology, Joe spends his free time researching and learning new programming languages, working on small hardware side projects, and gaming. He has worked with such notable companies as Garmin International, The Boeing Company, and Thompson Reuters.