Sunday, December 03, 2006

How to Contribute to wxWidgets Guide

We often have the impression that wxWidgets could be so much better if only we had more time to fix the known problems with it, to implement all these exciting new features it still lacks or even just to fix the numerous old bugs. But unfortunately the time is always lacking (isn't it funny that you can regularly find jokes about 48 hour days in wx-related email since the beginning of the nineties?) and so many things remain undone. So the next idea, after failing to change the duration of the day, is to encourage more people to work on wxWidgets -- and it seems especially actual now that programming is becoming all about parallelization to take advantage of new multi-processor machines. And attracting new contributors does work rather nicely (better than trying to construct time dilatation machine, anyhow), for instance several new developers joined us relatively recently and brought us great things like AUI, custom comboboxes and almost all other new controls in the upcoming 2.8.0 release.


But we'd still like to attract even more! And maybe it's our own fault, after all, if people don't flock to wxWidgets development. We don't do much advertisement (real programmers hate marketing) and we don't even explain clearly how to become a wxWidgets contributor anywhere. Personally, as I want to keep my real programmer badge, I can't really address the former issue but at least I tried to help with the latter and so wrote this guide to explain how you can help with wxWidgets development. It is probably not as useful as it could be as it's hard for me to understand what questions and problems can a newcomer to wxWidgets (and/or open source development in general) have. But hopefully this guide is better than nothing at all and I'm looking forward to improving it in the future with feedback from the people it is really addressed to.

So thanks in advance for any comments about this guide! As for me, I'm finally going to log off and have a few hours of sleep after my 40 hours wxWidgets working day, safe in the knowledge that hundreds of new developers are going to join the project tomorrow ;-)

7 comments:

Anonymous said...

Well, the time dilatation machine seems very cool and useful - maybe it's worth a new SF project ;)

Seriously: the new guide seems good to me. When I was a "simple" user of wxWidgets, not a contributor, I had the impression that:

1) contributions required greater skills than mine
2) wxWidgets was "complete" - i.e. that there were no new things to add.

I also missed the fact that wx-dev team is always open to discussion and improvements; in fact I think the suggestion of subscribing wx-dev mailing list is the best one.
After following wxWidgets development for a while you realize the collaborative "atmosphere" which surrounds wxWidgets, as for any good successful open source project.

In conclusion I would just add a statement (to the "how to contribute" page) which says something like:

"If you found that something (related to cross-platform GUIs) is missing in wxWidgets, please let us know; we're interested!

If you found a bug or a problem with already existing API, don't work around it! Enhancements to the ease of use of the API are welcome, too.
"

Anonymous said...

I agree with you, Vadim. Although I use and follow wxWidgets development very closely for the past 3 years, contributing and patching wxWidgets always seemed "obscure science" to me.

I hope this will help me and others be more active on the wxWidgets front.

Anonymous said...

I always wanted to be a scientist a programmer a director or a soldier ...
I realized I cannot be all that. it is simply not possible. and I think not realizing this is one of the most common mistakes people make.

the monstruos idea that gcc must run on all Unix and even Windows platforms seriously hinders it's
development and makes the programs slower than they could be.
same for Gtk+. I was sad to hear the "great news" that it is going to be ported to Windows.
who on Earth is going to programm in Gtk for windows. surely, it's development will slow down. etc.


same applies for wxWidgets project. you can only do things for what you have resources.
IMHO fixing bugs is more important than adding new cool features.
I was always reluctant with wxWidgets due to those "numerous old bugs".
do developers really need the WinCE and Motif platforms?

maybe attracting more developers could be the answer.
these days (application) developers are pampered. they want to have a free, rock solid library with a lot of features. plus they want eye candy with various themes, animation, effects...
and competition is tough. see the Qt, Swing and SWT libraries.

maybe showing developers that with wxWidgets they can program great applications, providing them
with excellent documentation (everyone seems to comment that Qt is great because it's excellent docs.), code examples, eye candy
(these days a theme ala office2007 would count), would attract more of them. surely, they must see that wxWidgets are great. because seeing is believing.
maybe they would provide in return bug fixes, new features and other feedback.

I always lacked the prime goal to which wxWidgets is heading. maybe this is a good point to
start.

just thinking ...

Anonymous said...

Mmm...? I'm absolutely agree with jan bodnar.
Really, when I talk with shareware developers, very often they tell me that they had to chose Qt instead of wxWidgets because of some bugs. And even if people know how to fix this bug (or they don't know but they have enough skills to find it and fix), they rather switch to another toolkit than will spend their time on fixing bugs by themselves and providing patches.... because time is money and the less time complany spends on adopting tools, the less money it loses...
So, I also think that making wxWidgets more stable (and/or less buggy) should be the primary task.

Regards,
T-Rex

Anonymous said...

I'm afraid that we have a too recent example of a project moving from wxWidgets to QT because of some nasty bugs: the VLC media player.

I think it would be very interesting to get in contact with their developers to know what were those bugs and to fix them.

VZ said...

We did get into contact with VLC developers as I was curious about the reason of their switch as well. Unfortunately the discussion wasn't productive at all. All I could gather was that the VLC developer responsible for Unicode support had no idea about how Unicode support in wxWidgets works (along with how people can communicate politely...) and apparently made no effort to find it out. We'd still gladly help them with their problems if only they contacted us -- but they never did. There is not much we can do in such situation unfortunately.

Shinobi Knight said...

Many good points, however even here bugs creep in. The link pointed to by the text "numerous old bugs" is

http://sfnet/tracker/?group_id=9863&atid=109863

This is incorrect, and anyone clicking on the link receives an error page. The link should be

http://sf.net/tracker/?group_id=9863&atid=109863

which is only a period away from it's predecessor. Could you correct this oversight, so that those who are interested in these bugs would be directed to the correct page?

Thanks
Mal