Ext JS impressions

Tags:

I’ve lately been using Ext JS in a project.

Ext is basically a big JavaScript UI framework – like their site says, “a foundation you can build on”. It comes with various interface widgets like Windows, tabbed panels, accordion panels, menus, toolbars and forms to name some. It also has various other things such as nice Ajax tools.

But what is it good for?

Big and bulky?

The initial impression from the file-size of the library and other things might be that Ext is big and bulky. However, that is not true.

Ext is very fast and works surprisingly well across modern browsers. While I’ve had some bad experiences with specialized UI widgets in some other libraries, Ext does everything very well and has very little to no glitchy behavior, except with some small animation issues which can always be disabled.

The initial load time can be a bit of an issue, though. The uncompressed JavaScript is about 500KB and add 75KB’s of CSS to that plus any graphics it uses… Enabling Gzip compression from the web server for JS and CSS helps a lot, though, and you should always have Gzip enabled anyway.

No JS – no go

While in theory you can have Ext classes applied to an already existing HTML+CSS layout, making a non-JS version is not really in question. I have yet to see a site which uses Ext working fully and providing even a slightly similar user experience if you have disabled JavaScript.

This, combined with the big library size, can and will make it slightly questionable for “traditional” web sites. In my opinion, Ext is just not meant to be used with your typical website, and you will get most out of it in a more specialized application.

Sure, it provides Ajax forms. Sure, it provides some other goodies you might want to have in a website… but so do almost all other libraries and with a much smaller footprint.

Conclusion

I’ve been using Ext in an Opera widget I’m working on. This is something Ext works for very well, since a widget will run outside the browser’s traditional page model anyway. This is where Ext’s Window works, because it looks like a real application and not some weird desktop inside a web page.

I think Ext works the best for “applications” like Webmail, Photo organizing, file management, CMS systems… Anything which a user may need to use more and where speed and usability is important.

Imagine a traditional webmail application such as Horde: slow, many page loads, etc. – I’ve never liked Horde (or any “traditional” webmail) that much. Now, compare that to a real mail application like Outlook or Thunderbird. You could use Ext to make a very similar experience to using Outlook, but in the browser. You could have three column layouts with resizable column sizes, keyboard support etc.

How about a web based file manager? If you have ever used Cpanel or any other management tool, you may have used their file managers. Page loads, slow, annoying… Compare to file managers in operating systems: Dir trees, drag and drop, keyboard shortcuts… Ext? Sure! – On a side note, Cpanel has improved their file manager a lot and in the latest versions it’s actually not that bad.

We’ll look at Ext some more when I get my widget finished.