Black Duck recently announced their top Rookie Open Source projects for 2008 which using a bit of a weird metric, revealed the top 10 open source projects that were created in 2008 that had the highest number of releases. More releases makes you good? O.K...
Anyway, the most interesting information from their news release was the stats they gathered on what programming languages these new projects were using. To the surprise of many, 47% of them were written in C (C Rules!). That was followed by 28% in Java and 20% in JavaScript. It's pretty interesting there was so much JavaScript usage. And again, these were projects that have just been created. But when you look at it, most open source projects target Linux, and by far the most popular language for Linux is still C.
One thing I noted, though, was that C++ wasn't even mentioned. It could be that they lumped C++ in with C, but I have my doubts. I rarely do see C++ in open source. The large open source game engines, like Ogre and Irrlicht as well as Firefox (of course), are in C++, and OpenOffice is written in every language imaginable including C++, but I see C way, way more.
[Watch out, bad segue ahead...]
I spent part of last weekend taking a deeper look at Qt, with its upcoming spanking new LGPL license. I have to admit I'm a GPL library bigot and kept away from Qt because of that, but boy do I regret that now that I've seen it. It's an incredibly complete C++ library for building apps of all kinds. And it has everything I've been looking at lately, WebKit, JavaScript (well ECMAScript but that's the same thing), and OpenGL, and incredibly smooth integrations between those and many more components.
So as Qt makes this transition, I have a feeling it's going to gain in popularity everywhere. And I think it'll show the power of C++ and pull a lot of the developers writing for the C-based GTK away. Heck even Ubuntu is thinking of switching to it for their mobile platform.
Kudos to Nokia for making this decision. I think it's going to pay dividends for them as developers take a fresh look at a great framework. Which, BTW, means there will be more developers working in the same environment that also happens to run on Nokia's phones ;).
Talking about Qt software, I hope you are aware of :
ReplyDeletehttp://www.qtsoftware.com/developer/eclipse-integration
Never tried it, but it's surely based on CDT :)
The only problems is that Qt looks like crap on Linux, these guys can't create a good looking L&F from scratch, even if their life depended on it.
ReplyDeleteThe new KDE 4 L&F is just so unpleasant to look at. GTK+ has a definite leg up here, even if it's in C.
BTW, you know there are C++ bindings for GTK+?
http://www.gtkmm.org/
Having worked for quite a while with QT (formerly Qtopia), I can say this much, if you have the horsepower fro QT, it's going to rock your socks off - once you get the general hang of it.
ReplyDeleteAlso, A great tip is to look at the stylesheet implementation for qt, you can make rather.... funny... applications with that.
This might be what Jacek is refering to as "looks like crap", as it's not yet 100% implemented in Linux, leaving some odd artifacts if you build something originally made for Windows on Linux (if a style is not supported, it gets blacked out etc). If he's refering to just the default look and feel, try running applications with other qt switches (I believe this is dynamically linked on host PC's, so you can get Windows look in Linux and Mac targets, etc).
Do they use FreeType for font rendering on Linux? I notice a definite font aliasing degradation on KDE vs. GNOME.
ReplyDeleteEven the Java fonts in OpenJDK7 now look better than the KDE ones..and that says a lot :-)
Freetype is used per default, but I believe they have the option of running with a built in font renderer if needed. Worth reading is http://labs.trolltech.com/blogs/2008/09/01/subpixel-antialiasing-on-x11/ discussing "ugly fonts" and rendering more in depth.
ReplyDeleteHey Doug,
ReplyDeleteI'm a dev on the mixxx (http://mixxx.org/) free DJ software. Our app is written in C++ and completely and utterly dependent on Qt.
I have tremendous respect for the Qt APIs, they've allowed us to build native executables for Linux, Windows and OSX (currently via SCons).
The APIs also address my personal differences with the C++ language (QString and other data types 0wn). We've just started to leverage the EMCAScript engine to make our app scriptable for MIDI input controllers, some very exciting stuff.
Being a java programmer (and using Eclipse all day at work), I'm now having a look to see if we can do native builds with CDT everywhere...
ATM, I'm not sure it can be done, but I'd love to hear any suggestions of other projects you know who've tried or done it...
Cheers,
-G
jacek:
ReplyDeleteYou might not like the KDE look and feel but it's worth noting that Qt 4.5 now ships with built in support for the Gtk+/GNOME look and feels as well: Example