wxWidgets 2.9.0 early adopters: opinions anyone?

This forum can be used to talk about general design strategies, new ideas and questions in general related to wxWidgets. If you feel your questions doesn't fit anywhere, put it here.
Post Reply
Paulsen
Experienced Solver
Experienced Solver
Posts: 53
Joined: Wed May 24, 2006 1:56 pm
Location: Germany

wxWidgets 2.9.0 early adopters: opinions anyone?

Post by Paulsen »

I just dump this question here in the hope of sparking some discussion of the (de)merits of a switch to 2.9.

I am particularly interested if you use 2.9 in a production environment, which 2.8 annoyances were fixed, and which new bugs have been newly introduced.

On the surface, the Unicode changes look rather promising, and I also hope to get rid of some of the patches I always have to apply manually to the 2.8.x code base.
Paulsen
User avatar
doublemax
Moderator
Moderator
Posts: 19159
Joined: Fri Apr 21, 2006 8:03 pm
Location: $FCE2

Post by doublemax »

I don't use 2.9, so i can only make some general comments.

I'm maintaining a few wx projects, some are still based on 2.6.1. If i'd start a new project today, i would definitely use 2.8.x unless i'd need some features that are only available in 2.9.x (i can't think of any right now). The Unicode changes should only affect you, if you had to maintain ANSI *and* Unicode in your previous project. If you only used Unicode before, all you get it less memory consuption in strings at the price of (sometimes significantly) slower performance.

2.9 is still a development version, which means that it can get incompatible API changes.

It also depends on what "annoyances and bugs" you're referring to. If some of them are fixed in 2.9 (you probably have to check yourself, see changes.txt or the actual sources), it might make sense for you to use 2.9x
Use the source, Luke!
User avatar
tierra
Site Admin
Site Admin
Posts: 1355
Joined: Sun Aug 29, 2004 7:14 pm
Location: Salt Lake City, Utah, USA
Contact:

Post by tierra »

wxDesigner's latest release is using 2.9.

I'm still back on 2.8 myself, mostly just due to lack of time to get around to an update, but also because I release on Windows and Mac, and I already know that wxAUI isn't doing so well on Mac OS X in 2.9 (it has a bunch of new problems in both wxOSX/Cocoa and wxOSX/Carbon, mostly caused by changes in the port with the split). So that will need to be fixed before I can move over to it.

On the other hand, 2.9 is the first release to incorporate the new, vital wxHVScrolledWindow addition that my application depends on. We've been patching 2.8 with those changes ourselves for a long time now (maybe over a couple years now). So that will be nice to be able to finally pull that out of our custom patches.

If you haven't seen this already, check out this writeup that outlines most of changes from 2.8 to 2.9/3.0. It's not complete though. For example, it's missing any details about the debug/release build configuration changes (which were done after that was written up).
catalin
Moderator
Moderator
Posts: 1618
Joined: Wed Nov 12, 2008 7:23 am
Location: Romania

Post by catalin »

I have a few opinions too about using 2.9 for development. :)

Aside from the unicode changes which are talked about more often, IMO it's highly advisable to go for 2.9 if you plan to use sockets in your app, and definitely a go if you plan to use sockets in a secondary thread.
On the maintenance side, the defects of 2.9 are treated with higher interest than the ones that are in 2.8 only.
Also, new things have been added to 2.9 which you may have already read about, but I'll mention a less visible one: StretchBlit. I once had a hard time working around the lack of it in 2.8.

Minuses of 2.9 (minuses for the developer) come from the fact that it is still changing. That itself is not a bad thing since it ought to be for the better. But you may get different results from one revision to another. I'll try to give a short example: it seems that in 2.8.x and even 2.9.0, on msw, the wrong variable was used to get the "default gui font". That was changed sometime in the trunk. The impact was that on Vista, the font of the application was different (greater by 1) starting with the concerned revision. There was no impact on XP - probably why it lasted for so long - as the old variable returned the same font, but that was no longer true with Vista.. I think there is something similar with wxToolBar but I didn't get the time to check it in detail.
Another example is an "interesting" change to the algorithm of wxBoxSizer. Personally I am still to understand what exactly changed and for what purpose, but the effect was that _sometimes_ using it will generate different results than what I got used to from 2.8 .

Yet despite all these stories my first opinions stand, and I'd choose 2.9 for a new development.
Paulsen
Experienced Solver
Experienced Solver
Posts: 53
Joined: Wed May 24, 2006 1:56 pm
Location: Germany

Post by Paulsen »

Thanks everyone for your answers!

My take is that no one uses 2.9 in development yet (at least no one that actually does replied to this topic).

My only project that requires some migration/upgrade to Unicode support can wait until next year, and there is an OS X port in the queue (my first!), which might even take precedence.

I will see if maybe a 2.9.1 version is available early 2010, and re-evaluate the question. I am not quite sure if I want two wx builds existing at the same time, as this opens several new ways to shoot myself in the foot if somehow the include and library path settings get confused.

BTW, I am finally giving Mac OS X a try. Bye-bye Windows, though from within your virtual machine coffin, your annoying APIs will continue to vex me for years to come.
Paulsen
catalin
Moderator
Moderator
Posts: 1618
Joined: Wed Nov 12, 2008 7:23 am
Location: Romania

Post by catalin »

Paulsen wrote:My take is that no one uses 2.9 in development yet (at least no one that actually does replied to this topic).
No, I do use 2.9 for development, and IMO it is reliable enough that I'd use it further in a new project too. The sockets / threads / StretchBlit were my main reasons for switching to it.

HTH,
C
Post Reply