The strength of OSS, or why wrappers just don't cut it
Mon, 11 Apr 2005 19:27 -0400

One of the more common myths around the software development community these days is that if you have an implementation A, and you wrap an API style B around it, that as far as the adherents of B are concerned, it should be all great, and that any arguing on their part is evil religious bigotry.

This ignores the core strength of open-source software: the open source.

Why does access to the source matter? The common (mis)conception is that increases people spotting bugs. Well, sorry to tell you, but random people do not frequently fix your code. The print out of the source code of your favorite app isn't likely to hit the best seller lists any time soon.

When it does matter, however, is if the library of service you rely on does something unexpected. When that happens in proprietary settings, you can either fork over a fat check for a support contract, or try lots of random things until you find one that works. Hopefully.

With source access, you don't have to do it. You can read the code, step through it, study the comments. Often times, that leads you straight to the answer. Assuming, of course, the code is actually readable.

And readable does not just mean "good" (though the lack of that hurts, a lot). It also means consistent with the style of code you yourself write, the style of libraries you are working with. It means that you shouldn't have to spend 2 weeks studying something esoteric for the code to be comprehensible. And it means, that if the implementation is written in an entirely different style than the wrapper around it and the code using it, it's code is of practically no use. So, the best one can do, is go hunt for help. [1].

So remember: no matter how you wrap it, it's still the same source-code. And if it does something you don't understand - and it will - you are either going have to waste a lot of time reading that code, or waste a lot of time seeking and getting help.

P.S. And, yes, this is related to the latest entries from Aaron Seigo. You just have to pick appropriate values of A and B.


[1] You might ask about Qt wrapping X here. Well, and you would be sort of right - the pieces of Qt dealing with X are inaccessible to most of developers. Fortunately, most of the toolkit is simple, platform-independent UI code, similar to that one can find in libkdeui. But when the more esoteric or platform-specific bits do not do what one wants, most people have to go seek help.
Mon, 11 Apr 2005 19:27 -0400
The strength of OSS, or why wrappers just don't cut it