Readers Journal     weblog/wEssays     home
 

The Economic Significance of Unlimited Derivative Works in the Software Business   (Protagoras, August 20, 2007)


You are all probably reading this on either Windows or MacOS. There is a phenomenon at work in Linux and Open Source which may make the business model of both Microsoft and Apple obsolete and unsustainable in fairly few years. How probable it is that this will happen I am not sure. But that it is possible, I am certain.

The phenomenon is the power of a business model in which there are unlimited derivative works.

Let us begin by considering hard science. Newton famously remarked that if he had seen so far, it was because he had stood on the shoulders of giants. He had, that is, used and incorporated all the mathematical discoveries of scientists of the past.

Consider a scientist working after Newton and Leibnitz. He has available to him calculus. With calculus, he can make calculations and solve problems which before then would have been totally baffling. The methods of calculus were published, they were usable by anyone, anyone could incorporate them into his work, they were in a word 'open source'. If its 1820 and you want to develop a new science of fluid dynamics, you can heave a sigh of relief on one point. You don't have to reininvent calculus first. Its there for you to use. Free of charge.

Science, as practised in the West, allows unlimited derivative works. Unlike the publishing industry, which prohibits it by copyright. Unlike commercial software, which prevents it by EULAs and by not releasing the source code, the material which the programs are actually written in.

Let us think a bit about software.

You decide, let's suppose, that fluid dynamics already exists, or is not enough of a challenge, and instead you want to recreate the much lamented program Hypercard. Hypercard, in case you don't know it, was a programming language that allowed you to create a graphical user interface based application by dragging buttons and other objects onto a screen, and then writing code to make them behave as you want when the user does things with them. Apple, the owner, closed it down some years ago now.

You are sitting at your computer, and you draw up a list of what you need. You quickly sketch out that you'll need a programming language of some sort. You'll need a way of getting buttons and fields onto a user's screen window. You'll need some way of handling files and data and events. Its a lot of stuff, and you'll have to code it all. Could take a while. You feel depressed. In the world of Windows or MacOS, that is where things might stop. This stuff might all exist someplace, but there is no way for you to get your hands on it, use it, and incorporate it into your work. Apple can do it with their stuff. Microsoft can do it with theirs. But its not for you. You'd take a hot bath and a drink and hope you felt better in the morning, and decide to take up carpentry.

However, you are a Linux user and a devotee of Open Source software. You know that all the innumerable programs you have on your computer are licensed under the GPL. You have the right to the source code. You have the right to use and modify this code, as long as you carry on distributing your resulting work under the GPL. You wonder, is there anything on your machine you could maybe use to get started? As you look around at the contents of your hard drive, suddenly, you feel a lot more cheerful. Here, for instance, is what appears to be a full blown 'agile' programming language, called Python, free to use and incorporate. Great, I don't have to write a whole programming language from scratch, I can just use this one. Then, there's a sort of gui creation package. Its called wxPython. Its not quite what you had in mind, but you could use quite a bit of it. Then, there is quite a nice programming editor over here that you could take and adapt.

All of a sudden, its looking a lot more doable. Quite a short time later, you have ProtagorasCard 0.1. Its not Hypercard, but its interesting. You post it someplace, and ask whether anyone else wants to help. A couple of months later, you have a team, someone is writing documentation (using some tools they too found on their hard drive), there is a forum, people are downloading it, using it, answering each others questions, complaining about it, telling you that Python was the wrong language to choose, demanding that you look at various other interesting things, merge with various other projects - and contributing code. They too have the right to your source, and they want it. You find that the Python and wx guys are interested and ready to help. It takes off.

It is a derivative work. It derives from and incorporates Python and wxPython. Just as wxPython itself resulted from welding together Python and wxWidgets.

Now, you may say, Protagoras, you hardly did anything. All you did was merge some stuff that others had done with a bit of your own. Yes, I stood on the shoulders of giants. But this is the point.

I could do it under the GPL. I couldn't do it with the Microsoft or Apple Eulas.

The above was fiction to illustrate the point for people who may not be used to thinking much about these things. But there actually is a real and interesting package called PythonCard, which is inspired by Hypercard, and does use Python and wxPython, and there is also a very interesting package called MurgaLua, which has resulted from welding together the language Lua with Fltk (the Fast Light Toolkit). One (admittedly very talented) guy did the first version, and produced with great speed a new rapid development programming environment in a fraction of the time it would have taken him to do the same thing in a closed source world. He (Murga)is most talented. But he too is standing on the shoulders of giants.

Perhaps still more thought provoking, there are several different CD/DVD burning programs which you'll find on your Linux installation, which differ quite a lot in terms of interface, but which use the same libraries to actually burn the CDs. There may be several different database packages, all of which use similar sets of common elements, like Sqlite, as engines. They too are derivative works. Think how you feel about this if you are Nero, the standard Windows burner, and you'd like to introduce a version of it for Linux. You feel a little sick. It looks like these guys already have two or three different versions of a CD burner, all of which are freely available to anyone wanting them. But what is worse, they can write more free ones at the drop of a hat by using libraries which you cannot use. Why cannot you use them? Because if you incorporate these libraries, under the terms of the GPL, your whole package becomes GPL. Your business model is blown up either way.

Perhaps even more thought provoking as an example is the case of Xorg and Xfree86. Xfree86 was the package which Linux once used to manage its displays. There was widespread dissatisfaction with the team and their progress. One day, a bunch of guys who had, like everyone else on the planet, access to the source code, and the right to use it under the GPL, 'forked' it. They took their code, incorporated it into a new package called Xorg, and released it. A matter of months later, Xfree86 was, as the Marxists say, lying on the rubbish dump of history. Now any Linux distribution you install will come with Xorg as a matter of course. Life can be nasty, brutal and short, and very different, in a world in which anyone can do what they like with the source code. Apple, for instance, retired Hypercard, stopped selling it, and didn't update it to run on OSX. You didn't like that, tough.

No-one can retire PythonCard or MurgaLua or Xfree86. The most they can do is stop working on it. They can't stop anyone else from working on it.

It took a while for these implications of the GPL to sink in, up in Redmond, but when finally they did, it led various Microsoft luminaries publicly to opine that Linux was (a) communist and (b) cancerous, by which one imagines they meant that they did not much like it. It is these provisions that establish Richard Stallman, their inventor, as one of the great social and economic innovators of our time. Though, how generally successful his invention will be is still an open question.

We can now see why Linux (and Open Source generally) is such a large potential threat to the established order in software and computing. It is because it offers the possibility of unlimited derivative works, and these works can be developed faster and cheaper than in environments in which copyright and intellectual property rights are used to prevent you from making derivative works.

And so it comes about that any mainstream Linux distribution will come with several web browsers, a couple of email clients, two CD burners, lots of editors, a couple of graphics packages, a couple of Office packages, two or three desktop publishing/web authoring packages, several development environments....and so on. This is also how it comes about that there are several hundred different Linux distributions, or packaged versions. Anyone can try his hand at it, and many do, and the best ones are recognized, recommended, publicized and get taken up. In this way Mandriva sprang from Red Hat, and PCLinux from Mandriva. Ubuntu sprang from Debian.

Debian, one of the 'big three or four' distributions has around 20,000 packages available for free download from its repository. How many of these would exist if not for the possibility of unlimted derivate works? Far fewer.

Now, lets pause for a while, and think about some odd side effects of this, because in one way it is very powerful, but in another way it is not without problems, and these problems make the commercial impact of the GPL problematic. The main effect is to make Linux very different from MacOS and Windows, in ways that newcomers in the past found very puzzling.

Take this question of repositories and packages and package managers. You can see clearly now that there is a potential problem. We have all developed and released our software. It all used lots of different other bits of software. How do we make sure that everything we need is installed? The answer is to have a package manager which manages software installs. I invoke one of these (there are two standard kinds, for apt- based distributions, and for rpm based distributions) and I tell it I want ProtagorasCard. Aha, it says, you are also going to need Python and wxPython to 'satisfy dependencies'. Would you like these two, as I see you don't have them, or not the right versions? You agree, and down it all comes, and the bits get distributed around your system.

Where exactly do they get distributed? This is a key difference. In Windows, we are used to thinking of there being a place 'where the software is installed'. We all know where it is, its on drive C in Programs. Not so in Linux. There is really no such place. This is why in Linux you have, not installers, but package managers. It can get complex and hard to manage, and in the past the effort to make sure you always got the libraries and components every package needed (and not ones that conflicted with others you already had) led to something called 'dependency hell', where you tried to install A to get B to get C, only to be told that you needed C first... This does not happen any more. At least, not with any packages any ordinary reader will ever want. But you can see the issue. And it can still happen to the naive user, that after installing an application, if an icon doesn't find its way properly into his start menu, that he is at a loss to figure out how to start it up. Where is it, anyway? Choose 'run' from the start menu and try typing in its name. Its not quite what you wanted to hear, is it?

So it is not like Windows or OSX, and bits of it can be hard to grasp at first. This does limit takeup. But you can see that the model is one which makes it easier and easier to develope sophisticated packages of the kind that in the past only huge corporations with enormous programming staff numbers could develop, and which they could then sell for a huge profit, confident in the knowledge that their competitors would have to start from scratch to reproduce that functionality.

This is decreasingly true. It is increasingly possible for groups with modest resources to release very highly featured software of great complexity in fairly short timescales, because they have so much preexisting work they can draw on. And the more that gets written and put into the public domain under the GPL, the easier it gets.

This is the threat, how serious and how imminent it is hard to assess, to the traditional model. The threat is inherent in the Open Source model that the traditional way of developing, licensing and publishing software will come to be unable to compete in speed, cost or functionality. The threat is that buyers will gradually come to see this, and vote with their pocket books.

Will it happen?

Well, every year for the past several has been hailed as 'the year of Linux on the desktop', and it has not happened yet. This year Dell and Lenovo started to sell computers with Linux preinstalled. This year too we have distribution versions that now have more nearly reached the goal of looking and working to the end user more or less like Windows and OSX. In fact, increasingly, if you don't look too hard at the nuts and bolts, and if you are on one of the big standard Linux distributions, you may see little or no material differences.

It is too early to say if Dell and Lenovo's intitiative is the start of something big. What is for sure is that this is what the economic and business issue is, at the heart of the Linux question. Its not about colors, desktop widgets, OpenOffice versus MS Office. Its not about support, hackers, nerds or any of that stuff. Its about whether the economic model that Stallman invented, and that Torvalds implemented in the market, is going to predominate by having greater fitness than the alternative.

If it does, the cash mountains of Apple and Microsoft will not save them. And Apple's diversification into the consumer goods business will come to seem, if they bring it off in the longer term, one of the most far sighted strategic steps in corporate history. They will have reduced dependency on the computer part of their business in the nick of time.

So when you think about that Microsoft stock in your portfolio, or in your pension fund's portfolio, and you wonder why it hasn't done as much in the last few years as you had expected, ask yourself: could this be anything to do with a future in which its profits are affected by unlimited derivative works? And if it seems an absurd idea that something so rarified could ever affect those great corporate giants, just consider what the senior management of IBM said when they were finally first shown an early personal computer. 'Oh', one of them is alleged finally to have said. 'Oh, now I understand this. Its just local computing, that's all it is...'

Local computing. What a silly thing to make such a fuss about. What importance could that possibly have for the global data processing empire of the giant IBM?


For more on a wide array of other topics, please visit the oftwominds.com weblog.

                                                           


HTML, format and art copyright © 2007 Charles Hugh Smith, copyright to text and all other content in the above work is held by the author of the essay as of the publication date listed above. All rights reserved in all media.

The views of the contributor authors are their own, and do not reflect the views of Charles Hugh Smith. All errors and errors of omission in the above essay are the sole responsibility of the essay's author.

The writer(s) would be honored if you linked this Readers Journal essay to your site, or printed a copy for your own use.


                                                           


 
  Readers Journal     weblog/wEssays     home