Sunday, 11 March 2007

A GNU Ethics?

An e-mail conversation I had recently:

I'm becoming concerned with the ethics of free and open source software.

> Why is that?

I think the entire aim of the GNU project is a bad idea. Here's my current thinking, you know most of this already, I'm still thinking it through so I want to spell it out:
  • Copyright (not patents) is intended as a means of paying people for thinking. In all fields this is regarded as a necessary thing.
  • By taking out a copyright you create a contract between yourself and your buyers to agree for your buyers not to share your 'secret' (your idea).
  • So if someone else wants your idea they come to you and pay you for it.
  • This allows a 'thinker' to 'unstrap themselves from the wheel' and earn a living in the future for original work done now, without having to work constantly to drum up that business.
  • This motivates smart people to go through some poverty now in the hope of earning a lot of money in the future.
  • This is a good thing for society as a whole, as new ideas get explored.

Up to this point we're all good; now, why GNU are wrong:
  • The underlying aim of GNU is to get rid of copyright on code. Code is an expression of an idea, like the contents of a book.
  • If there is no contract on secrets, then how can you be sure you will make money in the future if there's no reason people won't just give your code away.
  • RMS has thought of this: consulting. Programmers all become consultants, selling their services for now into the indefinite future.
  • However, consultancy doesn't create novel or new ideas, except in the very rare cases of a beneficial patron, but that only works in the art related fields: architecture and the like.
  • There is no longer any way to unstrap yourself from the wheel, and no motivation to spend the time thinking of a novel and new idea.
  • For a demonstration of this, have a look at the world of UNIX and particularly Linux. KDE has been going for nine years, and GNOME for eight years. There still isn't a decent desktop environment out of either, or any hope of one magically appearing, yet Apple was able to slap a attractive and easy to use interface on a variety of UNIX in pretty much the same timeframe (slightly less, actually.)

This is the hole we'll end up in if GNU takes over the world. That won't happen, but it doesn't have to, to cripple the software industry:
  • Currently anyone who releases a software product can only hope for it to become successful and then ripped off by some open source developers somewhere.
  • It is very easy to copy an existing product. It is very hard to add anything unique or original (look at Linux); it is even harder to come up with an original idea in the first place.
  • For an example of this behaviour look at BitMover's BitKeeper. This is a distributed, concurrent source code control system. This is a very hard problem to solve. The company only develops this, and there aren't many sales, as there aren't many places that actually need this level of power. The Linux kernel development does, and the product was generously offered to those developers for free. One of those developers then started working on an open source knock off of the client... In this case I would say there has been bad behaviour on both sides (I disagree with the restraint of trade clause BitMover included in the free version license) and Linus has been chirping in with some bizarre statements…

I'm just concerned that open source development is going to cause software development to completely stagnant by preventing small developers from actually making money off an original idea... Once those small companies have been killed there will be very, very few original ideas emerging.

> What about the cost of software and the fact that companies like us, > for example, are unable to afford the massive startup cost of using MS > or Oracle products?

  1. We don't need the power of Oracle.
  2. We could use MS (Web Edition + SQL Server 2005 Express)
  3. What about all the little companies that could develop and offer cheap and innovative low-end solutions for small companies like us, that have been squeezed out of the market by open source alternatives? Fine, if the OS software was there first, you just have to find a very good way to compete when entering a market like that. But, what about when the open source version is a followup knock off to your very good product?
  4. Arguing that open source should remain as it allows small companies to save money doesn’t really deal with any of the ethical issues.

You could argue that companies will just have to deal with the potential for free knock-offs to come along, and youll just have to accept that and find better ways to compete, by continually making yours better. Just deal, it's a new form of competition, essentially.

And that's true, however, I believe it's worth thinking about the damage this approach is doing to our industry. Just how much innovation is being stifled?

Oh, and people who read this and are actually involved in any of the stuff I'm talking about are probably going to find this pretty incendiary. So, I won't be replying to any comments directly. If there are enough (intelligent) comments, I might do a follow-up post. But, then who am I kidding? No one really reads this anyway...


Sanson said...

Hey hey aquaman long time no see. I agree laregly with the intent of your post in that free / open source may contribute to the stifling of innovative ideas but I believe that real life changing innovations won't be. I am dead set certain that the company that invents and perfects the design of the first commercially viable quantum computing CPU would patent the hell out of it before Intel or AMD could produce their own.

As you have already alluded to, indivduals or companies who come up with completely original designs, techniques, algorithms or methods of doing something can always protect themselves by applying for a patent. The patent period is usually long enough for the patent holder to profit from their invention. Once the patent expires, then its fair game for all to use and implement. I cannot be certain as I am not an IP lawyer, but if a piece of free / open source software happens to duplicate the actions and design of a patent during the patent period, either intentionally or accidentally , the producers of that software are liable.

Unfortunately you are right in regards to Linux and Apple. "You get what what you pay for." The saying goes for all things in life, software, products & services.

If its free, then be thankful that it was for free and appreciate the time and effort of the people who made it so. Afterall we don't live in a utopian world.

aquaman said...

IANAL as well. But, yes, you're right. If someone, anyone, somewhere (as long as it's a country in which you have filed your patent) breaches the patent, they are liable. As long as you can afford the legal fees.

Which brings us too... I was talking about small companies; companies attempting to get started purely based on some innovative and original technology. These kinds of companies can't afford to file a patent. Do you have any idea how much patent lawyers cost?

And secondly, filing a patent requires a detailed description of exactly what the invention is and how it works. And also gives an interested reader a very detailed description of how to solve the same problem without infringing on your patent. Patenting requires everything be dumped in the open. If the technology merely enables you to compete better in some particular market, then you don't want to patent.

This is why high-tech R&D type firms will only patent when sign a partnership agreement - put it off until you absolutely have to.

And finally, many, many things in comp. sci. simply can't be patented. There are no new inventions on a Turing-equivalent machine. Typically, the interesting part is 'better' solution to something existing. This sort of thing can't be patented.

Say, just as a random example, you implement and expert system engine that is really easy to embed in other applications. The important part is actually the API, as from there an expert system engine is easy to implement. You certainly can't patent an expert system engine, and you're in the really unfortunate position of having to publish the full API documentation, for your customers.

If an open source hippie were to get their hands on it they could then easily and mechanically implement an expert system engine as good as yours. Kinda screwed then, aren't you?

Especially as to clients an open source project maybe more trustworthy than some tiny company that could fold at any moment. With open source the code is always there...

None of this applies to companies like Intel, AMD or Apple. But it is the kind of thing that would just obliterate a small company. Oh, and most quantum computing research happens at publicly funded universities, and therefore unpatentable.