Sunday, March 18th, 2007

Choosing an Ajax Framework

Category: Framework, Library

There are hundreds of Ajax libraries and frameworks out there. How do you choose one that’s right for you? Sébastien Just (Seaiji Design) has a few pointers.

server independant or not ?
server independant frameworks will help you in mashing-up server technologies and lowly ties your software architecture while server dependant frameworks may increase your productivity but makes difficult major changes to your projects.

structural Javascript enhancements ?
Javascript can become a maze if your team does not share a common development methodology . There are so many ways of doing the same thing ( like creating objects of accessing the DOM ) in JS, that you must formalize the way to do it. Such a framework may help via on-demand Javascript, packaging abilities, enhanced OOP…

re-usability of your written components ?
making use of it shall help you in re-using written components in your next projects.

framework current documentation level ?
often low for most projects, you must take care of it

features you need ?
you may look at your projects needs ( or near future needs ) and see if the Framework can handle them. Some are GUI oriented, special-effects oriented, Javascript centrics, communication only oriented. None will completely cover your requirements. What is the complexity degree in making the framework evolve ? can you add your own features in the framework ? will you help committers ? Can you mashup multiple Frameworks ?

How long will it last ?
Most projects are companies own projet spin-off. The Framework evolution depends on their ability to maintain and make the project evolve. A good user community is important as well as talking to developers when needed further functionalities.
Taking care of sponsors and the framework current uses in production web sites, is a good start in guessing if the Framework will last years or will be stopped in six months.

What sort of support ?
Is there a community support ? commercial support ? test reactivity while testing it.

How steep is the learning curve for the framework?
Can your team handle such a technology. Many developers are reluctant to Javascript . Can they handle such a change, is the Framework simple to understand ?

Who are my visitors ?
It seems that a very light framework is required for a public site. If your visitors need to upload a large Javascript API, they may not visit further your website, depending on your page’s download times. When working on intranets, or professionnal services, it may be acceptable that the first access to the application may be longer, moreover when the website is used daily. Also think about on-demand Javascript and Javascript compression.

Posted by Michael Mahemoff at 3:41 am
17 Comments

+++--
3.5 rating from 74 votes

17 Comments »

Comments feed TrackBack URI

Considerations were:

– Features
– Size
– Documentation
– cross-browser

And the winner was…..:

Mootools -> mootools.net

Size and documentation were the big sellers. Also an active user community.

Comment by Alex K. — March 18, 2007

Would be nice if mooTools could stick to an API. Personally I think frameworks are like rear ends, we all have one, and think everyone elses smells bad.

Comment by insight — March 18, 2007

huh? Mootools has a standard interface and consistent design pattern. Also a great community, with frequent updates. So which “rear end” do you use? So far that’s +2 for mootools.

Comment by marat — March 18, 2007

oh god!

Watch the upcoming flame-war!

Guys, the question is: “How do you choose one that’s right for you ?”

Not: “Which one do you prefer ?”

Comment by Tobie Langel — March 18, 2007

@Tobie, I agree.

Comment by insight — March 18, 2007

I can’t read anything about source code quality and I think this should be the first point.

Comment by Andrea Giammarchi — March 18, 2007

Ya it annoys me when I see nested if/else/for loops without opening or closing brakets, makes it very hard to follow along.

Comment by petpeev — March 18, 2007

Unit testing was major factor for me, since I am going to build on top of the existing framework. First off, it made me feel more comfortable about the general code base. Secondly, I am re-using the unit testing framework to test and maintain my personal additions to the framework and custom components.

Comment by Jake — March 18, 2007

Great point Jake. Agreed!

Comment by Tobie Langel — March 18, 2007

Good point Andrea. Code was meant to be beautiful. This is where I like the prototype Ruby-style method signatures with optional hash argument.

Comment by Michael Mahemoff — March 18, 2007

I like the hash argument style as well. I stumbled across this comment of a dev that made a method to easily allow his functions to allow both hash and traditional style arguments:

http://alexander.kirk.at/2006/08/09/javascript-tricks-and-good-programming-style/#comment-4328

I use a modified form in all my projects.

Comment by jdalton — March 18, 2007

I enjoyed your article very much. Whats your take on just building the framework yourself? We here at my company take a real pride in our core for PHP, and Im considering tackling this issue with javascript.

All you really need is prototype.

Comment by Jonathan Kushner — March 18, 2007

I really enjoyed your article I think you should also do a framework comparison with this issues helping developers to do the data collection part.

As the chief architect of Visual WebGui I want to review our framework regarding to these subjects and I hope other project owners will do the same.

server independant or not ?
Yes, provides WinForms API and full abstraction of web bit and bits. There are plans to create a Java version with Swing API.

structural Javascript enhancements ?
No JavaScript is needed. Fully C# object oriented programming for every aspect of the application.

re-usability of your written components ?
Full object oriented reusability. Every thing can be inherited as every thing is an object.

features you need ?
You should consider our framework for use as back-end administrations, line of business web application and enhancement of web sites with applicative dialogs and applications. Not intended to be used as a site framework.

How long will it last ?
The framework is available under open source and we have just received our first venture capital funding enabling us to fully support the framework.

What sort of support ?
As said commercial support will be available real soon and our community testify that we are very fast in responding to their needs.

How steep is the learning curve for the framework?
Almost no learning needed for developers with WinForms experience and web developers are learning it really quick. WinForms API have proven to be an excellent choice for this matter.

Who are my visitors ?
Our purpose is to create web applications (like gmail and etc.) if your visitors require that than consider us.

Thanks,
Guy

Comment by Guy Peled — March 19, 2007

P.S.

I know that it is not a common feature but I think you should add design time support….
We have it in the format of WinForms designer and I know that TIBCO has a designer…

In my opinion that is a critical issue if you are looking for the UI part. If you are looking for “business logic and script kernels” it is not relevant.

Guy

Comment by Guy Peled — March 19, 2007

For those who do not enjoy javascript debugging, ITMill Toolkit 4, released today,
is the perfect choice by these metrics:
– write in real Java, run on server and enjoy in Ajax
– supports most browsers: from ie7 to safari, mobile phones and even pre-Ajax
browsers like lynx
– really nice user interface components
– commercial support
See http://www.itmill.com for more details, demo and download.

Comment by Joonas Lehtinen — March 19, 2007

Also JQuery is a very good Framework.
Really light, simple to learn. and with a lot of modules.

Comment by Michele Mader — March 20, 2007

nice article, thanks..

Comment by Tercume — October 17, 2007

Leave a comment

You must be logged in to post a comment.