CEGUI Development process
Posted: Tue Mar 14, 2006 14:27
This is just my opinion, but to me it seems like the development process behind CEGUI is rather too opaque for its own good. From my perspective, anyway, things like this new ItemEntry list widget thing just seem to come out of the blue. How was it decided that all the list-based widgets would be redone? Why? Who is responsible? What were the design goals? How are those goals going to be met by the new design? Was there a review process of some sort for the rewrite? Etc. etc. The ItemEntry thing is just one example. You could substitute pretty much any line item on the Roadmap page. The roadmap page itself is another example. How were those priorities and milestones decided and why?
I CEGUI ultimately suffers from the current situation for several reasons.
First, people who might be willing to contribute have no idea what's going on or where contributions are most needed, so they just sit back and wait for things to appear, or just beg on the forums for them to appear.
Second people who do decide to try and contribute can end up going through a whole lot of trouble only to be told in the end -- "oh that part is being completely rewritten, so your patch is useless". I recall reading such a scenario unfold in the forum a while back relating to the ItemEntry change. That's very discouraging not only for the budding young contributor, but also for everyone who sees such exchanges unfold on the forums. They think "man, I'm glad I'm not that guy who just wasted all that time."
Third, it doesn't make the best use of all the brainpower out there. Even if folks aren't able to contribute code directly, or don't have time to code, having design reviews out in the open can solicit insightful feedback and spark discussions of ramifications of changes that perhaps the designer hadn't considered. I know I don't really have much time to contribute code right now, but I do have experience using other UI toolkits like Qt, wxWidgets, FOX, GLUI, FLTK, and one other not really worth mentioning. Who knows, if I had a chance to read over design plans ahead of time, I might just have some useful suggestions.
Perhaps I'm wrong and all this does happen here on the forums. I just don't seem to recall having ever seen any such thing. I have seen things like "I'm working on an X patch and I'll post a link when I'm done", but by the time a patch is posted, or code is checked into CVS most of the design work is already done. Then after it's posted you'll see "let me know if you have any suggestions." Well, reading code is hard. It's not a very efficient way to determine the intents, goals, high-level mechanisms, etc. that were in the developer's mind.
If these types of discussions are happening on the forums then I humbly suggest that they're kind of hard to find amongst all the other myriad topics being discussed. In that case it would be nice to get in the habbit of adding a page to the wiki summarizing the arguments surrounding the design of a particular feature. But even better would probably be if a wiki page was created from the beginning discussing the rationale and proposed design of the new feature or rewrite, and a message posted to the forum soliciting feedback.
Ok, well, that's just my 2jpy.
If you want to know what put the bee in my bonnet to post this, it was mainly reading Stani's messages about starting a new Python IDE project that unites the developers of all the existing Python IDEs (http://groups.google.com/group/pyxides).
I CEGUI ultimately suffers from the current situation for several reasons.
First, people who might be willing to contribute have no idea what's going on or where contributions are most needed, so they just sit back and wait for things to appear, or just beg on the forums for them to appear.
Second people who do decide to try and contribute can end up going through a whole lot of trouble only to be told in the end -- "oh that part is being completely rewritten, so your patch is useless". I recall reading such a scenario unfold in the forum a while back relating to the ItemEntry change. That's very discouraging not only for the budding young contributor, but also for everyone who sees such exchanges unfold on the forums. They think "man, I'm glad I'm not that guy who just wasted all that time."
Third, it doesn't make the best use of all the brainpower out there. Even if folks aren't able to contribute code directly, or don't have time to code, having design reviews out in the open can solicit insightful feedback and spark discussions of ramifications of changes that perhaps the designer hadn't considered. I know I don't really have much time to contribute code right now, but I do have experience using other UI toolkits like Qt, wxWidgets, FOX, GLUI, FLTK, and one other not really worth mentioning. Who knows, if I had a chance to read over design plans ahead of time, I might just have some useful suggestions.
Perhaps I'm wrong and all this does happen here on the forums. I just don't seem to recall having ever seen any such thing. I have seen things like "I'm working on an X patch and I'll post a link when I'm done", but by the time a patch is posted, or code is checked into CVS most of the design work is already done. Then after it's posted you'll see "let me know if you have any suggestions." Well, reading code is hard. It's not a very efficient way to determine the intents, goals, high-level mechanisms, etc. that were in the developer's mind.
If these types of discussions are happening on the forums then I humbly suggest that they're kind of hard to find amongst all the other myriad topics being discussed. In that case it would be nice to get in the habbit of adding a page to the wiki summarizing the arguments surrounding the design of a particular feature. But even better would probably be if a wiki page was created from the beginning discussing the rationale and proposed design of the new feature or rewrite, and a message posted to the forum soliciting feedback.
Ok, well, that's just my 2jpy.
If you want to know what put the bee in my bonnet to post this, it was mainly reading Stani's messages about starting a new Python IDE project that unites the developers of all the existing Python IDEs (http://groups.google.com/group/pyxides).