JavaScript Wishful Thinking

In my JavaScript Trends article for WebReference.com, I have to admit on reflection, I am engaged in some embarrassingly wishful thinking. The problem is this – developers are stretched to the limit having to learn new languages, tag systems, paradigms and frameworks just about once every 3 to 6 months. Only medical doctors are on a worse learning curve.

So it would be nice to have the glue language, the scripting language for distributed processing be something familiar – not something Curlishly brand new whose syntax looks familiar but is cursedly idiosyncratic. And the trend for JavaScript to be used more and more as the cross platform macro language for a number of vendors large and small like Adobe, Duboi, Macromedia, Raindrop, and Volume Graphics – this inspired the hope that JavaScripts orthogonal design, easy-to-develop object model, and interpreted mode would garner it a position as the premier scripting and glue-language for distributed development.

But JavaScript has three strikes against it. First, it is popular , easy to develop with, and makes Web applications increasingly powerful and easy to use. See Cognos ReportNet and IBM/Rationals RUP for examples of the highly sophisticated things possible with JavaScript on the Web. Of course this very success has raised the ire of Redmond, and as former Microsoft employee and current Windows-primarily software vendor Joel Spolsky points out JavaScript may be too popular:
“… So the [JavaScripted]Web user interface is about 80% there, and even without new web browsers we can probably get 95% there. This is Good Enough for most people and its certainly good enough for developers, who have voted to develop almost every significant new application as a web application.Which means, suddenly, Microsofts API doesnt matter so much. Web applications dont require Windows.

Its not that Microsoft didnt notice this was happening. Of course they did, and when the implications became clear, they slammed on the brakes. Promising new technologies like HTAs and DHTML were stopped in their tracks. The Internet Explorer team seems to have disappeared; they have been completely missing in action for several years. Theres no way Microsoft is going to allow DHTML…”

So Redmond is doing its “Killing Me Softly” thang on JavaScript. But they are not alone. Look what is happening to the BEA suggested “for each” syntax improvement to JavaScript. This small change would considerably simplify XML processing (as has just been done in PHP 5), and therefore help JavaScript in the Web Services arena where it is a virtual SOAP and WSDL no-show. But some JavaScript vendors are resisting the adoption of such an improvement – so ECMA has approved it as voluntary extension. Shades of the old ANSI standards shenanigans – where SQL had so many “voluntary” levels it became a gutless wonder. It is virtually impossible to switch between SQL databases except for the simplest and most basic data transfers which still have to be assisted by ETL-Extract Transfer & Load programs. In sum, JavaScripts success before it had reached complete technical maturity ensured that it would get caught up in debilitating standards wars which we see taking place right now.

The second weakness of JavaScript also derives ironically from one of its strengths. JavaScript is Open Source and produced in C/C++ and Java versions for several OS platforms including flavors of Unix, Linux and Windows. This has encouraged many ISVs and developers to try it out and use it. The problem is JavaScript is again a victim of its success. Each vendor, finding the JavaScript Object Model so easy to develop with, has added their own extensions for such basic object classes as ColorModel, Formating, StyleTemplates, ResultSets, etc, etc. Yes, you can bet your sweet bippy these are mutually incompatible Objects among the many now different JavaScript implementations. In effect, like Latin splitting off into French, Italian, Spanish, Romanian, etc – developers are getting to see JavaScript Live become a Balkanized Dialect.

The third weakness of JavaScript is indicated by this balkanization. When JavaScript was developed by Netscape, it had a vibrant growing organization behind it. But infamously, Microsoft “cut off the oxygen” to Netscape using a famous John D. Rockefeller tactic – come into a vendors market knowing you have huge profits and revenues from other sources, and give away your competing products for free knowing full well that Netscape had no means of retaliating and restoring the balance. Netscape is now a mere shell of its former glory – and all the JavaScript developers have been dispersed. Brendan Eich, JavaScripts chief architect is at Mozilla. But curiously, Mozilla has not proposed any major updates to JavaScript. In sum, JavaScript lacks a forceful advocate like Sun with Java or Microsoft with .NET.

So the bottom line is that I am really hoping against any realistic hope that JavaScript – though elegant, easy to develop with, and nicely orthogonal to the big development languages – will become the universal cross platform scripting language. Now this is important, because until we have a cross platform scripting language (and dont let anyone tell you WebServices and some clumsy, dialectic mish-mash of XML like XQuery+XPath+XSLT is the solution) – agenting, interoperability and integration will be unnecessarily complex and tedious. Hmmm …. I wonder who profits from that state of affairs ?