So much happened in 2011 but most of it focused around a few interesting centers of action. We look back at the year from a programmer's perspective.

HTML5 and all that

You can't deny that success of HTML5 and the demise of all things .NET and most things Flash came as something of a shock. The writing was on the wall but it all came tumbling down much faster than anticipated. But the story of HTML5 in 2011 has already been written so we won't go over it all again. Let's focus on some of the other events.

Java 7 takes centre stage

After HTML5, 2011 can be characterized as the year of the language. We had revivals and new births aplenty. Perhaps the most complex and compelling story is what happened to Java. After much worry about what Oracle would do to the language, and after Apache resigning from the JSP, the update to create Java 7 went quite well. Everyone seemed pleased with the progress and few bothered to comment that the best had been postponed for the next version just to make it possible to get something out of the door. Overall Java is clearly revitalized but all eyes are still on Oracle as if waiting to see what damage it can do to the world's most popular language. After all, it managed to split the OpenOffice community to create LibreOffice and then gave up and decided to give OpenOffice.org to Apache - could it get any worse?

JavaFX

A development that will probably have to wait until next year for a verdict is the release and open sourcing of JavaFX 2.0. Back in 2010 it all looked bleak for this new Java UI with it essentially being trashed before a replacement was available. However the new JavaFX beta looks good and might even allow Java programmers to escape the stereotype of the server's best language. Java 7 and JavaFX 2.0 could put Java back on the desktop and interacting directly with users.

COM is back!

Java wasn't the only language to get a make over. The hidden leviation that is C++ managed a refresh in the form of C++11 a new standard. Important though this was the real revival has been going on in the world of the Microsoft programmer. While the HTML5/JavaScript revolution is going on the C++ programmers have taken the opportunity to simply take over. There was no need for skirmishing and snipers, the C++ objects simply overran the opposition. COM is back! That most horrific of runtime object technologies has been civilized and has made the native code revolution complete.

Windows now has WinRT which is a C++ COM based API for creating the new Metro style apps. The theory is that you can use any language you like to create a Metro app but it seems clear that C++ is the king among poor second choices. In the Microsoft world C++ gains ground at the expense of C# which is perhaps the only language to have suffered damage this year.

The C++ movement also promoted the use of "native" as a term to describe the use of a language that compiled to machine code that then to a Virtual Machine. "Native" has come to mean "faster and better" and, even in the world of browsers where JavaScript rules, Chrome has introduced the ability to run native code via NaCl.

Pretenders

At the same time as the native world got up a head of steam the range of languages looking to either run on the JVM and perhaps replace Java or compile to JavaScript to replace JavaScript grew. It seemed that for new languages anything that started with "Java" was a good target to aim to depose. The onslaught against Java was partly brought about by how slow it had been developing and languages such as Ceylon, Xtend and Kotlin aimed to do better. By the end of the year, and after Java 7 was a reality things were looking less sure for Java killers. In the coming year it looks as if Java might be getting strong enough to fend off all comers.

Poor old JavaScript on the other hand is having a much tougher time. Just about everyone wants to replace it. CoffeeScript has been creeping up on it slowly throughout the year and then late on suddenly Google pops up with Dart - a very aggressive JavaScript killer. Of course the fact that all of these languages tend to compile to JavaScript sort of helps to reinforce its de facto position as the "native" code of the browser. JavaScript isn't bad - its just misunderstood.

Interestingly while everyone and his dog were trying to kill off JavaScript lots of other programmers were demonstrating just what could be done using it. There have been implementations of PDF viewers, codecs (both audio and video), and even a JVM in JavaScript. Perhaps the biggest gain for JavaScript during the year has to be the growing interest in Node.js - JavaScript for the server - which has now found its way onto Windows and Azure with Microsoft's help. At the end of 2011 JavaScript is probably the most important language and 2012 will most likely consolidate this position as HTML5 continues its advance and Microsoft adopts it as a key Windows language.

The strange thing about 2011 is that few seem to have noticed the way Microsoft is refusing to support WebGL which brings 3D graphics to the web and has to be a key to the long term success of HTML5 web apps. Why isn't anyone getting annoyed that Microsoft is holding things back as per usual? Perhaps we might see an IE9/10 backlash in 2012.