If you're a developer looking to increase your employability, 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 backend 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. |
||
(Courtesy: Paul Rubens)
|
http://tinyurl.com/l7zvydf
No comments:
Post a Comment