As I write this editorial, FreeBSD has just had its 5 year birthday and, as one of the original founders, I have also been around to watch it grow from what was essentially a 3 man operation with a couple of dozen users to a project with several hundred developers and well over a million users world-wide. It is now used as a server OS by large companies, from Yahoo to Oracle, and by casual users as a desktop workstation solution. Sales of FreeBSD installation media and FreeBSD-based products now run into the tens of millions of dollars a year. Not a bad achievement for free software!
At the same time, to give everyone their just due, I've watched Linux grow from a personal project by a Finnish computer science student into an international phenomenon, many of its users embracing it with the same degree of fervor usually reserved for rock stars and single-malt scotch whiskey. Many former Windows and Macintosh users who probably would not have even mentioned Unix without a grimace before are now preaching the gospel of Linux with the fire of the newly converted and that's a good thing. Linux has, in no small part, helped to bring about what amounts to a second renaissance for Unix, synergy with the Internet boom propelling it far ahead of any previous efforts of this type. My personal OS preferences do not prevent me from admiring the sheer scale of what Linux has accomplished, believe me!
So, then all is rosy and wonderful and this is basically another feel-good editorial about the magic of free software, right? Wrong, unfortunately. There are snakes in the garden of Unix and, surprise surprise, they're the very same snakes we've seen throughout its somewhat checkered history. The snakes of Unrestrained Ego and Not Invented Here still slither freely, it mattering not whether the ground they slither over is free or commercial, and (as usual) they're causing us some serious problems.
To illustrate just how serious those problems can get, let's go back about 8 years to a period known as the "GUI wars" - a time of all-out battle between OpenLook, Motif and a host of lesser contenders. For those who were "there", the event probably needs no further description - the very mention of the GUI wars is enough to send cold shivers down the spine of even the most hardened Unix devotee. Not only did these wars cost Unix the desktop, they cost it a significant number of the few remaining ISVs (Independent Software Vendors) that it had. I was working for Lotus at the time and I can tell you that the idea of supporting two different standard UIs impressed no one (and if you wanted to run on Suns and some other Unix platform back then, that's what you had to do), a number of smaller ISV partners of ours deciding then and there that they'd simply back the Windows and Macintosh platforms and leave the Unix folks to claw and scratch at one another in peace.
The GUI wars also only added to an already untenable situation brought on by the SYSV/UCB split (AIX/HP-UX vs Ultrix/SunOS etc), another ugly chapter which I won't go into here, making the typical ISV's life a real porting hell in return for access to a market which was already dwindling in comparison to the booming Windows market. If it were at all possible for the Unix market to sabotage itself more effectively during that period, I'm not sure how it could have been accomplished. It was one big, massive Jonestown-style poisoned kool-aid party and probably represented one of the few activities the Unix community managed to unite itself successfully behind. When unification of the GUI finally did occur, backing a standard (Motif) which remained commercial and out of reach of the casual user, it was too little too late and, many would also say, entirely the wrong choice.
"That all sounds pretty pathetic, how and why did this happen?" I hear you ask. Well, first there was the matter of Ego (spelled with a capital E). Everyone wanted to be the one to "own" the standard for how the GUI on this nifty new X Window System thing would look, and the dominant corporate players which eventually emerged also decided that they wanted to either sell their technology or keep it proprietary and distribute it only with their own workstations. Both concepts, of course, completely missed the point and caused incalculable damage in so doing.
The X Window System itself was popular principally because it was a free and open standard with a non-aggressive copyright (you could productize it if you wished without being compelled to give the source away, helping to get it past the usual corporate legal department blockades without a fuss) and it was highly portable - I remember being highly chuffed that I could now use the same window system on the IBM PC/RT, Sun 3/50 and DEC MicroVAX machines in my office, a real luxury at the time. The people who wanted to create follow-on standards which they alone controlled, on the other hand, were simply not positioning themselves to take advantage of the X user community's rapid growth, nor could they leverage the work of all those potential volunteer programmers while the sources were being kept under lock and key, so to speak.
NIH was also a big factor, nobody liking anyone else's standard and deciding that a perfect standard was far preferable to having any standard (de-facto or not) at all. Of course, no such degree of perfection was ever achieved and the greater good was sacrificed in pursuit of short-term gains which never even really materialized - the opportunity for a effective and open standard was not only thrown away, it was thrown away for nothing. Thus ended the first age of Unix, many (including myself) believing that this was quite possibly The End since its community of developers, while highly capable tacticians, had proved to be abominable strategists and seemed to be winning battles in order to lose wars with depressing frequency.
Wind the clock forward to today, almost a decade later, and we find many of those things happening again and for exactly the same reasons. Don't get me wrong - it is a perfectly natural human desire to form clans and proudly wear the clan colors on Robert the Bruce Day, or whatever, diversity and competition being good things which encourage innovation and inspire people to greater heights of productivity. When you add Rampaging Egos to the mix, however, things get messy very quickly as the various clans decide that they want to be *the* clan, the only ones in line when the awards for best clan colors or most unique sporran are being handed out. Before long, rival clans are firing flaming arrows at one another and launching raids into eachother's camps, generally making life difficult all around for a lot of folks who would really rather just get on with the business of living.
So it is somewhat today in the world of free software. Even though any marginally sane person would be appalled at the sight of two organizations like C.A.R.E and the International Red Cross fighting one another for the privilege of feeding starving children in Africa, for some reason the same behavior seems OK if it's just a bunch of people who write free software doing it. I don't mean to equate the process of feeding starving children with that of writing free software, far from it, but they're both "benevolent activities" which one would certainly hope could transcend any rivalries in carrying out their good works.
NIH is also still alive and well, many people choosing to do the same work over (and over) again just because it wasn't someone from *their* clan who wrote it or they have some deep-seated prejudice against anything done by clans who put green before red in their kilts - it's simply ludicrous a lot of the time! More importantly, the larger picture is being lost again, just as the entire Unix world is getting a second chance at life (a privilege which isn't usually afforded to software of this nature - once it dies once, it generally stays dead). The larger picture that people are losing sight of is that we're all truly in this together and, even if we don't explicitly go out of our way to help one another, at the very least we shouldn't be doing our damnedest to kick the crutches out from under one another.
A good example of keeping sight of the larger picture is FreeBSD's attitude towards its Linux emulation. It's not only very important to us that FreeBSD continues to run Linux binaries effectively, it's also what we suggest to those ISVs who are coming back somewhat cautiously to this "new" Unix market and obviously want to maximize their gains while minimizing risk. We tell them to port to Linux and not FreeBSD, even though we'd certainly love to have native binaries for anything and everything, and, by telling them to port to Linux first (or at all), we are giving them the best advice on how to get access to the widest possible segment of the free software market, one which includes but is not limited to us. That is the kind of "what is best for *all* the clans?" thinking I actively try to promote and essentially why I am taking the time out to write this editorial.
After 5 years of intermittent warfare, not just between the Linux/BSD camps but also within the various Linux and *BSD camps themselves (serving only to prove that *any* clan can and will fight another, even when they're all related :-), it's also not going to be one giant hug fest from now on just because people like me stand up and say that everyone really ought to get along - life's not that simple. What we can do, however, is to continue to *strongly* promote any and all ties between the various free software groups and also actively encourage users to familiarize themselves with each and every one of the various types of free software out there, whether they're currently "pledged" to a given cause or not. Not only will this experience help to shatter some of the walls of mistrust and general acrimony between the various clans, but it can also benefit those who are firmly convinced that they wish to stick with a certain one.
Say, for example, that someone fairly prominent in the Linux community popped up and told various users that they might want to give FreeBSD a whirl as well sometime, just to check out what it has to offer lately. Those users would then likely as not came back with a set of things they liked and didn't like about the experience, the things they like serving as rich idea fodder for anyone in the Linux camp wishing to do similar things. Believe me, every time a new release of Linux comes out I do install it on a test box here and check it out - I'm not proud (nor stupid :) and am more than happy to adopt any feature or concept which looks like a good idea if I've got the time to do it.
Finally, various organizations are also recognizing the danger signs again and, thankfully, beginning to do something about them. The USENIX organization, long a standard bearer for all Unix-related evangelical activities, launched the "FREENIX" track at this year's USENIX Annual Technical Conference in New Orleans, a special track devoted to free software of all types. The over 1400 attendees of this conference rated FREENIX as one of the top attractions for them and next year's conference (in Monterey, CA) will feature an even more ambitious FREENIX track (if I have anything to say about it, anyway).
The Call For Papers (CFP) will be going out shortly for this event and ALL of you in the free software world, be you aligned with Linux, GNU, FreeBSD, OpenBSD, NetBSD, Samba or whomever, are more than encouraged to present a paper at this conference or simply show up as attendees. If you want more information on this, simply send me email and I'll be happy to send you a description of the event (which I'm also chairing next year). Events like this provide a very valuable once-a-year opportunity to learn that the other free software folks don't bite (much) and catch up on the details of what they're up to. More importantly, meeting face to face is almost always a much better way of building bridges since potentially sensitive topics can be discussed without someone going ballistic at a mis-parsed phrase or an attempted joke which fell flat, and you'd be amazed at how conflicts which have burned for months can be suddenly and easily resolved with one short 30 minute talk over a cup of coffee.
Above all, whether you can attend events like FREENIX or not (and heck, if it's too far away, why not create your own?), please do your very best to keep an open mind when it comes to ALL the free software out there today and remember that, like the Red Cross, we're all in this together in the service of a very good cause - the last thing we need is dissension and discord to tear us apart and ultimately, (again) lead to our stealing defeat from the jaws of victory.