Open Source and Hot Rods
I was surfing the web the other day and ran into someone linking to this article by Jack Lanier from Edmunds (the automotive newsletter people).
The article's entitled "Friends Don't Let Friends Modify Cars".
From the article:
Today, it's difficult to make cars better and extremely easy to make them worse. Or dangerous.
As a journalist driving modified cars, I've been sprayed with gasoline, boiling coolant, super-heated transmission fluid and nitrous oxide. (The latter was more entertaining than the former.) Several have burst into flames. Throttles have stuck wide open, brake calipers snapped clean off, suspensions ripped from their mounts and seatbelt mounting hardware has dropped into my lap. All this is on top of the expected thrown connecting rod, blown head gasket, exploded clutch, disintegrated turbocharger and broken timing belt.
The vast majority of these vehicles were built by professionals. Many were from big-name tuners. Most performed as if they were constructed in a shop class at a high school with a lax drug policy. Once, after a suspension component fell off a car from a big-name tuner, the car actually handled better.
For every modified and tuner car that performed better than stock, I've driven numerous examples that were slower. If they were quicker, it was often in an area that can't be used on the street. What's the use of gaining 0.2 second in the quarter-mile if the car is slower 0-60 mph? And costs $10,000 more?
[...]
Recently, I autocrossed a pair of Subaru WRXs. One was a dead-stock WRX. The other, a tricked-out STi lowered with stiffer springs, shocks and bars and an exhaust kit and air filter. The STi is supposed to have an advantage of some 70 horsepower. Maybe the exhaust and filter moved the power up in the rev band where it couldn't be used. The lowered, stiffened STi regularly bottomed against its bump stops. When a car hits its bump stops, the spring rate goes to infinity and tire grip drops to near zero. This caused the STi to leap into the worst understeer I've experienced with inflated front tires. Meanwhile, in the unmodified WRX, I could be hard in the throttle at the same point. The result: The dead-stock WRX was at least as quick as the STi and far easier to drive. Easy to make worse, harder to make better
I read this article and was struck by the similarities between this and the open source vs COTS model.
COTS (Commercial Off The Shelf) software is equivalent to a stock automobile. They're built by professional engineers, and tested as a whole. But you don't get to mess with the system.
On the other hand, open source gives you the ability to join the software equivalent of the tuner/modified market - you can tweak the system to your hearts content. You may make it go faster, but you're not totally sure what it's going to do to the overall quality of the system.
In fact, I constantly read that that's one of the huge benefits of open source - on an open source project, if you don't like how something works, you can just step in and fix it, while with COTS you don't have that ability.
Software engineering is software engineering, whether it's open source or closed source. Having the ability to tweak code (or an automobile) doesn't automatically mean that the tweak will be higher quality than what it's replacing. It's entirely possible that it either won't be better, or that the improvement won't really matter. On the IMAP mailing list, I CONSTANTLY see people submitting patches to the U.W. IMAP server proposing tweaks to fix one thing or another (even though it’s the wrong mailing list, the patches still come in). And Mark Crispin shoots them down all the time, because the person making the patch didn’t really understand the system – their patch might have fixed their problem and their configuration, but it either opened up a security hole, or broke some other configuration, etc.
Btw, the same thing holds true for system modifications. Just because you can put a window into a hard disk doesn’t mean that the hard disk is going to work as well afterwards as it did before you took it apart.
Just like in the automotive world, simply because you CAN modify something, it doesn't mean that it's a good idea to modify it.
Comments
Anonymous
March 24, 2005
The comment has been removedAnonymous
March 24, 2005
I think it would have been very hard for people to make win9x any worse.
Ivan.Anonymous
March 24, 2005
To extend that analogy, if cars were closed source software you wouldn't be able to get an oil change without visiting an authorized dealer and forget looking under the hood; you'd be arrested for breaking the law.Anonymous
March 24, 2005
The comment has been removedAnonymous
March 24, 2005
This isn't limited to open source. It frequently happens with commercial software as well. If you don't fully understand the totality of the system you're working on, you can't know every last effect of the change you're making. Saw this at Apple all the time.
In the extreme cases, what happens is this: the original programmers of a large complicated system moves on, and nobody else knows how the system works, at least in detail, and so new changes, even minor ones, cause major regressions, until the new guys figure it out. Typically, there isn't time (because of schedule pressure) for the new guys to learn every last nook and cranny.
I've been on both sides of this; I've had to come in and learn new large complicated systems under time pressure (causing regressions in the progress) and I've had to reject changes from members of my own team on occasion. System software is not as hard as it is sometimes made out to be, but you really have to understand the binary compatibility, performance, and security implications of your changes.Anonymous
March 24, 2005
The comment has been removedAnonymous
March 24, 2005
The comment has been removedAnonymous
March 24, 2005
Having seen some unfortunate results in the comparison of cars and software, I might have been a little more judiciuous in selecting an analogy.Anonymous
March 24, 2005
I think the best Car/SW comparison is this:
Open source, you buy the car, you are entitled to open the hood and see what is going on.
Closed source, you buy car, if you dare open the hood, you are breaking the law!Anonymous
March 24, 2005
How about:
Closed source, if you buy car, if you start looking at the chips that run the timing, you are breaking the law.
Oh wait, if you start looking at the software on the chips that run the car, you ARE breaking the law.Anonymous
March 24, 2005
The comment has been removedAnonymous
March 24, 2005
The thing is, if software was like cars, I'd agree with you.
But it isn't - even in Microsoft, where you spend ages testing and preparing, software (and hardware) is poorly made and poorly designed.
Now, space shuttle software - you'd have a point, and I'm sure a good case could be made for software BEING built like that. When it is, then OSS will not compete unless it is built in a similar way. But at the moment we're still at the stage where the factory bought stuff isn't much better than the modified stuff.Anonymous
March 24, 2005
Larry:
I went back and looked at your source. . . removed from your citation was
"Long ago — when your grandparents were kids and the president was Dwight Eisenhower — it was easy to improve cars. Back then, carmakers designed vehicles largely for production convenience. It's not difficult to improve the handling of a car that had one steering idler arm a little longer than a man's shoe and the other more than the length of his arm: Stiffen the suspension to the point that it doesn't move. Also, in the olden days, cars were so simple virtually anybody could work on them. Replacing the stock two-barrel carburetor (ask your grandfather) with a four-barrel reaped easy power: There were no sensors or computers to confuse, as often happens if you tinker with today's engines."
Hmmmmmm. . . What if one were to consider the relative maturity of the auto industry and the software industry?
and, re: Discovery Channel. . . It strikes me that a lot of not-very-complicated modding/building/rebuilding jobs are of the "We're going to do an eight-week job in three weeks", and watch the participants self destruct. These shows have about the same educational value as Pro Wrestling.
Off the main topic -- I follow this and Raymond's blog with the goal of learning. Mostly I feel like I've been stuck into the cockpit of a Boeing 747 before having soloed in a Cessna. . . but I treat the experience as a big hologram. With each session, with all the excellent input of the blogger and the commenters, more pixels get turned on, and the picture is slowly emerging. Now, THERE's a murky analog :)Anonymous
March 24, 2005
The comment has been removedAnonymous
March 24, 2005
Larry, the Magnuson-Moss Warranty Act says that you cannot have your warranty voided just for installing a 3rd-party part. Also, there is also no law preventing you from merely looking at the software that runs your car.Anonymous
March 24, 2005
<quote>
Oh wait, if you start looking at the software on the chips that run the car, you ARE breaking the law.
</quote>
Not if you do it for compatibility. If you're designing a satellite navigator that has to connect to some chip in the car, you can reverse engineer it. Microsoft itself does that all the time to keep backwards compatibility, just look at how the sims was kept working on new versions of windows...
<quote>
You have no idea :) You have REALLY no idea how much worse Win9x could have been :)
</quote>
oh yes, it could not boot at all :-)
Still a friend of mine says he prefers win98 to xp.
<quote>
Oh wait, you can't go and buy a 3rd party door for your car without voiding the warrenty.
</quote>
BTW I beleive you meant warranty, not warrenty
Ivan.Anonymous
March 24, 2005
Nicholas,
I was unaware of that. I wonder how Ford would feel if someone came in for warranty service on an engine and they found a 3rd party fuel injector on it though.
According to this site: http://www.zo6vette.com/forums/showthread.php?t=74875 the MR Warranty act has no teeth - it doesn't mean you can't have your warranty voided, it just means that you can sue to get the warranty enforced.
This modding site says similar things: http://www.awe-tuning.com/pages/faq/awefaq_main.cfm?FAQ=27
I'm not a lawyer, but I suspect that the automotive companies protect the IP in your car rather furiously.
Andrew: I'd challenge your comment about poorly made and poorly tested.Anonymous
March 24, 2005
Allrighty, how about some mundane part in your car breaks. Say the break light. Easy enough to fix if you are allowed to. With a closed source car you're stuck waiting until somebody gets around to changing your bulb. With an open source car you go switch it out and continue on your way.
We can do silly metaphors all day and you won't convince anyone that closed source is better than open source.
I think the most overlooked value of open source is the learning that can take place from it. If you give a beginning programmer access to good source code they can learn from it and in turn produce even better code; on the shoulders of giants and so forth.Anonymous
March 24, 2005
Kristoffer, good points.
And you're right about the ability to see the source. Jason Matusow (director of shared source at MS) has some related thoughts here:http://blogs.msdn.com/jasonmatusow/archive/2005/03/10/394009.aspx
It's worth reading.Anonymous
March 24, 2005
How many custom cars make it to the mainstream market? Most of the mods mentioned seem to have failed terribly on the first try, so it's unlikely it will be done again.
It's certainly true most patches, like car mods, are poorly designed or implemented or just plain unnecessary. But just like that journalist, the open-source community are the test-drivers who evaluate or try the patch. They report just how bad of an idea it is - or maybe they pick up on a really neat idea or fix.
Hopefully the person who used an undersized bolt on the brake calipers would learn from experience and not repeat his mistake. We can hope for the same in the open-source community.
Is trial-and-error the best way to learn good engineering practices? Perhaps not.
But with closed-source software, that is not even an option.
-James
P.S. Whether software developers are improving their trade is another debate. I have been less than impressed with this industry - and I am in the industry.Anonymous
March 24, 2005
Kristoffer, good points.
And you're right about the ability to see the source. Jason Matusow (director of shared source at MS) has some related thoughts here:http://blogs.msdn.com/jasonmatusow/archive/2005/03/10/394009.aspx
It's worth reading.Anonymous
March 24, 2005
The problem with the analogy is that a lot of open source is built by software professionals, not by some hobbyist users. They do get paid for it (a lot of the time with taxes collected from all of us) and they do create code that's at least on par with COTS software. Also most users do not modify their open source, that's just not sustainable as you would either be stuck with your version or would have to port your changes to every new release but rather they submit their changes/fixes to the original developers to put it in.
And another point in the car/open source software analogy that doesn't hold up - open source software is not modified commercial code. It's code started from scratch. Even projects that od start with commercial code eventually realize that it doesn't work (wink wink). Comparing it to patched up commecrial cars doesn't work.Anonymous
March 24, 2005
Larry,
You're right that Ford may have an argument that your fuel injector damaged the engine. But they'd have a burden to explain why that's the case. And it would certainly be difficult to explain why your new door panels caused the engine to fail.
I'm not sure what that argument about "no teeth" is about. Every law is like that! Laws provide a means of relief not prevention.
Car companies certainly do protect their IP. Looking is not restricted by copyrights, patents, or other common IP protections though. You can sign a contract promising not to look and that would stop you (from above, it wouldn't actually stop you but they could sue for relief if you did look). You can sell your car to whoever you please and they've never signed a contract with the manufacturer. That makes it tougher to restrict what you can do.Anonymous
March 24, 2005
The comment has been removedAnonymous
March 24, 2005
Ivan, that's off-topic. The issue under discussion is solely the ability to tinker and tweak your open source distribution.
Protection from vendor failure is off-topic.Anonymous
March 24, 2005
Yeah, but Larry there's a big difference between wanting to change out the gearbox and wanting to be able to put a new steering wheel on the car. I can't even change the seats easily in Windows. The best I can do is buy aloha print seatcovers and put them over the seats.Anonymous
March 24, 2005
Another problem with closed source is that if the vendor goes bust, in most cases you're f%&*$d up, end of story. With open source, even if all developers find something better to do and abandon the app, you can always hire someone to maintain/improve the app for you, and that may be a very good thing if your business depends on it.
Ivan.Anonymous
March 24, 2005
There was an interesting article that was published a couple of months ago that had a similar theme:
http://www.infoworld.com/article/05/01/14/03OPconnection_1.htmlAnonymous
March 24, 2005
Stuart,
So you're saying that the open source model requires a single gate-keeper to ensure the quality of the product?
What happened to the bazaar if only one person (or one set of persons) decides what gets contributed?Anonymous
March 24, 2005
Your UW IMAP example demonstrates not a weakness of the Open Source model, but a strength.
If 100 bad patches come in and are ignored, nothing is lost for anyone (and the people who wanted the tweak can use it, or not if they come to an understanding of why it's a bad idea). If one good patch comes in and is accepted, something is gained for everyone who uses the software.
The open source software gains one improvement out of 101 submissions.
The closed source software never gets any submissions and never gains anything.
Which is better off? The open source one.Anonymous
March 24, 2005
The project described as "the bazaar" in "The Cathedral and the Bazaar" had all contributions going through a single person...
I think the bazaar model is about transparency of development more than anything else.Anonymous
March 24, 2005
The comment has been removedAnonymous
March 24, 2005
The worst that could happen is that the person who contributed the modification forks off his own, private version of the code, that he can distribute to anyone else interested.
IMHO, that's sometimes better than getting the "wontfix (by design)" stamp for a bug that's really annoying, from everyone's favourite COTS vendor ;)Anonymous
March 24, 2005
Techie life - Phillip Renouf's blog » Open source is like Hotrodding?Anonymous
March 24, 2005
Heh. I was thinking about something similar to this a while ago and I blogged this:
http://www.vbbox.com/blog/2004/09/transmission-tax.html
I've never really liked car analogies but this one quite works.Anonymous
March 24, 2005
The comment has been removedAnonymous
March 24, 2005
Oops. Not trying to hide my identity. Just after I hit "submit" I noticed that I had mistyped "Drew" as something like "Drwe".Anonymous
March 24, 2005
<quote>
The issue under discussion is solely the ability to tinker and tweak your open source distribution.
</quote>
Sure, and that is one of the conditions where the ability to tinker with the source can be very useful.Anonymous
March 24, 2005
Ok Klaus, you did this MUCH better than I could ever have done it.
That was absolutely brilliant.Anonymous
March 24, 2005
I agree cars are a very bad analogy for computers, have you ever googled for "if Microsoft built cars"?
Ivan (Hoping that commenting on the analogy in the post isn't off topic)Anonymous
March 24, 2005
> COTS (Commercial Off The Shelf) software is
> equivalent to a stock automobile. They're
> built by professional engineers,
So is a lot of open source software. Tied on this point.
> and tested as a whole.
Liar. You should have known better than to post something like that after being reminded of stuff like Windows 95's FDISK command. If Microsoft were dogfooding during Windows 95 development, Windows 95 would never have been completed because when people needed to restore backups from external SCSI disks the backups would be unusable. When that kind of bug happens in open source it gets fixed within days if not hours, and you don't see vendors years later still denying the bug's existence.
The most recent benefit I'm experiencing in closed source is from the VB6 compiler. An order from a customer was to modify a program of theirs and we have to deliver the results next Monday. Some preexisting bugs in the program itself we could fix (besides doing the contracted modifications). But how to get calls to DLLs working when we can't fix the executable code that VB6 generates and we can't fix what Access 97's VBA stuff does, I can't imagine. Well luckily it "mostly" works. In Microsoft's vb.bugs newsgroup no one else has confirmed it yet but you know how to do it if you want to talk about how closed source stuff gets tested.
One of your colleagues even admitted privately that most Microsoft products don't get the kind of testing that Microsoft US products get. But the case of Windows 95 FDISK is language-independent and 100% reproducible. The VB6 case happens overall less often in the US version than in Japanese but it's still reproducible.Anonymous
March 24, 2005
Larry,
You're being far too generous to the clowns that are suggesting that changing a globe or oil or even seats and doors is the equivalent to writing a well written patch to an Open Source Project.
Someone with absolutely no background could be taught those basic tasks on a car in a matter of minutes, hours at worst.
OTOH it would take months at best to learn the language, OS and project in enough detail to write even the most basic patchAnonymous
March 24, 2005
The comment has been removedAnonymous
March 24, 2005
The comment has been removedAnonymous
March 24, 2005
With power comes responsibility, my son.
If you're a structural engineer, you're not likely to knock down a load-bearing wall in your own house. But any clown with a sledgehammer can knock down a wall.
Modifying source code is no different. Of course it's easy to do something stupid, but if there's a highly talented software engineer who spots a bug, he can fix it.
But 99% of programmers aren't highly talented software engineers.
So you're 99% right. The ability to modify source code isn't a valid reason for most people to choose OSS, but if they're in that 1%, it's an excellent reason to choose OSS.Anonymous
March 24, 2005
The comment has been removedAnonymous
March 24, 2005
Changing the oil is analogous to hacking the registry.
I've yet to see a car manufacturer who provides full blueprints of their latest model to anyone interested in building their own.Anonymous
March 24, 2005
The comment has been removedAnonymous
March 25, 2005
The comment has been removedAnonymous
March 25, 2005
Klaus,
How exactly does asking a manufacturer to sell a computer before the installation of an OS equal asking a dealership to remove a transmission from a car? No additional work needs to be done to sell a computer without an OS. Assemble, pack, ship. Including a transmission is much more integral to the process of car assembly than installing software is to PC assembly.
It seems like a pretty weak analogy to me... Am I missing something?Anonymous
March 25, 2005
And just because you had better not modify it doesn't mean that no one should be able too.Anonymous
March 25, 2005
The comment has been removedAnonymous
March 25, 2005
It occurs to me that, while the analogy is fine as far as it goes, it's a bit incomplete -- because the way people use software is very different from the way they use cars.
In my own life, I can think of three different categories of how I use software, and the car analogy -- in the form you've given it -- only works for one of them.
First, there's the sort of "daily transportation" software, where the analogy works. My desktop operating system,my programming IDE and compiler, my browser, my email program -- all of these are things that I use every day, and will have significant troubles if they cease working. These, I use off-the-shelf software for (often FOSS off-the-shelf, but still mature software that I'm not modifying), for all the reasons in the analogy: mature, well-engineered software is more reliable, and is (in general) reliably good at what it does -- and the designers' objectives for the software are a reasonably good match for the end users' objectives.
Second, though, there's stuff like the '65 Mustang I used to play with. When I used on that car for basic transportation, I did it knowing that there was a fair chance of getting stranded. That wasn't the point; the point was that it was simply fun, and that I enjoyed working with it and trying to make it better. Similarly, there's software that I use when I'm "playing" with things, where it doesn't really matter if it breaks. (And, unlike with cars, one doesn't have to worry about losing brakes on mountainsides or the like, so there's even less risk involved.) Here, modification is a perfectly valid choice.
Third, there are things like the Corvette over in the vehicle dynamics lab -- software that I'm actually working on for research. That stuff -- be it car or software -- gets modified, because the requirements that we have of it are different from what it was designed for, and are different from what any car/software is designed for. It gets modified by people who know what they're doing, and who are taking proper precautions with regard to the risks involved. And the result is, reliably, something better than off-the-shelf solutions would be, because the off-the-shelf solutions don't fit these needs at all.
The point there being that, while it's really hard to change a car to make it a better car, it is not difficult to make it a better suspension-dynamics test apparatus. And it's not difficult to make it into a better suspension-dynamics test apparatus than anyone currently sells, because nobody sells purpose-built suspension-dynamics test apparatuses.
So, what's the conclusion? First, yes, it's unwise to go mucking about with the internals of something that you depend on for "basic transportation" needs. But -- and this is an important caveat -- there are lots of software uses that aren't "basic transportation"; there are cases where one is simply playing with things for the fun of it, and (in a situation more relevant to the outside world) there are cases where there is an unusual design requirement for which there is no existing mature product, or for which existing mature products are ill-suited because they were designed for something different. And, in the latter cases, modifying the code is a very reasonable thing to do.Anonymous
March 25, 2005
The comment has been removedAnonymous
March 27, 2005
The comment has been removedAnonymous
March 28, 2005
The comment has been removedAnonymous
March 28, 2005
The comment has been removedAnonymous
March 28, 2005
Andrew Shuttlewood:
Seems like you're describing the Ada language there :).
One of the most defensive languages available. Need to have a type with only integeres 34-95 available?
type MyRange is new Integer with range 34...95
(Sorry if I got the syntax wrong, but something like that). It is based on creating a new type/subtype for most of what you need.Anonymous
March 28, 2005
The comment has been removedAnonymous
June 19, 2005
<a href="http://www.cheap-car-online.com/cars_e/2005-car-in-montreal-show.html">2005 car in montreal show</a>: "2005 car in montreal show To People Who Want To 2005 car in montreal show - But Can't Get Started" <a href="http://www.cheap-car-online.com/cars_e/">car directory</a>Anonymous
December 29, 2007
PingBack from http://cars.oneadayvitamin.info/?p=26Anonymous
May 29, 2009
The comment has been removedAnonymous
May 31, 2009
PingBack from http://outdoorceilingfansite.info/story.php?id=23531Anonymous
May 31, 2009
PingBack from http://outdoorceilingfansite.info/story.php?id=5895Anonymous
May 31, 2009
PingBack from http://portablegreenhousesite.info/story.php?id=5714Anonymous
June 01, 2009
PingBack from http://portablegreenhousesite.info/story.php?id=15337Anonymous
June 07, 2009
PingBack from http://greenteafatburner.info/story.php?id=2467Anonymous
June 13, 2009
PingBack from http://homelightingconcept.info/story.php?id=3201Anonymous
June 13, 2009
PingBack from http://thestoragebench.info/story.php?id=4553Anonymous
June 16, 2009
PingBack from http://lowcostcarinsurances.info/story.php?id=31Anonymous
June 17, 2009
PingBack from http://patiosetsite.info/story.php?id=638Anonymous
June 18, 2009
PingBack from http://barstoolsite.info/story.php?id=5371Anonymous
June 19, 2009
PingBack from http://mydebtconsolidator.info/story.php?id=5929