Yakov Fain's Blog

My notes about everything in IT

Immersing into JavaScript Frameworks

with 8 comments


During the last month my colleagues and I were immersing into the world of modern JavaScript frameworks. We didn’t start from scratch though. My business partners spent the first 5 years of this century porting PowerBuilder, a used-to-be-popular client server tool, to a JavaScript framework. That product was called XMLSP and you can still find its 5-year old version online. The word AJAX was not even invented back then. In 2006, a killer UI framework Adobe Flex 2 was released and we started using it. It was clearly better than any AJAX offering, and I was not shy in publishing blogs and articles explaining its superiority to any AJAX solution available at the time.

Flex remains a great solution for developing UI for the enterprise Web applications, and our company,Farata Systems, is committed to support any client who decides to hire us for any Flex/AIR Web/Desktop/Mobile project. But the world of software and hardware is hugely different in 2012 comparing to 2006. And we are stepping into the same JavaScript river once again.

Well, it’s not exactly the same river. It was renamed. The authorities replaced the old road sign AJAX with HTML5, but let’s not get fooled. It was DHTML ten years ago, and it remains DHTML now: HTML, JavaScript, XMLHttpReuest object, and CSS. But the modern Web browsers employ faster JavaScript engines, CSS is a lot more flexible, smart phones come with dual core CPUs, the speed of WAN is faster too (ok, just a little bit).

More and more enterprises are adopting HTML5/JavaScript, but software architects and developers are still looking for the features available only in the VM-based clients. Will an XYZ JavaScript framework manage client state, support atomic transactions and provide server-side push? Will it offer declarative UI programming, flexible layouts, rich component library, good event model? How many extra kilobytes has to go over the wire to the client if you use this framework? Will the XYZ step up to MVC, modularity, and reliable communications? What are the requirements for the developers’ skills? Is the learning curve steep?

Sounds familiar, isn’t it? We had to solve these issues in the past, and we’ll do it again. Promise. After spending some time trying to pick THE JavaScript framework that can address all these demands of serious Web applications, I can report that you won’t be able to find THE framework. But the good news is that by combining more than one framework you’ll be able to create a well performing and reliable Web application.

Based on on the research conducted in the underground labs of Farata Systems, I can report that our JavaScript framework of choice is Ext JS by Sencha. This framework can serve as a solid foundation for any serious JavaScript development. We’ll also use a couple of more lighter frameworks on as needed basis.

I’m also happy to report that we’ve created an alpha version of our Clear Data Builder (CDB) tool that will offer automatic code generation for JavaScript/Java CRUD applications with transactional support and other goodies that will substantially increase the productivity of JavaScript developers. CDB won’t be an alternative, but rather a compliment to any JavaScript framework.

In a couple of months we’ll publish the first demo that will show an automated generation of a CRUD application using use Ext JS, CDB, MyBatis, and Java. Why MyBatis? Because we like writing SQL, but the demo that uses Hibernate will come shortly after. We already started a new consulting project to prove that we can eat our own dog food, and this food has a good taste.

About these ads

Written by Yakov Fain

January 10, 2012 at 3:40 pm

Posted in javascript

8 Responses

Subscribe to comments with RSS.

  1. Good article!

    Phil Strong (@philstrong)

    January 10, 2012 at 8:05 pm

  2. Thanks for your article.
    I would like to know your opinion about the GWT framework.

    Fox

    January 12, 2012 at 4:40 am

  3. I’m curious to know which framework you (will) use to generate the JSON for ExtJS from Java. I’m working on a project using MyBatis, Spring and ExtJS. I’m looking at the MappingJacksonJsonView but it seems difficult to add properties to the standard response layout (for example “succes:true”).

    Mark

    January 12, 2012 at 9:33 am

    • We’re considering creating our own solution, but it’s a bit early to talk about it.

      Yakov Fain

      January 12, 2012 at 4:20 pm

  4. Interested in if you checked out knockout.js or backbone. Knockout is a lot like flex development- where views are automatically updated by their corresponding model objects.
    I have written a lot of flex apps using mvc frameworks and always appreciated the data binding.
    JS feels like the wild wild west but knockout makes it feel a little better.

    jlawmi

    January 12, 2012 at 10:26 pm

  5. Thank you for the info.

    Do you have any opinion of WaveMaker?

    Yitzy

    January 13, 2012 at 8:44 am

  6. Have you guys considered Grails for the backend? It’s Spring MVC and Hibernate under the covers (along with a few other things). It works fantasticly well with ExtJS with out of the box support for JSON.

    Dmitry Brin (@dmitrybrin)

    January 13, 2012 at 9:47 pm

  7. Thanks for your view.

    Good demo of Ext JS: http://vimeo.com/35946811 – video about an hour with coding examples.

    Max

    February 2, 2012 at 3:24 am


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

Follow

Get every new post delivered to your Inbox.

Join 151 other followers

%d bloggers like this: