Wednesday, February 17, 2010

Been doing some heavy ExtJS development

So for the past couple of months I have been doing some heavy ExtJS work. Nothing too fancy, no extension development....but some real heavy use of Ext and some 3rd party extensions.

The backend of the application I am working on is PHP, and I have come up with a psuedo framework for the application itself. By using the __autoload() functions in PHP and passing a couple of standardized arguments for every ajax call whether it be a submitting of a form or loading a data store for a grid/combo Ext component. Through Ext lovely use of the xtype property I am able to create arrays in my PHP Objects json_encode() them and pass them back to the front end where they become full fledged objects....this is not a standard practice for the interface but it is used in a specific element of the application that is very dynamic and very custom. Now I am sure if I found some Ext developers in my area and could sit down with them and show them the application they could do away with PHP generating the code and come up with a couple of extensions to do exactly what I want, but for now PHP is filling in the gaps and doing exactly what I want.

I originally started looking at ExtJS when version 1 was released, then version 2 came out and I started on a project at my former location, but never really was given the time to actually fully develop an application using Ext...then a couple of months ago I started on the current project I am working on and presented the idea of using Ext to my boss, he said I could proceed and I think overall everyone has been very happy with it.

Somethings I have seen improve for each release of Ext. I am going to start with the items that I have seen the biggest change in and work down to those that have changed but maybe not that much. Of course these are just my opinions

* Documentation
* Speed
* Overall Community Support
* UI Reliability

Documentation- The documentation has GREATLY improved and since the release of 3.0 I have started to see more and more examples of code in documentation itself. One thing that is still lacking just a little is an overall explanation of the properties/config options/methods/etc... for an object....some of these have a great amount of explanation and others not so much. Of course you can likely find someone to give a little bit more information on #extjs on but I think such details should be in the documentation. One thing I would love to see in the documentation along with the curret code example, is an actual working element produced from the code example, I know there are examples, but having everything in one place is a great thing to have and not all classes that have code in the documentation have samples...although most of them do.

Speed- The speed of Ext overall has increased SIGNIFICANTLY and I dont think there is anyone out there that is using Ext that could ask for more speed improvements although I am sure the team is working on them.

Overall Community Support- I have see the community grow in leaps and bounds for Ext, this past year was the first Ext Conference, and although I moved to Florida just in time for it, unfortunately I was getting married later that month and with starting the new job and having to take time off for the wedding/honeymoon I as unable to attend. I believe this years conference, if there is going to be one, will be in California as that is where the new Ext office is located (figures I come to town and everyone leaves!) Going with community tow books have come out recently The "Ext JS 3.0 Cookbook" and a not yet released in paper back form but available but available through Manning Publishing's MEAP program "Ext JS in Action" these has both bean great reads so far and I would highly suggest for anyone involved in Ext development to purchase them.

UI Reliability-  This one really isnt an improvement but something negative that I am starting to see I have noticed a couple of UI bugs creaping in and out of the 3.x releases such as, tabs not having the site images, a form having trouble placing buttons correctly and having them cut off on the left hand side.  Now  the tabs issue was corrected with the release of 3.2 but the 3.2 release introduced the buttons issue, which I believe is my fault in that I have not set the proper config options for my objects but it was working correctly in 3.1 and now is showing up in 3.2

But overall Ext is great and the changes they have been/are making to the release cycle are going to help the overall package shine like no other.


Unknown said...

ExtJs is nice, the widgets work really well, especially the grid. The only problem IMO is the licensing isn't very good. You may want to take a look at Dojo, which is more liberally licensed, and has pretty much the same functionality. (ExtJs has some ridiculous thing where you need to buy a license in order to use it in commercial works, as I'm sure you've seen).

Donald J Organ IV said...

Yes in fact my company has purchased a license... I really believe that if your using something for profit you should have to give back...but if you are trulely developing something opensource then you are giving back. Ext doesn't require you to purchase a license if you are developing an opensource project

Unknown said...

I think with libraries, the whole "contributing back" thing isn't as much of a problem; I've seen companies contribute back with even liberally licensed libraries, whether it be through bug reports or actual widgets. And a lot of times, companies don't even modify the libraries in any way, so there isn't much to give back.

Software on the other hand, I think it's more of a problem, since companies could just take something, rebrand it, and make it better then the original. They wouldn't contribute back the changes because then their free competitor would benefit from it.

So in that sense I think that libraries should be more liberally licensed (with the LGPL or more liberal), while software should be less liberally licensed (with something like the GPL).

Donald J Organ IV said...

When using something for profit my definition of contributing back is $$$ whether it be for a license, or a donation to the opensource project itself. So it the Ext licensing doesnt bother me one bit, hey without the comercial entity I dont think we would have as great of a product as we do. Again just my opinion.

Unknown said...


I see that you are a PHP guy. First: I'm not a recruiter. I work for Pentaho, a Central Florida Open Source Business Intelligence company. We have an interest in expanding our web team. Ping me if you're interested or know someone that may be. Skills should be around web development specializing in LAMP and use of PHP that is already in place for our web properties. I can provide a full desc. if needed.

Unknown said...

Hi, Iam also a PHP developer, Currently making a project on CI and EXTJS. diong it only on my free time, my question is can I used the EXTJS for free in my webapplication not distribute it, but provide a service using the application with fee on my server, do I need to still buy license cause in a way I did not modify it, I did not destribute it, and its not a framework over EXTJS or it is not a library to be sold?


KenDowns said...

Donald, doing some catching up and I see you really are getting heavy into ExtJS. It is still on my list for "someday", it looks like once I get to it I'll need a brain dump from you.