RLM (Racing League Manager) version 2.0 is a web application designed to track online racing league information, specifically at this time for Live for Speed (http://lfs.net). It uses the Dirty Harry framework wrapper which is built on top of the Zend Framework for PHP and relies on the Yahoo User Interface version 2.4.1 for YUI components and AJAX functionality.

DISCLAIMER: RLM version 2.0 is ALPHA version software with little attention paid to the "look" of the application.


An original prototype was done using ExtJS, and most of all the features shown with YUI can be replicated with ExtJS, although you are a bit more locked in as far as look and feel goes with ExtJS. Some quite notes on the differences between YUI and ExtJS are as follows.

Both have their strong and weak points. A strong point is the data grids with ExtJS, they do more currently than the YUI data tables such as grouping (I find myself still working with 2.4.1 data table as I made some changes to support features, such as cell alignment, that wasn't in the base). That being said, ExtJS tends to "lock you in" to particular paradigms. You can certainly skin ExtJS, but if you need a slightly different look its much easier to do that with YUI. As far as coding styles/standards, neither is any better than the other. Both are fairly easy to modify to do what you need to do. ExtJS also has support for client-side validation with their FormPanel and BasicForm, but again FormPanel can lock you into a certain look thats not as easy to get out of, but the client-side validation portion is quite nice (I ended up writting my own for YUI [http://www.thzero.com/programming/yui] to address this shortcomings). ExtJS also has a some issues around configuration and creation of components where they do not always work quite the same which can be frustrating. ExtJS also has internationalization built in with different languages packs (basically .js files) that can be loaded. YUI however works better with existing mark-ups where as ExtJS is mostly defined through javascripts. Both communities have excellent support.

No problem. The two areas that I really found "lacking" in YUI as compared to ExtJS are the data table and the lack of a form control. The latter was more easily added to YUI than I feel doing something similiar in ExtJS would be (actually I'd love to see something like that added to YUI... I eventually plan on redoing the Dialog to incorporate my Form component, but I don't have need of that quite yet). The data table "lacking" areas are still a bit of a struggle. I would have had to add the layout manager to the list of ExtJS bonuses, but since 2.5 now has that, its not quite so much of an issue when I eventually get to 2.5 (mostly due to the data table issues).

To me the single best thing about YUI is really that I am not having to design my entire view in javascript if I choose not to since many of the components have the ability to do progressive enhancements of markup. With ExtJS you really don't have much of a choice with that.

Another user raised the licensing issue, and the BSD license is definetly easier to use with commercial software development as opposed to even the LGPL, so that's definetly a benefit.

Couple more thoughts, now that I've had some time to think about it during my morning commute would be that in some ways ExtJS "looks", and maybe "feels", a bit more polished... but those are very subjective categories. Also, I would say while I think the documentation is quite good, and the examples are handy, that I do find the ExtJS API documentation to be a bit better.

Lastly, I would really like to see more of the YUI components that are marked as 'Beta' solified and moved out of Beta status. For me right now, its no big deal because I'm using it mostly on hobby sites, but it becomes a bit harder sometimes (depending on clients really and whether they are early/late adopters) to sell clients on using XYZ API if parts are still in Beta.


This following screen shots are here to illustrate, briefly, some of the YUI components/features being used in RLM.