Wednesday, November 22, 2006

Why Open Source Does Not Work (For Me)

When freedom is compulsory, can it still be called freedom?
(anonymous ftp)

While I can't help applauding some practical consequences of the Open Source movement, I find the ideology behind it rather scatological.

As it stands, there is balance in the force. But not necessarily due to the quality of say, ahem, Linux, but thanks rather to the suckiness of some of the non-Open Source players. Apple stands proof that brilliant products are indeed possible in the world of proprietary designs.

I enjoy writing software and I take pride in my work. I am most happy when my code helps people solving practical problems. But I also enjoy getting paid for my work, at the fair market rate.

Yet the collaborative model of Open Source is effective. When people work together, they tend to become a distributed system with tolerance to faults, and with opportunities for major fun. What lacks is the opportunity (for the worker bees) to make a major buck. Once the Source goes Open it somewhat starts attracting more dung flies than worker bees.

What I would love to see is a system where people have fun building a cathedral right next to the bazaar.

The two-digit IQ-ers (merchants, thieves, and bums that frequent the bazaar) have to pay to enter the cathedral, and cathedral builders share the profits (which may be monetary or otherwise, as some may chose to contribute for good karma or posthumous glory, and have their source code shine in its eternal simplicity and elegance).

How can we achieve a development model that accommodates a pragmatic mix of open and closed source, thus satisfying the individual needs of the people involved?

There are technical and non-technical options. The possible non-technical include:
  1. have all contributors adhere to a honor system (weak, because we all know how human nature works);
  2. have everybody sign NDA-s and contracts (may quickly degenerate into "my lawyers against their lawyers" situations);
  3. have someone of good morals and notorious character appointed (elected?) leader, arbiter, gatekeeper and distributor of profits, after careful weighing every body's contribution (yeah right, look at our elected leaders).
You can easily see that a technical solution that enforces and self-polices the model might be a better alternative. How about, for example, have everybody design and code to interfaces? Then, each module owner is free to open up her implementation, or to keep it proprietary. The approach only works as long each contributor owns a meaningful component of the system, that can be put behind an interface. That's really not too much to ask, and it would benefit the designs. Team members will have to think in terms of the intent behind the abstraction, rather than the actual algorithms that implement it; crossing the interface barriers for the purpose of tweaking and hacking also becomes naturally discouraged.

The major challenge for this approach of mixing and matching open and closed modules is the lack of binary standards in environments such as C++ (the Itanium ABI is still young) and Linux. This fluidity is purposely perpetrated by Linux and GCC, and even enforced by the LGPL that prevents statical linkage as a workaround for runtime "platforms" that are as stable as quicksand.

In a future installment, I will go over my attempts to create a platform that allows a mix of open source and closed IP within the same project, when I started the Zero Debugger project.


Max said...

I have been interested in peeking behind the curtain and figuring out why you didn't open source the Zero debugger, especially when you are giving it away for free.

I agree that Stallman's view of "fair pay" is very similar to a novice business man's -- there's a reason that the GPL requires you to sell support contracts if you want the major bucks. Academics and new businessmen often feel it's unfair to make too much money, even if the customers disagree.

OTOH, I'm curious to see if the Zer debugger will attract lots of followers, given that they are going to only see open interfaces, not internal code.

The Free Meme said...

There's no doubt that there are some good practical consequences of OS, one of them being that all the source code out there is a great educational tool.

As a way of being thankful to that, I wanted to give something back, and
this is why the current version Zero is free. It's not an outworldly concept (see VMWare).

But I am planning on a Plus (or Pro) version for businesses that will not be free, and will come with support.

"unfair to make too much money" sounds too left on the polical spectrum to me, I grew up behind the Iron Curtain and tend to cringe when I hear this kind of talk.

I think the market is the only one that decides what's fair.

And take a look at the oil corporations: if they charge what the market can bear, why should a programmer not maximize the returns of his sweat?

Max said...

Just to be clear, Richard Stallman repeatedly says "I don't mind when programmers get paid." However, I find it interesting that he does mind when programmers receive royalties, or get paid several times for the same work. He's fine with trading time for money, but not fine with reselling the same work several times, even when the customers are perfectly happy buying the same copy as their neighbors.

Which is why I believe Stallman has a problem with making too much money. The "support" and "for no more than the physical act of offering distribution" clauses of the GPL act as dampers to a programmer's ability to resell GPLed software.

For the record, I'm an open source guy, not a free software guy. but I haven't found a good solution to the problem. If the source isn't open, I'm limited in what I can learn by reading the design documents (and limited in how I can change the behavior of the software), but if the source is open, I'm not likely to pay a lot for the software. Then again, the source to GDB is open, but too baroque to be fun reading.

I am interested in seeing how the Zero debugger "experiment" (my words, of course) plays out. And I am happy to hear that there will be an enterprise/extended/plus version.

Ben Schleimer said...

If you want to do opensource and make tons of money, look at how trolltech works. If you want to use their awesome GUI library for free, fine. Just make sure your program is GPL.

If you want to use it closed source, fine, just pay them the big bucks.

It works 100%. The open sourcers get a super, duper library which is extremely fun to play with and the big besiness types get the best support money can buy.

And trolltech profits ALOT from it...
I guess the key is finding out what both the little guys and big guys want/need. And being really good engineers.

It could work the same way with any set of functionality. AI, sound, charting, constraint solving, etc, etc...


The Free Meme said...

I agree with you, Ben, however a business model that works well for components may not lend itself to applications. I have been considering open-sourcing some of the support libraries in the Zero Debugger. If I do it though, I would never choose GPL, I'd rather go with something MIT-like (which does not restrict commercial use).