John Lam posted a couple of days ago some comments on Open Source. That finally got me started on putting together some of my opinions on Open Source.

First of all, I gotta say I'm somewhat ambivalent when it comes to Open Source Software. However, I can say this for sure: I don't think OSS is the be-all, end-all solution to all problems in the software development world, as some people would lead you to believe [if they could].

I like OSS, and even contribute code to a few OSS projects. I like that, and I enjoy inmensely working on these, as it gives me the chance to work on things I really like doing, but I can't do usually because of my line of work and the company I work for. I don't think, however, that OSS is the right answer for all kinds of software products: some benefit more than others.

For example, things like Software Development tools, frameworks and libraries can substancially benefit from having the Source Code available (but not necessarily be OSS), since it gives the developers more confidence in the tools themselves and, potentially, the chance to improve them and understand them better. The latter is particularly important for libraries, as having Source Code available can be a real help in debugging the code. In this I fully agree with John, and a perfect example of this are both MFC and ATL. Regardless of Rotor being avaliable, I think MS could gain quite a bit from publishing the source code to the .NET framework classes in an MFC-like license and including it with the development tools as an aid to debugging.

ALL EYES ARE SHALLOW...
No, wait... how does the saying go? ahh! "Given enough eyeballs, all
bugs are shallow"
. OK, who comes up with this crap? That stinks of marketing speak (bullshit!).

Most people won't catch a bug in a medium-to-large code base unless they are actively looking for it. And I don't believe OSS makes up inherently for better software [1]. So here's something to think about: It's not the Open Source-ness of the code that makes it better, but the quality of the people working on it. In other words, I'm of the opinion that it's not the fact that the code is OSS that has brought an undetermined quality to it, but the fact that it has attracted a pool of talented developers to it.

OTOH, there's the issue of style. Despite all the ranting and raving by the GNU crowd, have you actually looked at some of the code produced under the GNU? Bleagh! I've seen ugly code, and then some of the code written and sponsored by the GNU (or, more exactly, the FSF). If you want to Open Source it, fine, but you might as well do it right!

CODE SAMPLES AND OSS...
This is another issue I've been wondering about for a while: Are most OSS licenses appropriate for releasing code samples on the net? Most people will agree that having tons of code samples and snippets you can take advantage of while writing your own applications is a great help, and it's also one of the most common scenarios on Win32 (and now .NET) programming: There are tons of websites with sample code, like The Code Project or Code Guru.

However, for all I've seen, many sites don't put an explicit license on the samples posted on them. Would an OSS license be appropriate for them? If so, which one? Here I'll content that a GPL-like license is most definitely not appropriate, but IANALSDCIC.

A CONCLUSION...(SORT OF)
To summarize things, I do like open source (and very much indeed), but I don't think it's always necessary or even the best option. And quite truthfully, there's Open Source, and then there's Open Source.

Huh? You say? Yes! I'm going to put it bluntly in the best way I can: I feel strangely seduced by the Apache Foundation way of doing open source, while I feel strangely repulsed [2] by the FSF way of doing open source. I think the Apache Foundation has gathered and built an incredible amount of good software and an even more incredible amount of good people to work on it. That's huge!

Now, this is just my personal opinion on the matter, but, somehow, the Apache way of doing it just feels right, while the FSF way of working it feels more like Stallman's political agenda at work.

So, to conclude today's rant, just let me say: Congrat's, Apache! I honestly wish someday we have such a thing on the .NET world!


[1] To start with, you got to define what you mean by "better" in software. Sure, there are some important qualities, but that's not all the story (I'll rant about this some other day).

[2] OK, perhaps "repulsed" is too strong a word to use in this context, but I really don't like the FSF much, and find Stallman's rants downright boring and repetitive.


Tomas Restrepo

Software developer located in Colombia. Sr. PFE at Microsoft.