Home
Archives
About us...
Advertising
Contacts
Site Map
 

ruby in steel

 

bitwise technical editor Dermot Hogan has managed and developed global risk management systems for several major international banks and financial institutions.

In last month's Bytegeist, Dermot expressed doubts about open source. This month his doubts have disappeared: he's come to the conclusion that open source is a second rate, derivative dead end...

 

The Worst Things In Life Are Free

I read with some amusement how the Linux community managed to shoot itself in the foot by trying to ‘reverse engineer’ the standard source control system, BitKeeper. The story goes that a certain Andrew Tridgell wanted to write an open source interface into BitKeeper. The CEO, Larry McVoy, of BitKeeper decided that this was a bit too open for his company to bear and pulled the plug on BitKeeper for Linux. The result: much grinding and gnashing of teeth, mostly silence from Mr Tridgell and some not very complementary comments from Mr Torvalds.

Now, apart from the ruckus in the Linux dovecote, what was even more interesting was the interview with Mr McVoy in Forbes Magazine. This really did pour some petrol on the blaze. Essentially (I’m summarizing here), McVoy says that few if any innovative software products have come out of the open source world – they are derivative. And as to the raison-d’ être of open software, the magical source code, McVoy says this: "Open source software is like handing you a doctor's bag and the architectural plans for a hospital and saying, 'Hey dude, if you have a heart attack, here are all the tools you need--and it's free… I'd rather pay someone to take care of me."

This really set me thinking. What good is having the source code for something like Linux? And why is the open-source world so derivative?

For source code, the traditional answer is that if you have a bug, you can fix it. Really? I have to let you into a little secret. If I find a bug in commercial or free software, I might, if I’m feeling generous, email the support group and wait for help. Much more likely, I figure a way round it. What I most emphatically do not do, is wade through hundreds of megabytes of source code, re-compile the kernel and feel pleased with myself for being so smart.

"The source code is useless to me as an individual – if I want something fixed in a hurry, I have to pay for it. I repeat, the source code is useless."

It’s true that there are all these Linux support forums out there who will help you. And I’m sure they do – if the question is of interest to anyone reading. But the thing about support (paid support) is that someone is funded to hack through the uninteresting stuff and get back to you. So what’s the difference between paid Red Hat support and paid Sun support? So long as I get the bug fixed, not a lot. The point is that the source code is useless to me as an individual – if I want something fixed in a hurry, I have to pay for it. I repeat, the source code is useless.

A further point made by the open source enthusiasts (lets call them Linuxites, for brevity) is that you aren’t locked into a particular software vendor. A typical argument I came across is that if your software vendor doesn’t like what you are doing it can walk away, just like McVoy did. I beg to differ here. In most software deals, there are minor details like ‘contracts’ which involve that arcane stuff ‘money’. The consequences of which are, if you walk off the job, you get ‘sued’. I really do wonder sometimes if Linuxites have any contact with commercial realities.

This fixation – paranoia is a better description – with the source code can be counterproductive. Let me give you an example. I was browsing around looking for a real-time operating system (RTOS). In fact, I was looking for one that was small, good and low cost.

Unsurprisingly, there’s a whole load of Linux ones. All of which seem completely indistinguishable at first sight apart from one characteristic: they are huge. The minimum seems to be a 2 to 4MB ROM image.

The first question that comes to mind is what on earth is a RTOS doing in 2 Megabytes? It’s not as if it has to do much more than schedule some interrupts and talk to a TCP/IP stack. 2 Kilobytes ROM is more like the footprint for that minimal set. Now it’s true that if you are doing more than the minimum, then the footprint will grow – and grow substantially. Maybe 4MB is what is needed to do anything these days, and memory isn’t expensive. But what I wanted was a ‘micro-kernel’ approach where you start off small and grow as required. I deeply dislike the ‘kitchen-sink’ approach to software engineering: it’s simply inelegant.

Linux real-time seems to have taken the direction of starting with the available source code – because it’s available – and then trying to make something real-time out of it. Unfortunately, Linux intrinsically isn’t real-time: it was never designed to be so. Still, what’s so wrong with that approach? If I’m not satisfied, the source code is there and I could take it and modify it as required. To my mind, that is exactly the wrong thing to do. To produce a really good anything, you need to start with a design and not an existing solution. But that’s hard. Much harder than taking the Linuxite route of “start with the source code”. A good, free, real-time operating system seems, as far as I can see, to be unavailable. You can have any two of the three: ‘free’, ‘real-time’ and ‘good’ - but not all of them.

My feeling is that, with few exceptions, somebody who is good at software – and I mean really good at software – isn’t going to develop free software. He (or she) is going to become fabulously rich by selling the product of his or her ingenuity. And this brings me to McVoy’s second point “ The open source guys can scrape together enough resources to reverse engineer stuff. That's easy. It's way cheaper to reverse engineer something than to create something new. But if the world goes to 100% open source, innovation goes to zero.” That describes real-time Linux to a tee: it’s derivative and has little innovation.

McVoy’s point is that innovation is expensive. I’d add an additional consideration: to innovate you also need someone exceptional. And exceptional people aren’t going to give away the source code so that some pirate in Uzbekistan can knock out cheap copies.

Sure, open source can be useful. But it’s mostly second rate. And it’s a dead end.

 

September 2005

 


Home | Archives | Contacts

Copyright © 2006 Dark Neon Ltd. :: not to be reproduced without permission