Well.. it could be, unforunately it suffers from a few.. problems..
Firstly, source code is often a mess and projects bloat horribly; this is often as a result of a lack of coding standards, guidence and design documents.
Recently Java went Opensource and one of the guys doing a degree at my college was all 'yeah, this is great, it means bugs will be fixed faster', which I counted with 'You'd like to think so, but in reality most people just want to add new features, the great 'bugs get fixed faster' promise of opensource has never really appeared'.
He wasn't convinced, but then he is on a Bussiness IT course and as such I wouldn't expect him to agree nor understand [grin]
The other thing which annoys me is the lack of a sane and upto date Visual Studio build system in oh so so many projects.
Often the best you can hope for is a VS6 format file which requires conversion to whatever you are using and then some fixing up due to changes. Maybe there was an excuse for this when VS costs loads, but once VS Express versions appeared this reasoning vanished in my opinion.
I'm not saying these projects need to support every IDE under the sun, but given how good and populate VS is some decent support would be nice ya know? It seems in OS projects Win32 is often an 'after thought', but I guess thats what you get when these things spawn from *nix based backgrounds.
Finally, consistancy across interlocking projects would be...well.. ya know.. nice?
This is kinda a rant about the Ogg project.
Lets take a subset, the most popular ones anyways, of it's outputs; Ogg, Vorbis and Theora.
Now, you can download all three and extract them and you end up with folders named lib
Excellent, makes it easy to know what version you have installed, however it's not as useful as you'd think when it comes to VS compiling.
You see, Ogg for example references it's self as "../../ogg", so you need to perform a rename. Vorbis is much the same showing up as "../../vorbis", so another simple rename there.
Then we come to Theora... *shakes head sadly*
Firstly, the default VS project which comes with it is missing various files, so while it builds it won't final stage link into an exe due to missing functions. However, it does at least build from the start...
If we now go across to the VS2005 solution we get with it, load it and notice aload of extra files, oddly enough containing the missing functions. So we then hit 'build' and you'll be confronted by a series of 'can not find header ogg.h' errors. This struck me as odd, the older version built fine it was just missing some functions due to a bad project...
Upon investigation it turns out that the VS05 solution references ogg via the path "../../../../libogg"... I nearly screamed.
I sometimes wonder what kinda of release processing occurs with these projects? Didn't anyone think to check that the two solutions were at least looking in the same place? (and maybe.. ya know.. had hte same files in them...).
Sometimes the state of Opensource software makes me want to cry... it really does..
(and for the record, before each release of my own libs I check the damned things compile. I've also been praised on the cleaness of my code from a couple of places... I admit I'm a bit light on build enviroments, but someone has helpped with that with GTL and I lack the toolset to make OS X and Linux versions of things myself...)
I'm done, time to go pickle my brain; I'll finish my encoder project later/tomorrow...