Tuesday, May 6, 2008

The Grand Unification Theory

New comment on 'I like my bazaar!':
"As you said the writer is only partially invalid, having such a huge amount of distro's as the GNU/Linux do creates too many incompatibilities at some point, such as the package management systems. I find it stupid to have such a variety, the major distro's could have agreed on a single one or at least create a new one to suit everyones tastes and optimize it.

Also I'm sure some distro's could merge, not only because they could have similar goals but also because bigger developing teams mean faster and better development. The big number of distributions could mean that something may be developed in many distributions at the same time yet the developers are unaware of the fact thus wasting time by doing twice the work they could have done."

Dear Anonymous,

Let me tell you a little story, before you try to explain "The Grand Unification Theory" to me again. 386BSD was written mainly by Berkeley alumni Lynne Jolitz and William Jolitz. After the release of 386BSD 0.1, a group of users began collecting bug fixes and enhancements, releasing them as an unofficial patchkit. Due to differences of opinion between the Jolitzes and the patchkit maintainers over the future direction and release schedule of 386BSD, the maintainers of the patchkit founded the FreeBSD project in 1993 to continue their work.

Around the same time, the NetBSD project was founded by a different group of 386BSD users, with the aim of unifying 386BSD with other strands of BSD development into one multi-platform system. The project began as a result of frustration within the 386BSD developer community with the pace and direction of the operating system's development. The four founders of the NetBSD project, Chris Demetriou, Theo de Raadt, Adam Glass and Charles Hannum, felt that a more open development model would be beneficial to the project.

In December 1994, NetBSD co-founder Theo de Raadt was asked to resign his position as a senior developer and member of the NetBSD core team, and his access to the source code repository was revoked. The reason for this is not wholly clear, although there are claims that it was due to personality clashes within the NetBSD project and on its mailing lists. In October 1995, de Raadt founded OpenBSD, a new project forked from NetBSD 1.0. After all these years, the three flavors of *BSD are still alive. Some users like one, other users prefer the other for reasons only known to them.

Okay, got that? Now let me tell you another story before you go to bed. It is fairly easy to make a Forth compiler. Hence, virtually every serious Forth programmer has written his own. There are fat, tiny, portable, assembler based, meta-, bytecode, native, standalone, embedded, closed source, FOSS and lots and lots of other Forth compilers. They are standard (Forth-78, Forth-79, FIG-Forth, Forth-83, ANS-Forth) or non-standard. There are so many Forth compilers for every imaginable platform, you'd have a hard time to invent another variation. But I did just that. I didn't find a Forth compiler that was just right for me. So I developed my own, back in 1994. And what do you think? After me, others went through the very same process and invented their own.

It is a natural process. Whenever groups are formed, fractions will emerge. And when those fractions unify for one reason or another, there are others who won't agree, stay behind and found new groups. Well, it doesn't happen to closed source companies, you say? Right, but what keeps those companies together? Power. Money. They own you, you know. In Open Source, nobody owns anybody. If you can't find what you need, if you don't agree with somebody, you make your own. There is nothing or nobody stopping you as long as you are willing to comply with the license.

And that is exactly what is happening in the bazaar. Every merchant has its own product and the users decide. Some of us are both merchant and user, so we've seen both sides. Yes, I won't argue that there is a certain rationality in unification, but (human) nature just doesn't work that way. Would you prefer only one kind of car, one kind of television, one radio channel and one kind of cheese, the kind of cheese your neighbor likes and you detest? Of course not! That's why there is a bazaar. And that is why there is more than one cathedral ;-)

Sunday, May 4, 2008

I like my bazaar!

In his article "Why the Linux world should embrace the BSD's", Steve Lake proposed a closer cooperation between Linux and BSD. Although I have the utmost respect for BSD and what its developers have accomplished, I don't see what good it would do. I think his reasoning is flawed and the arguments he uses are - at least partially - invalid.

First, I don't agree that the cathedral is the best development method. There are many good programmers out there and they should not be denied the privilege to submit code. Note that Linus does not blindly insert all submissions. He or one of his lieutenants judge the code on its merits and decide to include it or not. Since many programmers can work on the code it is obvious that development can take place at a much faster pace. Note how the development of schedulers took place. Several different varieties were made, a lot of testing was done and in the end Linux gained overall. That is a far cry from the handgrenade method which Steve suggests Linus uses.

On the other hand, how many ports of Linux were done? It runs everything from mobile phones to mainframes. I don't see cathedral-developed software doing that (I was proven wrong here; there are 58 ports of NetBSD). From a philosophical point of view the bazaar is more democratic, allowing users to participate on every level and determining largely where development is going (Linus has acknowledged that on several occasions). You may call BSD a meritocracy, but you may also view it as a oliarchy.

Second, to me the BSD license equals to software theft. It is well known that BSD software enabled Microsoft to "steal" several key components, without doing anything in return for the community that developed it. Speaking of "sleeping with the enemy".. To use an analogy, the BSD license equals to a naked woman standing in the middle of skid row at night screaming: "Rape me! Rape me!". I don't mind anyone using my code (including Microsoft), but return the improvements that were made to the community or individual that developed it. My software was used in at least two different commercial products and the developers always submitted their modifications, which resulted in several key improvements. BTW, I use the LGPL - I'm not a Stallman groupie.

Third, I have nothing against a cooperation between both projects, but I do see legal issues. E.g. swapping code can be beneficial to both projects. May be the BSD group can live with the fact that Linus will use the GPLv2 for that code, but I'm not so sure that Linus can live with the fact that his code is published under a BSD license. That is what it boils down to in the end, even after accepting that the BSD and GPL communities have very different philosophies concerning development and licensing.

Finally, I'm desperately trying to see what he is actually proposing. What should this "partnership" do? Should it end in a complete merger of both projects? And why? Simply because "there can be only one"? Why not a merger between Microsoft and the FOSS world? Hell, let's turn over all the code we got! Then there is only one that (should) fit all. So, why not stop this silly game and let there be only Microsoft Vista? Aero isn't that bad..

Your answer will tell you why Linux and BSD should exist beside each other, why there are KDE, GNOME and Enlightenment and why the Tiny C compiler was developed (although a perfectly good GCC already existed). It is the classical error of cathedral proponents. A bazaar means choice, shopping malls, not the bleak shops of the Soviet era and - most of all - no high priests and Politbureau's. Being someone who has seen with his own eyes what dictatorship and elitarism can do to people in particular and society in general, I like my bazaar.

Friday, February 15, 2008

Applications are Open Source too

One of the advantages of combining public transport and mobile computing is that you can spend the time you’re commuting on something useful (if you consider blogging to be something useful of course). I’m using LyX to write this article, but Firefox, GIMP, LaTex2RTF, ImageMagick, Apache, MySQL, PHP, Graphviz, bash, GCC and my own 4tH compiler are installed as well. And no, this is not a Linux laptop, it is a Windows XP laptop. Yes, your deduction was correct, I’ve been providing MS-DOS and MS-Windows versions of 4tH for as long as I can remember, it’s not like Microsoft has recruited me lately. And no, it is not my laptop, it is my employers laptop. Since the Netherlands may be most retarded country in the world where Open Source is concerned it automatically comes with MS-Windows. Fortunately, I was able to install my own stuff as well, because a Windows XP laptop with MS-Office is less than useful to me.

Strangely enough, I get the same remarks from MS-fan boys. They never ask me if there are any useful word processors available (yes, LyX) but if it can run MS-Office. Of course you can using Wine, but there are so many fine other word processors available for Linux. But no, it has to be MS-Word and nothing else. I can understand why. Using another program, even if it resembles the one you’re used to, is like sleeping for the first time at the home of your new girlfriend. When you try to find the bathroom at night the chances are you’ll end up lying face down in the hallway. Of course, in time you will learn to find your way around, but it is frustrating (and humiliating) at first. So when people change Operating Systems the first thing they’ll look for is a way to run their familiar applications. They will only switch if there is no other way.

I remember when I switched from MS-Windows 3.1 to Linux I used Paintshop Pro for a considerable amount of time before I finally switched to GIMP. I used the Linux version of Wordperfect. I updated my diagrams with Novagraph Chartist at work. Finding, selecting and learning Linux alternatives took me a lot of time, time that I could have spent on creating content. Sometimes I was even forced to recreate or reformat content. But once I had familiarized myself with an application I had no reason to switch again. I’m never going to relinquish my LyX, Graphviz or Dia for that matter. In comparison, MS-Visio and MS-Word are applications of a distant past and do not offer me the versatility or comfort I’m used to.

LyX simply works, nuff said. Its format is simple enough to interface with and versatile enough for the most complex of documents. When I insert a picture it stays where I put it instead of jumping to different places or being overlaid with text for no obvious reason. The pages are automatically numbered and adding a Table of Contents is just a few clicks away. Graphviz automatically creates a diagram from a simple definition. I don’t have to place edges or nodes manually and it interfaces perfectly with LyX. Just like Dia, by the way. I must admit, I only use Open Office to read MS-documents, I don’t create too much content with it, but it is a wonderful application. GCC is my compiler of choice, although I rarely need it except to compile my own 4tH compiler, which I use predominantly to write programs. And who doesn’t use Firefox? Only those dwelling in the Valley of the Ignorant.

Some would like us to believe that Open Source applications are lacking in functionality, but I sincerely think they are wrong - or spreading FUD for that matter. I think Open Source offers great applications and I think the community should be more confident and proud of what they have achieved. If you’re using Open Source applications you’re using next generation tools, new and exciting paradigms, which will offer you a headstart once the MS-dinosaur has realized this and has implemented it in its products. And in the meanwhile you will enjoy having the advantage.

I haven’t touched MS-Word for anything serious in a long time - and when I was forced to do it I regretted it every single minute. I’m a writer, not a layout artist. I wanna type, I don’t want to be bothered by adding and maintaining the layout. LyX works like I want to work. This is a chapter, this is a section, this is an enumeration, here comes the Table of Contents - take care of it. And LyX does. ’A’ is connected with ’B’ and ’C’ and ’B’ is connected with ’C’. Put them in borderless, cyan boxes. Now make a diagram. And Graphviz does.

These are the things that make you productive. I’ve never seen anything MS-like do that. They believe in blue ribbons. I don’t. BTW, did you know that you can buy an add-on that makes the ribbon interface disappear and reverts you to an interface that was brand new when the dinosaurs roamed the earth? I guess there must be real market for it.

I don’t even think it is the fault of Microsoft. For several reasons it is very hard to change human behavior. Knowledge is valuable. You don’t change from expert to newbie voluntarily. It diminishes your personal and professional value. People want to get the job done. They don’t have or take the time to learn a new tool, even if this investment makes them more productive in the long run. That behavior is one of the most important obstacles in the adoption of Open Source products. People are only willing to change if their applications don’t change. Most of them don’t know what a kernel is and even less why they should care. As far as they are concerned if it runs MS-Word it’s a kind of ’Windows’.

The Open Source movement can use this behavior to its advantage. If people use Open Source applications they will run Open Source operating systems. It is not a question of ’if’ anymore, but a question of ’when’. So when a friend asks you for a bootleg copy of MS-Word, install OpenOffice or Abiword. You can replace Photoshop or Paint Shop Pro with GIMP, Quark Express with Scribus, Visual Studio with GCC and so on. Now that KDE makes the jump to the MS-Windows desktop the choice of applications has become even wider. And then you wait. MS-Windows will fail at some moment in time and you know where your friend will turn to.

Closed source software is a wonderful thing, especially if you have to pay for it. While ’free speech’ is vitally important, I guarantee you that ’free beer’ attracts more visitors. Fortunately for us, Microsoft made it very unattractive to install MS-Windows. First you either have to pay for it or go through a difficult procedure to bootleg it. Second, their main attraction is not so attractive. Who wants Vista? Not even the most fanatic MS-fanboy wants that on his machine. Third, installing MS-Windows is going through hell. If you have old, vanilla hardware, a modern Linux distribution will probably support it. Pop in the DVD and off you go! Where a MS-Windows installation leaves you with a bare bone machine, Linux will already offer you a wide choice of applications. Applications your friend already knows, uses and loves. You don’t break the barrier by tearing down walls, but by dismantling them stone by stone.

There are developers that refuse to port their FOSS software to MS-Windows. There are even developers that deny others the right to compile their FOSS software for MS-Windows. Personally, I don’t think that’s a good idea. First of all from a public relations point of view. If you want to leave the impression that Open Source developers are a bunch of religious zealots whose next move will be the bombing of the Redwood headquarters, that’s absolutely the way to do it. Second, for what? Those who use or are forced to use MS-Windows and have the required know how will do it anyway. And those who haven’t will be frustrated. Nice going. You lived up to your principles and that’s it. Period. Your little pet project is not the killer application that will turn people to Linux. Tough luck. I’m afraid you’ll have to live with it.

What most FOSS fundamentalists seem to forget is that MS-Windows users can be converted to FOSS users. Even better, a large number of MS-Windows users are FOSS users. The simple fact that someone uses a Microsoft kernel doesn’t mean he has joined the dark side. Most people won’t even care. If there is a good, cheap alternative to MS-Windows they will use it as long as it doesn’t cause them too much trouble. Applications are the key factor here. So instead of trying to force people to change their kernels, we have to ease them into using our applications. Yes, maybe some people will continue to use MS-Windows kernels, because it is easier to run MS-Windows applications on an MS-Windows kernel than it is using Linux and Wine. Yes, maybe Microsoft will continue to earn some money by selling MS-Windows kernels. But in the end, when GCC, OpenOffice, Scribus, Inkscape, Dia, Firefox, GIMP and the new KDE desktop have become the applications of choice, who do you think has won?