Why the JavaScript obsession?

If you’ve read anything on the web about technology recently you’ll know that many technology pundits and enthusiasts are claiming that HTML 5 and JavaScript are the future of computing. Even Microsoft is jumping on the bandwagon with Windows 8. But is it? Yes it has the benefits of being open, easy to learn and cross platform – but is it the best tool for developers? I’m not so sure, and I think JavaScript is the weak link. There is no compiler to warn you you’re doing stupid things, no way to enforce variables to be declared final or even to be of a particular data type. The extremely loose nature is a benefit when trying to learn it, but when you’re working on a project with thousand’s of lines of code it can get tricky. Want to rename a variable? I’ve yet to see an IDE that can refactor JavaScript the way Eclipse or Visual Studio can with Java and C# respectively.

Maybe I am showing my ignorance here, but it seems to me that JavaScript might be great for small scale projects, but would I choose it for a large enterprise system over Java or C#? Is it popular simply because it happens to be the only scripting language almost guaranteed to be available on any device, rather than because it lets developers write elegant, maintainable and scalable code?

Appcelerator is a tool I’ve been using recently to develop an iPhone app. It’s actually quite good, if not a little buggy here and there – but their central premise is that you can reuse your web skills and code JavaScript instead of Objective C. However, all you borrow from the web is the syntax of JavaScript, since there’s no DOM, no JQuery and instead a bunch of custom components. It’s a nice tool, and will surly get better over time, but I do sometimes wonder why they chose JavaScript as opposed to Java as their supported language.

This reminds me of when “RAD” was big in the mid-nineties, Visual Basic was the future (remember, in VB there was the variant data type that could be anything). A few years later Java was the future, with its strict enforcement of OO practises. Now it’s swung the other way with JavaScript and Ruby be touted as the way forward. What will be next I wonder?