For a contracting job I am working on, I have been using Telerik's Web controls and it has brought to the forefront of my mind the problem with a great many of the glitzy toolkits. Most toolkits (especially the ever-plentiful GUI variety) make hard things hard and easy things impossible. Case in point: my work with Telerik. Databinding, sorting, and client-side events were still a major pain but I still can't get the windows in the window control to stop hiding the other dialogs.

It seems that in the rush to say "we have more features", many of these projects forget that most of these features quickly become a tangled mess to the control set's user. On the PHP side of the world, I have written some basic grid classes of my own. They are not nearly as featureful as Telerik's, but they are much easier to use. No ASPX or long-winded declarations, just declare an instance of the class, pass in some values (column names and such) and a MySQL result resource and BANG! you have a grid. Any other functionality can be easily added on or the whole darn control can be inherited and extended to the specific use--and herein lies the problem with the big commercial solution. With Telerik, I get a big monolithic blob. It either works for me or it doesn't and it tries to do it all. If the feature set were minimalist, covering the most painful aspects of building such a grid, I could readily build it up, through inheritance or scripting, into just what I need for my project. As it is, I just try to push my way through. This isn't a commercial vs. open source argument. It is the idea of providing a minimalist starting place and building or starting with a palace and trying to strip it down to a garage. It is also the same reason that I favor Gentoo over Fedora: it gives me a minimal system and the tools I need to build the system I want. With Fedora you get everything and the kitchen sink--and if you don't want that much, you have to scale it down.

Here is the upshot: it is easier to take something small, but extensible, and build up then to take something static and monolithic and scale it down.