How JavaScript Crossed the Chasm

Until couple years ago, doing anything more than simple form validations or image mouseovers with JavaScript was considered drudging work. Not many people understood or appreciated this small but very powerful language that run on our browsers. It wasn’t even seen as a serious programming language. Fast forward to today suddenly it is the new cool thing. People are writing Drag and Drop User Interfaces that can edit graphics and save your data on the background.

So, what happened? This is very amazing. Today almost nothing has changed about the underlying technology but suddenly our thinking has shifted. JavaScript is not seen as a hack any more. People are now making very complex applications with it. JavaScript is not ugly any more. There are beautifully written libraries that can do powerful things. JavaScript is not a light language any more. The most exciting web applications written today use it extensively.

In his seminal book, Crossing the Chasm, Geoffrey Moore explains how high-tech products get adopted. The new product needs to get enough early majority users or most of the time fall down to the chasm. A new technology comes out and a small number of people who are called early adopters start using it. These people use it because it is exciting and new. They don’t care if it is stable or productive. They are just excited by the technology and they will use and try the product even if sucks. They see future possibilities in the technology and they are excited about it. Then there comes the pragmatists. These people will only use your product if it is really useful.

The Big Chasm

JavaScript took almost 10 years to be seen as a real programming language. There are couple of reasons why it took so long.

    1. Marketing Mistakes: The worst thing that ever happened to JavaScript has been its name. With the ambition of taking on Microsoft, Netscape was partnering with Sun at the time. They did not understand the power of this new scripting language on their hands and they wanted it to be a sister language of Java. This naming caused enormous amount of confusion on the developer community. It also put down JavaScript as the “light” language of the Internet.
    2. Microsoft: Embrace and Extend was not only used against Java, it also devastated JavaScript. Best developers are usually little idealistic so they hate having their web application only work on a single browser. For a long time most things only worked on either Netscape or Internet Explorer. Microsoft even released something called Jscript for a short period of time.
    3. Missing Tools: It is almost impossible to do any JavaScript development on Internet Explorer. When IE took over the web, it stopped the flow of newcoming developers.

On 90s Netscape was the engine of the new Internet economy. Many browser innovations like JavaScript, bookmarking and cookies came from Netscape. Once Microsoft destroyed the company as we know it, we had a period of time that not only crashed innovation in browsers but made JavaScript development very very difficult. Have you ever tried writing JavaScript code on IE? There was no debugger or tools. You only had a pop-up error message that gave no real information about the problem. It seemed to be designed to annoy people into disabling JavaScript on their browser completely.

We had a five year period after 1999 without much JavaScript development. This is also the same time it seemed like innovation on the web ended. There was no excitement any more. People talked about how the dot com was over and the industry was now maturing, and everything that could be made was already made. It was depressing.

The Come Back

When there is a forest fire, the trees burn down but amazingly in a matter of couple of years new trees start growing on the same fertile ground. Netscape was burned down but from the ground it left, a new browser called Mozilla (Firefox as we know it today) sprang up. New innovations starting coming out such as tabbed browsing and a better JavaScript Console. It provided better support for standards like CSS. This was the turning moment for JavaScript.

The main reason JavaScript became popular again is Firefox. Many people think GMail and AJAX hype propelled JavaScript. I do not agree with this view. They were only results of the change. They may have increased the excitement but the only real reason for the new popularity of JavaScript is all those web hackers who starting using Firefox. Firefox may be used only like 10% of the general population, but this number is probably more like 90% of the web developers. This community now had really good tools like JavaScript Console, JavaScript Debugger and DOM Inspector.

JavaScript Console

When I developed JotForm, I mainly worked on Firefox. My favorite tools have been the JavaScript Console and Web Developer Toolbar. Quick write, run, debug cycle made development easy and fun.

The Future

Understanding the chasm theory has profound implications about the future. JavaScript and LAMP(or ASP.net or RoR) is the new Visual Basic. It is even more. On top of all the business applications, we now have many social applications written as web applications.

So are there any alternatives to JavaScript on the client side? This was been discussed on a Joel on Software thread recently. The main contenders are Java applets and Flash. They are both propriety, slow and do not easily mingle with HTML and CSS like JavaScript does. But most importantly, they are both difficult to develop with. One of the main characteristics of web is that small things loosely coupled have better chance of success. The learning curve that’s required to write a Java applet is too much for web developers who are constantly bombarded with new technologies like Ruby on Rails. The claustrophobic and expensive Flash tools will also keep Flash adoption at bay.

Couple of months ago, I listened Joel Spolsky on his talk to NYC Lisp Users Group. He wasn’t very excited about the small things loosely coupled way of things working on the web. He suggested a new language framework that integrated the server side and client side. So things are done “right”. Although it was an interesting talk, as a big Joel fun, this was pretty disappointing. This is exactly what Java, Flash and MS one-click installs tried to do and pretty much failed.

JavaScript may be lacking a lot of things today and may take some time reach its full potential. But it surely is evolving. Clay Shirky in his essay In Praise of Evolvable Systems talks about things which are loosely designed.

The very weaknesses that make the Web so infuriating to serious practitioners also make it possible in the first place. In fact, had the Web been a strong and well-designed entity from its inception, it would have gone nowhere. As it enters its adolescence, showing both flashes of maturity and infuriating unreliability, it is worth recalling what the network was like before the Web.

This is true for HTML, CSS and JavaScript. They are all loosely designed. JavaScript may be lacking many things today but it is also evolving constantly. Now that it has crossed the chasm, I believe next couple of years will be very exciting. People will come up with cool web applications, not because of the web 2.0 hype, but because it is the right time. Are you ready for the ride?

Update: A good discussion on the JoS Forum.

11 Responses to “How JavaScript Crossed the Chasm”

  1. This is same thing over and over again.

    Please, everybody! Read all the Worse vs. Better essays from Richard P. Gabriel. There is more than the classic first Worse Is Better

    This is the page:
    http://dreamsongs.com/WorseIsBetter.html

  2. js says:

    Uh, also javascript is the only scripting anguage supported by web browsers. Maybe that had something to do with it.

  3. Engineered Robotics says:

    Ugh. Javascript is still a hack and it’s still ugly and still isn’t cross-browser compatible. That people have created usable libraries in it is more a testament to hacker perseverence than it is to any sort of inate “elegance” on Javascript’s part.

    The only thing that changed in the past two years is that AJAX libraries became commonly available — which work in _both_ Internet Explorer and Mozilla browsers. That’s a first. And it’s important because it allows developers to use Javascript without having to actually code in it.

  4. Jeff Magee says:

    The internet history in a nutshell was very interesting to me, as a new guy to to web development. One of the most interesting phenomona of the whole industry is the open source movement, like Mozilla, Plone and other organizations. Are there specific open source development projects that you would say have really been a catalyst for the “rebirth” of javascript?

    What literature would you recommend that reflects this view that javascript is a language with a very exciting future? I think that someone who really believes that is more likely to write a solid technical guide with a look toward the language’s possibilities.

    Also… as a young guy it sounds so crazy that people ever saw the internet as a depressing, unexciting trend! Poor foresight I would say… ;)

    Interesting article.

  5. Gary van der Merwe says:

    I would like to correct you on a point you made. You claim that there was no debugger for Javascript in IE. There was. Using MS Visual Interdev, which was realsed in 1998, you could attach to an IE process, and debug javascript.

    I don’t think that many people knew this though

  6. Trevor Stow says:

    I think it’s a mistake to dismiss Flash outright (just as it would have been a mistake to write off Javascript, five years ago).

    True, too many websites were once built in Flash that would have been better done in plain HTML, but today, Flash still serves some needs better than any other technology:

    banner ads
    streaming video

    A new license for Flash is approx $500. For professional use, that’s a fairly modest price point. Yes it’s proprietary technology, but in my 6+ years of using it, I’ve rarely had a grievance with the mothership (then Macromedia; today Adobe).

  7. John Dowdell says:

    I agree with you on the popularity of Firefox among a-list designers having such a rejuvenating effect on JavaScript perception. The addition of XmlHttpRequest, years after its intro by MSIE/Win, made the whole “AJaX” press cycle possible too, I suspect.

    Learning costs I’m not sure of… if you’ve already mastered the HTML specs, the CSS specs, the DOM specs then additional JS costs may be lower than Flash, but otherwise SWF may be easier. Answer depends on what the question is.

    Are you aware that the XML-based authoring approach of Flex 2 is free-of-cost to use?

    One pro-Flash angle which complements your above points: Flash Player updates your audience’s machines faster than any other technology on the net. Operating system upgrades are slow… browser disparities means you have to wait for multiple implementations to converge… people download Flash Player far, far faster than any browser update. The 8.0 Player hit 50% consumer viewability after 15 weeks of distribution, which is a completely incredible number. You get new clientside features faster with Flash — most rapid evolution.

    ECMAScript is the core commonality in all this, btw.

    jd/adobe

  8. bob says:

    I was taught, as a Web Developer, that Server Side was always better than client side.

    If you use a Server Side Script, it runs the same in all browsers.

    The user cannot deactivate it in the options for his browser.

    YOU have control over what happens, without leaving this up to the user on the client side.

    Since then, Ajax and Web 2.0 have hit the web, but I still believe that what I learned back then is true.

    I can see cases where it’s useful to the user’s experience to update a page without having to do a reload, and in this case Ajax has a rightful place and purpose.

    But most of the time peoples’ usage of Ajax in websites is just to dazzle and is kind of akin to wanking off…and it simply annoys, much in the same was as Flash Websites annoy me.

    But time will tell !

  9. Rob Lambert says:

    I think that another key thing that enabled the current JavaScript/rich web application boom is the fact that IE6 stood stagnant for 5 or 6 years, enough time to figure out workarounds for all the IE non-standard oddities. At the same time, Mozilla-based browsers and Safari are somewhat close to standards-compliant and therefore writing rich JavaScript/CSS/DOM-manipulating web applications is feasible and you can make it work on 98% of the general users’ browsers. Let’s hope that IE 7 doesn’t hose things up!

  10. Andrew says:

    (Pardon my English).
    (Not to affend or in line with the article ?mayBe?)
    I myself believe the webmasters of today see a future of the web as replacing the the MS Office package, Believe me i have seen true believers believe that the web is the future, i myself is not afraid to say that I may be wrong to believe that this wil be a fase, where web-applications working as a nice tool, even tough i said it’ll be a “fase”, a period where that will pass, and yes i know the IBM story of a “couple of machines”, but serius, does anyone know the power of C/C++ anymore, sorry I can’t explain it here and now, but i believe some day, as it ones was, where WebMasters and Programmers where a different kind of people, Sorry if i offend som of you people that do not shear my opinion, but i believe. some day that i do nat see a web page does not control my BIOS.

    Just an opionon

    Agein Pardon my English.

  11. Hugo says:

    Again, and again people tend to mix stuff that isn’t mixable at all. C++? Web? Two very different objectives for the applications developed by them. I worked for 5 years developing winforms using vb6 and then c#/vb.net. For the past 2 years I’ve been developing a corporate application using only asp.net and sql server 2k. The integration of multiple systems into a giant application is something I don’t wish to many people. I did find that the user experience when going from winforms to web drops dramatically. Drag n’ drop? Only recently. Fast user feedback? Depends on the company hardware, network, etc… In my opinion, all these technologies will evolve into a singular framework, much like the .net clr, but one that encompasses all these ‘niceties’ and doesn’t crash windows (we hope). In the future (maybe not so far), I believe there will be only the OS and a fast net access that allows any user to ‘ask’ for a specific software and If one doesn’t exist already to do the job, then a ‘AI-bot’ will build it in a matter of seconds.

    just speaking my opinion

Leave a Reply

Security Code: