Thursday, September 24, 2015

Quote of the day...

Quote of the day...  Professor Eben Moglen, of Columbia University's law school:
Proprietary software is an unsafe building material. You can’t inspect it.
Mr. Moglen is a proponent of open source software, and the argument he so eloquently makes is that the secret nature of proprietary software makes it impossible for either individuals or government agencies to inspect it.

I'm also a proponent of open source software, but I don't think that Mr. Moglen's argument is entirely supportable, nor is it as simple as he makes it out to be.

Consider, for example, his assertion that “you can’t inspect” proprietary software.  That's clearly not true – a government inspection agency (merely writing that sends shivers down my spine!) could be given access to proprietary code by appropriate legislation.  I think that would be a disastrous addition of friction to the software development process, and I am not proposing that.  I'm merely pointing out a flaw in Mr. Moglen's argument.  Slightly more subtly, it's already true today that if someone files suit against a company alleging that their software caused injury or damage, the plaintiffs will be able to get at the source code through the legal discovery process (that happened in the infamous Toyota acceleration case, for example).  I'm not sure that's any better than the government agency approach, but it again belies Mr. Moglen's assertion (even if it is an after-the-fact inspection).  But if his argument is really that it would be better, from some cosmic perspective, to have the source code available to one and all for safety and reliability inspections, well then I completely agree.  In fact, that's one of the big reasons why I'm a proponent of open source software in the first place.

But there's another element that Mr. Moglen basically ignores, and that is the protection of the proprietary software developer's economic interest in that software that was developed.  Modern software is often so complex that reverse-engineering it is prohibitively expensive.  The firmware in an automobile is a great example of this – the object code (the stuff the computer itself understands, the result of compiling the source code) may be dozens or even hundreds of megabytes in size.  Reverse-engineering a chunk of code that big would cost millions of dollars and take years.  The source code is therefore a valuable economic asset to the manufacturer.  It is not shipped with every car, and competitors have no legal way to steal it.  Open source software, however, is by its very nature “open” – anyone at all, including one's competitors, and freely look at it.  If a car manufacturer were to develop key algorithms that made its cars run better, then making those algorithms available to its competitors – for free – is not a particularly smart business move.  It would be like a restaurant famous for its unique dishes giving away the recipes for them to all the other restaurants.  Not going to happen.

I don't have any magical answers here.  It's a genuinely tough problem, balancing the considerations of safety, reliability, and the very real economic interest of the manufacturers.  If we were to simply legislate that all manufacturers using software or firmware had to make that open source, it's hard to imagine the manufacturers would continue investing the millions of dollars they currently spend every year to develop the wonderful new features we all love.  Would Apple have developed iTunes if they then had to give the code to their competitors?  I think not!  Would a car manufacturer invest in firmware that gave its engines better fuel efficiency if they then had to give it to their competitors?  Why on earth would they?  There's no gain to them.

Hard questions, and nobody has perfect answers for them.  Those perfect answers probably don't exist...

No comments:

Post a Comment