The scripting tsunami
In the last decade, the enterprise software world has been divided between the Microsoft .Net and the Java/J2EE platforms. In case you haven’t noticed this is changing!
A tsunami is a natural phenomenon consisting of a series of waves generated when water is rapidly displaced on a massive scale. Tsunamis tend to happen very quietly, even people on the shore don't see them coming. Typically the warning sign is when water receded many hundred meters from the coast only to come back much stronger and cause massive destruction.
I like to use the tsunami analogy to describe what's happening with the LAMP stack and scripting languages. The LAMP stack (Linux, Apache, MySQL and Perl, PHP, and/or Python) has become a viable alternative to Java and .Net. LAMP's emergence is fueled by a growing third-party industry and by IT organizations' rising interest in open source.
What are scripting languages?
Why are they so popular?
When should I avoid them?
The speed at which computers operate has increased dramatically over the years while the delta in performance between interpreters and compilers has remained pretty much flat. This means that scripting languages are excluded from fewer applications for performance reasons. This said there will always be applications that demand optimal coding in compiled languages (and sometimes assembly). For example, highly transactional / high volume online applications or writing device drivers are not good candidates for scripting languages.
Recent partnership (with Zend) announcements by IBM and Oracle are a very strong validation of PHP and sends a clear signal that these two software giants are acknowledging the success of scripting language PHP (considered so far as a prototyping technology to build mock-ups). Clearly IBM and Oracle are trying to defend their database turf. They got tired watching the "M" in the LAMP stack slowly but surely gaining popularity.
Is this a threat to Java?
Even if JavaOne this year was a very disappointing/empty show, I don't think Java will go away anytime soon. Both scripting languages and Java (or .Net) will be around for a while. Despite the apparent overlap, I think they serve different purposes for different categories of programmers. We will always need different tools/languages for different jobs. Scripting proponents argue that tools built around languages such as Python or PHP are gaining in popularity because Java development is too complex for many jobs. This is not totally true I am pleased with the progress Eclipse is making and I have to say that I am impressed with Oracle JDeveloper’s latest version now available for free!
This said Java vendors and the Java community need to continue their quest to simplify the developer's experience and open up as much as possible otherwise the Scripters' tsunami will be more damaging.