Here is a crazy prediction: In 5 years, most applications will be built using what I like to call the JHC triumvirate (JavaScript, HTML, CSS). I’ll give you a second to gather yourself. You ok? Good. Now, let’s talk about why this may be.

Since the dawn of time, people wanted to code once, but have it run on every platform. In the beginning, this was possible because there was literally one platform. Unfortunately, that lasted for about two minutes and since then our industry has gone through a Cambrian explosion of operating systems: Unix variants, a parade of Windows and Mac OSes, Linuxes (or is it Linuxi?), iOS, Android, and so on and so forth. Sure, we’ve had a few brave attempts at single-platformedness. Java is the most notable example, but there were others (Flash? Silverlight? right?). Yet in the end, none of them really got us to the promise land.

Now, consider the state of the web app today. First, you can already achieve desktop-like performance in the browser. Every major browser either has or is building an awsome JavaScript engine (IE 9’s Chakra, FireFox’s Jaegermonkey , Chrome’s V8). These engines let you do crazy things like run an NES simulator in the browser. Just imagine what they can do with your Purchase Order screen!

Second, the tooling is quickly catching up. Many IDEs already have pretty decent support for JavaScript development. For example, Visual Studio 2010 does on-the-fly compilations to give you IntelliSense on it. We’ve also got some great JavaScript frameworks (like the certain querying one we all love) which make it much easier to develop clean, cross-browser code.

Web UI Frameworks

In the past, developing great web applications that looked and behaved like their desktop counterparts was no easy feat. HTML, JavaScript, and CSS all had to be cajoled into a peaceful co-existence in order to create a nice UI. Aside from being brittle, it was quite difficult to get it all working on multiple browsers <queue Vietnam-style IE6 flashbacks>.

Well, things certainly changed. These days, we have a whole host of pretty good JavaScript based UI frameworks to work with:

Of the bunch, Ext JS is probably the most popular one. It lets you put together some pretty amazing screens using nothing but JavaScript. Well, almost nothing. You do need a small bit of HTML to plug your page into. (Here is the entire <body> of a functional RSS reader created with Ext JS):

<div id="preview-tpl" style="display: none;">
   <div class="post-data">
      <span class="post-date">
            {pubDate:date("M j, Y, g:i a")}
<div class="post-body">{content:this.getBody}</div>

IDE of the future

A colleague once remarked that one day development itself will move into the browser. I found this idea very intriguing. Just consider the implications of being able to code, test, and deploy right from the browser, with all your source stored safely in the Cloud. Would this make it easier to do things like distributed pair programming? Would you benefit from having the ability to code from anywhere on any device? What would deployment look like?

Apparently, this idea isn’t that far fetched of futuristic because it’s already happening. Cloud9 IDE is an open source Cloud-based IDE for JavaScript development. Although it’s only on version 0.2 (released in January 2011), Cloud 9 IDE looks to be very a interesting project with a lot of promise.

By the way, just in case you’re thinking “That’s all nice, but what about IntelliSense?“, check out Pex For Fun from Microsoft. They have IntelliSense for C#. In the browser.

You may also like:

Did you love / hate / were unmoved by this post?
Then show your support / disgust / indifference by following me on Twitter!

This post got 4 comments so far. Care to add yours?

  1. Nick says:

    I agree with you with regards with web applications, but all applications? I don’t think so. Mobile apps are growing rapidly and these apps are not written in HTML, javascript or CSS. I don’t foresee Google and Apple dropping Android and Objective C anytime soon. The other thing is HTML5, javascript and css might be fine and dandy for building front-end UI which is their strong suit, but they don’t make the best tools for writing back end services to which the UI interface with. Java, C#, C++ and other high level programming languages will be around for long long time.

    • Alex Tatiyants says:

      Hi Nick, thanks for the comment.

      You’re right in that my prediction is quite unlikely. However…

      In the mobile space there are already multiple frameworks (PhoneGap, Sencha Touch) which use JavaScript / HTML to develop cross-platform applications. These frameworks may not be quite ready for prime time yet, but they will get better. Even though Apple and Google will certainly continue investing in their development platforms, a compelling cross-platform alternative could be attractive.

      As for back-end services, node JS looks pretty interesting.

      Thank you

  2. […] Texto original disponível em […]