April 19th, 2009 | Published in Core theory - provisional
Sometimes a book comes along at a critical moment that helps us make sense of what is happening.
Keith Curtis’s After the Software Wars is self published. It is available from Lulu in paper for $13.95 or a downloadable PDF for free. Notice the recent revision date on the cover. The moment you decouple the familiar book from the printing press it changes. It becomes more fluid and the gatekeeper role of publishers is eroded. Keith Curtis is aware his book would be different if it had gone through the conventional editing and publishing process, but because he understands the rules of the post industrial world of computers he has taken full advantage of the new media environment. Just as thousands of bloggers do every day.
Economic crises stress everything: people, institutions, accepted ways of doing things – even the categories we use to label and think about our world. In such times it is useful to scan the situation for what philosopher Robert Pirsig called a platypus – something that doesn’t fit. As Pirsig tells the story when scientists were classifying animals they defined reptiles as those that laid eggs and mammals as those that fed their young with milk. It was simple and it worked, until it was discovered that all along the platypus had been reproducing by laying eggs and feeding it young with milk. The scientists solved the problem with a kludge – they just made a separate category for the platypus and a few other similar animals. That is what most of us do when we encounter something that doesn’t fit – we just put it in the too hard basket.
Right now I think we are seeing an economic crisis accelerate the transition from the industrial age to a post industrial age that will in part operate by different rules and assumptions. Hard times force us to take many things out of the too hard basket and reconsider them. The existence of free software is one of them. It is a platypus of the first order that has been dismissed as an interesting side issue for too long. According to the industrial model it should not exist. There is no parallel market in automobiles or graphic cards or even cornflakes where you can go get a free one any time you like. Linux or Open Office or hundreds of other viable free software programs could not exist if they were simply industrial products. After the Software Wars goes directly at trying to understand the problem. Keith Curtis argues that software is a form of science and that it works best when it is allowed to operate in an open environment like the free exchange of ideas in a university setting.
After the Software Wars is hard to put down because it makes a passionate and compelling case for free software and upsets our industrial age assumptions with new understanding. Many, including myself, would point out that the the demise of proprietary software is not a done deal and would argue that software, like any good platypus, is a combination of freely exchanged science and proprietary applied science. But Curtis’s argument is based in experience and like a good lawyer arguing one side of a case he forces us to consider the merit of his argument. After eleven years inside Microsoft he convincingly peels back the layers of the software development process so that we can see the strengths of free software (and the weaknesses of proprietary software) more clearly. This illustration of the over complexity of propriety code sums up his position eloquently:
During his time at Microsoft Curtis saw Windows struggle with the expensive limitations of the closed industrial model while its free rival – Linux – consistently improved relative to Windows to the point where he is now quite happy to use only Linux. (I have used it as my main operating system for over a year and agree it compares favorable to Windows in most ways). The book is timely because it asks us to take seriously a clearly less expensive and arguably better approach to software development at a time when economic stress makers it particularly relevant to do so.
The Linux phenomena tells us that the assumptions of the industrial age don’t work for software, but it doesn’t tell us where the open model is most important or essential to progress. Linux may or may not go on to ‘world domination’ as Curtis puts it – Microsoft is making a serious comeback just now with Windows 7 and remains dominant with over 90% of the world’s desktops despite shooting itself in the foot with Vista. However, it is in the second half of After the Software Wars when Curtis turns his attention to programming languages, that he shows us where the proprietary model may well be holding us back in a more fundamental and critical way. He makes the case that the dominant C and C++ programming languages are obsolete and worse – disastrously inefficient. For example, he explains how they suffer from serious limitations such as failure to clean up memory after use (programmers call it garbage collection) which in turn is a major source of bugs requiring endless further work. However, in terms of the free versus propriety dilemma I think his most telling argument is his account of how Sun and Microsoft fought to control Java and ruined its chances of becoming a more efficient replacement for the older languages. The implication is clear – developing an up to date, open source, programming language may be more urgent and necessary than the adoption of Linux.
More broadly as an observer of the interaction of society and technology in the McLuhan tradition I see the free software platypus as indicating a change in how we divide what is held in common and what is proprietary. Just as the movable type contained a core idea of the industrial revolution – interchangeable parts - I think that free software will compel a new understanding of what divides common from private property.
I heard from Keith Curtis very quickly after making this post (Ok so I emailed him) and here are his additions and corrections:
A quick clarification, in the latest version on lulu.com, I now propose that perhaps Python should take over. It has some challenges, but it has a nice worldwide community of programmers working on many aspects of software, like this amazing list: http://www.scipy.org/Topical_Software. In other words, the replacement for Java already exists, but more need to know about it. In fact, Python is so under the radar that I didn’t really understand it until after I finished my book which is why I’ve only recently made changes to remove my Java++ section.
Also, C is not a proprietary language but it is holding us back. In essence it is a big side note. But a very important one. And my argument is this: we need GC [GC= Garbage Collection ed] for reliability, but we want GC for maintainability. Programmers using C are cavemen, fashioning their world with stone tools. I love that line
I was aware that C++ came free with Linux distros, but wasn’t sure if actual programming operations like Microsoft’s were using a non proprietary language. I had heard about Python mostly from Eric Raymond’s account of his discovery of it as more powerful than Pearl in 2000. What I didn’t know – again because I lack first hand programming experience – is the great news that Python has grown to the point where it is a possible successor to both C++ and Java. Here is Keith’s comment:
I read that. [Raymond's Python article ed.] My issue with his article (comparing to Perl) is that there are many good programming languages, Python, C#, Ruby, etc. At some point, languages become good enough, and the need for a complete set of libraries becomes important, and I think Python has reached critical mass. Like with English, I’m sure we could tweak the shape of the letters to make it “better” to make it for example easier to distinguish the letters, or remove some unnecessary ones, but it doesn’t matter anymore. I feel the same way with programming languages now.
However, for me the biggest point Keith Curtis made was that I got it right that maybe free programming languages are even more important that free operating systems. I really went out on a limb with that idea based on the general notion derived from Marshall McLuhan that when technologies change the social structures and rules about how we get things done change. Keth writes:
BTW, while reading your review again, I just noticed your comment that a free programming language is more important than the Linux kernel and I think that is true! It is a big idea I hadn’t considered and I will put it into a future revision of the book. I’m working on one now.
I added this point to the latest edition of my book. (Right now it is only on my computer, but I will upload it to lulu and amazon in some days.)
Which, if nothing else, shows how the Internet enhances the exchange of ideas and speeds it up too. Personally it confirms my sense of excitement at the possible connection between hard core technology concerns and McLuhan’s literary and social thinking. Which raises a question for another post: How do we find good self published material on the Internet? NYU media professor Clay Shirky touches on the problem of how we filter for quality on the Internet in the absence of editors and publishers, the traditional gatekeepers, in this video from the WEB 2.0 conference. Fair warning, it is 23 minutes long.