I fully expect this to be another Java decade, for the following reasons:
1. Android
Java now serves the full stack for mobile apps. The world's largest Internet company, the world's largest on-line retailer, and the world's largest computer manufacturer are all comitted to a Java-based front-end platform.
2. GWT.
Java now serves the full stack for web apps. In the GWT world, writing an application in JavaScript instead of Java is like writing it in Assembler instead of C. In many ways, GWT is still in its infancy, but it is already capable of feats like the Quake 2 port that seem inconceivable in hand-written JavaScript.
3. Google
Google has been a driving force behind the advance of JavaScript over the past few years, but its flagship products have put Java firmly at the centre of its universe. The costly Oracle lawsuit might make them reconsider their course, but would they really after paying $12 billion for Motorola just to protect Android?
4. The cloud
Utility computing will drive an ever-increasing abundance of on-line services that will make desktop applications fade away. While never popular on the desktop, Java is well-established on the back-end and has solutions for most of the practical problems that come up in the cloud. It will be the logical choice for many new cloud-based projects.
5. Platform-independence
As we move towards an ever-increasing heterogeneity of platforms, using a language that is slightly different on each of them is not the way to go. JavaScript has an extremely limited standard library, and no standardized library format, or even a standardized inclusion format. Without plug-and-play libraries, you are doomed to use whatever your platform provides.
6. JavaScript is unsuitable for multi-core.
Multi-core is now the standard, even on mobile devices, yet JavaScript remains inately single-threaded. A parallelized event system could be hacked on top of it, but that brings us back to 5. Java is arguably not well-suited for parallelism, but capable at least. You can ignore multi-core for a while, but only until someone really starts to make you look bad.
7. Abundance of Java tools, libraries, software, books, schools, programmers
This should perhaps be #1, but Java is simply what much of the world knows and uses and you get major leverage from that.
I do think there is a niche for JavaScript becoming a popular scripting language, in favour of Perl, PHP and Bash, which have become outdated due to their focus on local I/O, rather than web I/O. I also think scripting languages are about to become a whole lot more important with the advance of utility computing. Definitely, JavaScript will explode, but the decade will still belong to Java.
JavaScript is the only programming language that runs on server, client and mobile. Java always wanted to be there, however never made it, and now (with Oracle) will also never make it in future. New name for Java is JOBOL.
1. Android
Java now serves the full stack for mobile apps. The world's largest Internet company, the world's largest on-line retailer, and the world's largest computer manufacturer are all comitted to a Java-based front-end platform.
2. GWT.
Java now serves the full stack for web apps. In the GWT world, writing an application in JavaScript instead of Java is like writing it in Assembler instead of C. In many ways, GWT is still in its infancy, but it is already capable of feats like the Quake 2 port that seem inconceivable in hand-written JavaScript.
3. Google
Google has been a driving force behind the advance of JavaScript over the past few years, but its flagship products have put Java firmly at the centre of its universe. The costly Oracle lawsuit might make them reconsider their course, but would they really after paying $12 billion for Motorola just to protect Android?
4. The cloud
Utility computing will drive an ever-increasing abundance of on-line services that will make desktop applications fade away. While never popular on the desktop, Java is well-established on the back-end and has solutions for most of the practical problems that come up in the cloud. It will be the logical choice for many new cloud-based projects.
5. Platform-independence
As we move towards an ever-increasing heterogeneity of platforms, using a language that is slightly different on each of them is not the way to go. JavaScript has an extremely limited standard library, and no standardized library format, or even a standardized inclusion format. Without plug-and-play libraries, you are doomed to use whatever your platform provides.
6. JavaScript is unsuitable for multi-core.
Multi-core is now the standard, even on mobile devices, yet JavaScript remains inately single-threaded. A parallelized event system could be hacked on top of it, but that brings us back to 5. Java is arguably not well-suited for parallelism, but capable at least. You can ignore multi-core for a while, but only until someone really starts to make you look bad.
7. Abundance of Java tools, libraries, software, books, schools, programmers
This should perhaps be #1, but Java is simply what much of the world knows and uses and you get major leverage from that.
I do think there is a niche for JavaScript becoming a popular scripting language, in favour of Perl, PHP and Bash, which have become outdated due to their focus on local I/O, rather than web I/O. I also think scripting languages are about to become a whole lot more important with the advance of utility computing. Definitely, JavaScript will explode, but the decade will still belong to Java.