6 Emerging Programming Languages Career-Minded Developers Should Learn
If you're a developer looking to increase your employ ability, then learning a new language is always a good strategy.
But the big question is this: Which language should you learn?
A quick glance on any developer recruitment site tells you which
common programming languages are in demand. Take a look right now and
you see plenty of vacancies for programmers with skills in programming
languages such as Java, C, C++, C# and Objective C, scripting languages
including Python, PHP, Ruby and JavaScript, and database programming in
SQL.
If you want to stay ahead of the pack, though, and be able to
take your pick of the plum jobs of the future, then it may be worth
looking beyond Java, Python and these other languages.
What about gaining skills and experience in up-and-coming
languages that aren't in demand yet - but may well be soon? It's a
career strategy that worked for programmers who spotted the potential of
Java when it was introduced in the 1990s. Those who got in there early
could walk in to any Java programming job they wanted a few years later -
and demand the very highest rates as well.
The problem is picking the right language to learn, as there are
plenty of new ones to choose from. "Almost all new languages are coming
from open source projects," says Mark Driver,
a research director at Gartner. "That means there are no barriers to
entry, so thousands of new languages are coming on to the scene. Most
disappear quickly, and only a few ever catch on."
Driver says he believes the reason is that, for most
organizations, the "incumbents" such as Java, C++ and C# are just too
entrenched to replace, "and there's very few enterprises that want to
expand the languages they use too much."
But the signs say a few new languages are catching on. Here are six of the most promising ones, in no particular order:
Dart: Replacement for JavaScript
Dart is an open
source language developed by Google as a replacement for JavaScript.
Like other JavaScript replacement languages such as CoffeeScript,
it's not hard for JavaScript developers to learn. It's significant
because it has been designed to make it easy to build large scale,
multi-developer Web apps - something JavaScript itself isn't really
suited to.
Right now, Dart applications can run in Chrome's built-in Dart VM or in other browsers through cross compilation to JavaScript.
Why learn Dart? Google's backing ensures that Dart has a good chance of succeeding.
Opa: Simple, Secure Web Apps
Opa is designed to make
developing Web applications simpler and more secure. How? Instead of
creating browser-side, server-side and back-end database components in
different languages (perhaps JavaScript, PHP and MySQL ) and connecting
them together, you write the whole application in Opa. The compiler then
creates the client and server code and builds the communications
infrastructure between them. Clever.
Although Opa hasn't yet been adopted by enterprises in any
significant way, there are a lot of discussions about the language on
the Internet at the moment, Driver says.
Why learn Opa? Web applications are going to get
more complex and prevalent, and there's unique value in having the
server-side/client-side distribution of code happen automatically.
Scala: Scalable Language in More Than Name Only
Scala is short for
"scalable language," and it's designed to be exactly that: Scala can be
used for tiny programs or very large-scale applications. It's not
particularly new, as it was introduced in 2003, but interest is on the
rise. One key reason for that is that you can optimize code to work with concurrency. Another is simply that many developers like using it.
A key advantage for companies considering Scala is that it
interoperates with Java. It runs on JVMs (and Android), while integrated
development environments (IDEs) such as Eclipse, IntelliJ or NetBeans,
and frameworks such as Spring or Hibernate, all work with it. "The
ability to adopt it on top of existing JVMs is really significant," says
Jeffrey Hammond, a principal analyst at Forrester.
Why learn Scala? It appeals to enterprises that
have already invested in Java and don't want to have to support anything
new in their production environments.
Erlang: With Concurrency Comes Availability
Erlang is another language
gaining momentum because of concurrency. Originally developed in 1986,
Erlang was open sourced in 1998. It's designed for building large-scale,
highly available applications. Erlang's runtime system supports hot swapping, so code can be modified or updated without having to stop a running system.
Language-level features are provided for creating and managing
processes to simplify concurrent programming. Meanwhile, processes
communicate using message passing, removing the need for explicit locks.
Why learn Erlang? Both Gartner's Driver and Forrester's Hammond suggest Erlang is likely to proliferate in the coming months and years.
Ceylon: Modular Java Killer
Based on Java, Ceylon has
been designed as a Java killer. Developed as a language for writing
large programs in teams by Red Hat, the first stable release became
available at the end of 2013.
Modularity is a key feature. Code is organized into packages and
modules, then compiled to module archives. The tooling supports a system
of module repositories, with every module published in a central
repository called Ceylon Herd.
Since Ceylon is based on Java programming and comes with an
Eclipse-based IDE and command-line tools (with built-in modularity
support,) Ceylon shouldn't be too difficult to get up and running if
you're already skilled in Java programming.
Why learn Ceylon? Ceylon programs, compile to
and execute on Java and JavaScript virtual machines - for client and
server systems, it's similar to Opa - and can easily interoperate with
native code.
Go: Language for the Cloud
Go, another open source Google
language, first appearing in 2009. Also known as Golang, Go is a
traditional language like C, but it's written expressly for the cloud,
with concurrency and other features such garbage collection built in.
Large Go applications can be compiled in a few seconds on a single
computer.
Projects written in Go include Docker and Force.com.
"We're hearing a lot about Go at the moment," Driver says. "There's a
lot of experimentation going on with it - but it does have a steep
learning curve."
Why learn Go? The combination of suitability for
the cloud, Google backing and the high level of interest in Go at the
moment suggest that the language will very likely take off.
No comments:
Post a Comment