Threads in C++ has been a long topic of pain and moaning, mainly because the C++ standard does not provide (until recently, at least) a platform independent and efficient support for threads built-in the language (POSIX pthreads lib is not C++; being a C library, it requires some careful use when dealing with multithreaded C++ objects which usually include constructors and destructors).
Boost is a set of free peer-reviewed portable C++ libraries (more info here and here) that implements for some time now the Boost.Threads library, which is a highly optimized (and growingly flexible) platform independent thread library (i.e. should work in Linux, OSX, Windows, etc), and that seems to be the candidate best positioned to be included into the next C++ standard revision (i.e. C++0x). When that happens, the need for 3rd party libs in C++ for platform independent thread support will be finally over.
You can learn a bit more about how Boost.Threads will handle threads in the following articles:
So its seems Nokia, the giant who in the recent years seems to completely have lost its bearing, has decided today to party with Microsoft and include WMP7 as (yet another) software platform for their… er… devices (nowadays I’m not really sure what kind of stuff Nokia develops/sells anymore… cellphones? Smartphones? MobilePhones? MobileNet devices? Go figure…).
Now, I couldn’t care less about Nokia and their schizophrenic Symbian, MeeGo, WMP7 personas, but since they bough Trolltech a couple of years ago, I had since then this gut feeling that no good things would happen in the mid-term to Qt (a C++ framework originally developed by Trolltech and which is more than a multiplatform GUI development Toolkit, allowing to conveniently “write once and run everywhere” quasi-natively looking and felling apps for Windows, OSX and Linux).
And here we are…
The thing is that while coding for Marsyas, Qt has been the chosen GUI toolkit that allowed the project to easily deploy some nice GUI apps in the three main OS platforms (but fortunately, and mainly thanks to George “stubbornness” in not allowing Marsyas to become dependent on any 3rd party libs/toolkits, Marsyas can use any other GUI toolkit). Qt is in fact a quite nice piece of software, well documented and with good support, and almost paradoxically, made fully FOSS by Nokia when they bought Trolltech (at that time, MS Windows developers had no access to a FOSS license of Qt).
That said, and as someone that wrote some code using Qt in the past, I should probably now re-evaluate if my next projects should take Qt as a platform of choice. A good thing about Qt is that it is FOSS, and so it’s future may depend more on its developer base than on Nokia itself (and that’s why I’m curious to see what the KDE and (K)Ubuntu reactions will be), but these are confusing days for a software toolkit which may be relegated by its own owner to moribund symbian (eck!) or MeeGo platforms than not even Nokia seems to be betting hi-hopes anymore…