Is JavaScript ready for serious development? – Part I

The answer is a definite, positive, absolute no but it looks like we’re stuck with it in the near term due to HTML5 hype. In a series of posts, I want to explain why I think JavaScript is not suitable for serious development and provide some guidelines to ease the pain of developers by sharing my experiences in developing in JavaScript for more than a year now.

First, some background. I’ve been a Java developer for almost 10 years and in the last 5 years, I’ve been doing ActionScript/Flash development. In my current role, I’m maintaining and improving BlazeDS and LiveCycle DataServices products which are Java (on the server) and ActionScript (on the client) based applications. In the past year or so, I’ve been periodically working on a JavaScript library, so, I have a good sense and experience of working with Java, ActionScript, and JavaScript.

As any serious developer, I’m used to Object-Oriented design, I expect a consistent and extensive SDK to work with, I expect decent IDEs to help me in coding and I am used to standard tools to help me in building, testing and documenting my code.

In Java, the platform independent Java language backed by JDK combined with Eclipse/IntelliJ IDE and tools like Ant/Maven, JavaDocs, FindBugs, and PMD help me to achieve maintainable, testable, bug-free, and well documented code.

In Flash, the platform independent ActionScript backed by Flash combined with with Flash Builder/IntelliJ, and familiar tools like Ant/Maven, ASDocs, and FlexPMD help me achieve the same level of productivity on the client side as well which is great.

Unfortunately, JavaScript is nowhere near to Java and Flash in terms of creating clean, maintainable, testable and consistent code. Don’t get me wrong, it’s certainly possible to write complex applications in JavaScript and I did so by implementing the full AMF binary encoding format in JavaScript. However, just because something is possible, it does not mean it’s optimal. During my JavaScript development, I felt like I went back in time and I was at school coding for a school project using an experimental language. It looks like I’m not alone feeling this way.

In my next post, I’ll try to justify my claims with my own experiences from my JavaScript project, so stay tuned.

Advertisements

2 thoughts on “Is JavaScript ready for serious development? – Part I

  1. I disagree with the notion that Javascript, the language, is not ready for large-scale applications, but you’re absolutely right that the tooling around the language required for scalable engineering is in its infancy, at least in the open-source space. But things are getting better all the time.

    The Komodo IDE by ActiveState is the best thing I’ve found in the way of intelligent coding for Javascript. Google’s Closure Compiler (and Templates and Library) add some sanity checks to JS programming – concatenation of script files so everything is not in one huge JS file; high-performance templating, optional static type checking (in my opinion, this is the best thing ever – programming in typed Javascript is fantastic); and an optimizing compiler to improve performance.

  2. Thanks for the comment. I agree things are getting better but my frustration is that things you take granted in Java or Flash are still not there in JavaScript. This post is a series of 4-5 posts that I plan to post in the next week or so, so please stay tuned and I’d love to hear your feedback once all the series is done.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s