I've recommended Keith Curtis' book, "After the Software Wars" on the Windows Weekly podcast for a number of reasons. First, the premise is fantastic, and defies the conventional wisdom where Microsoft's lock on the PC desktop can only be disrupted by another powerful international corporation, Apple. Instead, Curtis says that collaborative, open source solutions like Linux are the future, a notion that many in the tech industry increasingly regard as pass?.
Second, and perhaps equally as fantastic, Curtis is a former Microsoft programmer. This makes his assertions all the more incredible. After spending almost a decade at the software giant, he examined the other side and discovered to his astonishment that everything he knew was wrong.
The result, of course, was "After the Software Wars." It's a fascinating read, and a book that all SuperSite for Windows readers should examine. And in a nod to open source ideals, you've even got a choice in how you go about doing so. You can grab the PDF version of his book from Lulu.com for free. Or visit Amazon.com and grab the paper version for just $17.99. (Lulu.com also offers the printed version for $13.99.)
I'll be interviewing Curtis over time and will present this interview in serial form. Here's Part One.
Can you describe yourself and what led you to write the book in the first place? What are you doing now, post-Microsoft?
I joined Microsoft in 1993 because I thought it was the best place to learn about computers, which I have loved since I was in the 4th grade. I liked Apple's Macintosh, but even on that computer, I had spent most of my time using [Microsoft] Word and Excel. Microsoft was the first company to really understand the power of the PC, and had people working on all aspects of software.
I worked there from 1993 to 2004 as a programmer on FoxPro, text engines, on mobile software in a Swedish subsidiary, and the Spot watch. I left because I felt that the amount of learning I was doing had dropped off a lot. I looked around and saw a lot of old codebases and unprofitable ventures, and I wanted to learn about the world of software outside of Microsoft. Terms like ERP were completely foreign to me and my knowledge of computing felt too specialized in some ways.
A few weeks after I left, I downloaded and installed [the Linux distribution] Fedora Core 3. I was scared at the time because I had read countless books about Microsoft technologies, from "Undocumented Windows" to "Inside SQL Server," and I didn't want this little experiment to mess up my computer.
But it amazed me. Not that it was perfect ... far from it. It still is far from perfect, and I wrote an entire chapter on the challenges of Linux, applying what I learned about software at Microsoft, and what I learned from a thorough analysis of free software. In fact, I am one of the few people out there who knows a lot of details about both worlds. (When I go to conferences, for example, being a former Microsoft employee makes me a novelty.)
So while Linux was and is still imperfect, you don't just on accident build an airplane that actually flies. The fact that the install program finished without errors, resized my NTFS partition [non-destructively] (!), set up dual-boot, and actually booted, told me that what I had read and what I had thought about free software was wrong. Wikipedia has also come along in the last several years and serves as another good example [of open source at work].
So I decided to write a book. A book that describes why Linux is superior, what challenges remain, and why free software and better collaboration will lead to a 21st century [technology] renaissance. O'Reilly Publishing (and others) turned my book down because they believe everything about Linux has already been written, but I didn't see a book like this. People have told me that this book has changed their opinion of free software. I also think it is controversial: I criticize Microsoft, Sun, Apple, Google, Intel, Dell, and many others.
I just finished the book a couple of months ago so I'm still tweaking it and making small changes. It is available on Amazon now as well. I'm trying to figure out what is next. I am working with a couple of programmers and we are looking for an Angel investor for an exciting opportunity, but I don't know if any visit winsupersite.com so I won't get into it more here!
I agree with you that while there are numerous Linux books out there, none are anything like yours. And of course, your book is interesting immediately because of your background and because it confronts what I see as widespread assumptions about where the software industry is heading. How do you feel that topics like cloud computing impact this discussion? Does cloud computing render the desktop OS less important and thus help push free software solutions to the client in lieu of expensive and "heavy" proprietary solutions like Windows?
Cloud computing is just a synonym for "the Internet." Hotmail was an early cloud computing application, as was Akamai. BitTorrent is a cloud-based file sharing protocol. My website runs in the cloud in a Xen instance. Everything old is new again.
As a side note, free software is a much better setup for the sort of virtualized computing that Microsoft talks about with Azure. It is a lot easier to virtualize Linux, MySql and Sendmail than Windows, SQL Server, and Exchange, which are big pigs and not as easy to configure and maintain. My entire Xen instance runs well in just 360MB of RAM!
While cloud computing seems to be talked about today in terms of things like databases and office productivity applications, it doesn't remove the need for a rich desktop. No matter who is hosting my mail server, I still need a local computer with at least a kernel, a TCP stack, a GUI and web browser to access it. I also want a media player, Office-type applications, games, programming tools, and so on, all running locally. While the web makes sense for certain types of applications, it is highly limited. If you compare Google Docs even to OpenOffice, it is slow, clumsy, feature-limited, introduces a different authentication mechanism, and doesn't do a good job with printing because the web doesn't do a good job with printing.
It is interesting to see people tackling the problem of building applications with different approaches, but I'd rather see us minimize the use of HTML as it sucks. It is widely used only because no other cross-platform programming language and API took off. If Java succeeded the way it should have, HTML apps like Google Docs wouldn't even exist. The web is amazing because of all the content, but the standards we built the web on stink.
Furthermore, my pedestrian laptop is a dual-core multi-gigahertz processor. Let's put the vast resources in the edge to use! If you want to make an app have live interactions like Google Docs, such that a change made on one machine immediately ripples to others, then you simply create a sync protocol. It is completely unnecessary to re-write the entire app in HTML.
The web has been good for the Mac and Linux because it is cross-platform. Very few ISV are writing Win32 applications anymore, although games are a notable exception. But I expect to see HTML retreat over time even though it is getting incrementally better. I like Gmail, but I would prefer to use it in a rich-client application. However, there is no mail sync protocol capable of providing the richness Gmail needs, and POP and IMAP do not cut it. We need to separate the data and the UI of applications.