Visit Your Local PBS Station PBS Home PBS Home Programs A-Z TV Schedules Watch Video Donate Shop PBS Search PBS
I, Cringely - The Survival of the Nerdiest with Robert X. Cringely
Search I,Cringely:

The Pulpit
The Pulpit

<< [ No Good Deed Goes Unpunished ]   |  May the Source Be With You  |   [ Refactoring Refactoring ] >>

Weekly Column

May the Source Be With You: Maybe One Key to Strengthening Open Source is Just Differentiating Between Work and Play

Status: [CLOSED]
By Robert X. Cringely
bob@cringely.com

Was it something I said? Last week, I wrote about ways in which Open Source development might be vulnerable to both external subversion by a motivated competitor, and to what I claimed was an inevitable deceleration of software projects into which no money is being poured. But what got me in trouble with so many readers weren’t these ideas, but my use of the word “nobodies,” referring to Open Source software stars in the making. This wasn’t meant to be offensive. It simply represented my belief that until you are “somebody” in any field, you are nobody. I know I was. Some people think I still am.

Semantics aside, this week I proposed to take the other side of the argument — that Open Source is here to stay. And of course it is, in that nobody is trying to make it illegal to give away software. But will Open Source be as big a factor 20 years from now as it is today? It can be, I think, if Open Source remains true to its roots — that is if we can even remember them.

Free software has been around in one form or another as long as there have been computers. Whenever a teacher of computer programming shows his or her students a particular algorithm and one or more ways to implement it, those students are being given free software. Go forth into industry, my children, and reuse this code. Of course, that was in an era when we still believed software couldn’t be patented.

Silly us.

There was even an underlying concept that code ought to be reusable, and once people came up with a couple good ways of doing just about anything in software, well, then it was time to move on, accepting that these techniques were in the public domain. Let’s get on to doing important new work rather then recoding the old stuff. To the mind of an engineer, this just made sense.

Don’t read too much into the birth of these Open Source products. Linus Torvalds couldn’t afford to buy a copy of Unix, so he wrote his own. His motivation wasn’t ideological, it was economic. “I was 21, I knew I was the best programmer in the world, how hard could it be?” he once told me. That’s what a smart-ass would say, not a revolutionary. Okay, maybe a smart-ass revolutionary.

It was Richard Stallman, I believe, who politicized free software by being offended by the idea of having to pay for the stuff. Until then, free and not free lived in harmony together. And it was Microsoft that, by its arrogance and conspicuous commercial success, gave the free software movement a bogeyman against which to rail.

Open Source software will survive because it is useful even if it is parted out. Those hijacked and abandoned Open Source projects I described last week will still be sitting somewhere, the source code available for anyone who needs it. Only the momentum and the easy familiarity of the original programmer will be missing. So in strict terms, Open Source will always be with us.

But it could be so much better. At the risk of annoying my two remaining technical readers, I believe Open Source suffers from a kind of unspoken caste system, with a few projects getting lots of resources and most other projects getting very little. The result is what I think of as three classes of Open Source software — professional, semi-pro, and amateur. I’m not saying this is bad, just that it is the case.

Truly professional software development really needs technical writers, user interface designers, and QA people, but most Open Source projects lack those types of helpers, and therefore, often fall short in the long run. Those projects that DO succeed (Apache, the Linux kernel, et cetera) are those that only need that type of diversity to a very small extent because they generally live on the command line. These applications generally target people who can get by without the product having the best documentation or interface — namely, other developers. I think of these as semi-pro products in that they are robust, but tend to lack external trappings of commercial software.

Having corporate involvement in Open Source projects as I described last week has a much better chance of bringing in the necessary diversity in talent that will help projects succeed. SAP, for example, has joined the Open Source Eclipse project. Eclipse is an open development environment, and it replaces the commercial Java development environment used at SAP until recently. Sun loses a really big customer to Open Source in this case, but I don’t think SAP is doing it to save money, really.

Instead of buying Java licenses, SAP invests its own people and their effort to improve the Eclipse IDE so it matches the company’s needs, something that was much harder to do with a proprietary third-party commercial product. So SAP not only saves money, it gets improvements that it wants without having to justify them to a vendor. And because Eclipse has participants like SAP and IBM, who demand perhaps a higher level of polish on the product, it gets the documentation, usability testing, and other flash that are missing in most other Open Source projects. I think of this corporate-backed Open Source code as professional, not only because the products tend to look better, but simply because there are programmers who are actually being PAID to work on it.

Then there are the amateur projects that are too obscure to attract corporate sponsors, and whose developers are often new to the game. There are many exceptions to this, I know, but a trip through Sourceforge will show you that there is a lot of very obscure work going on out there, God bless ‘em.

Where it is a mistake, I think, is to see these three classes of projects as equals. I’m not saying one is better than another, but I am saying that some are useful to more people than others. Some are products, real products — the kind of useful-to-almost-everyone products that ought to make Steve Ballmer worry. Others are hobby products, larks that are very interesting to their authors and their authors’ friends, mildly interesting to a few hundred other people, and pretty much useless to most of the world. I’m not opposed to these projects in principle, but I think they muddy the Open Source waters a bit.

Maybe it would be better if we could label each type of project, and of course, I have an idea just how to do that.

Look how many Open Source projects have updated versions and the changes read “cleaned up some code." What that really means is the programmer loves his little project, and a few fans have made him love it more, and he just NEEDS to touch it. He can’t keep his hands off the code even when he isn’t adding new features.

"Cleaning up code" is a terrible thing. Redesigning WORKING code into different WORKING code (also known as refactoring) is terrible. The reason is that once you touch WORKING code, it becomes NON-WORKING code, and the changes you make (once you get it working again) will never be known. It is basically a programmer’s ego trip and nothing else. Cleaning up code, which generally does not occur in nature, is a prime example of amateur Open Source software.

But wait, there’s more! How old is the project since its last revision? Look at how many 0.1 version projects there are. These generally aren’t going anywhere, and getting sucked into one (I know, I’ve done it) doesn’t lead to any sense of user satisfaction — unless YOUR ego demands that you fix every product before you use it.

So while some Open Source software is very good, most isn’t. You get what you pay for. I just wish we did a better job of identifying the somebodies from the nobodies.

You see Open Source is like Linux: if you have the time to work on its guts, it will serve you very well. But if you want to get your mom living in the next town up and running today, get her a Mac.

Comments from the Tribe

Status: [CLOSED] read all comments (0)