By Joe Barr Originally published in August, 1998 paradigm shift 1. a profound and irreversible change to a different model of behavior or perception. 2. an epiphany with staying power. 3. a sea change of such magnitude that it alters the course of all who pass through it. Paradigm shifts. Thinking back over my years in the industry, there haven't been that many. Especially when you consider the thousands of times the term has been used. The move of the center from the glass house to the desktop certainly qualifies. Likewise the rethinking of systems analysis and design, from the physical to the logical, was echoed by structured programming. But programming was to be swept by a second, perhaps even more fundamental change in perspective as we moved from procedural languages to object oriented. And to put it in everyday terms, there is a whole new mindset today when you connect to the internet than there was when you reached out to touch a BBS. There have been plenty of impostors: bubble memory, the death of mainframes, quality management, cold fusion, new Coke and "push content" on the web. It's often impossible to tell the difference between la buzz de jour and the first stirrings of a new-born, honest to baud, as real as the day is long, paradigm shift. The incubation period can last for years. Eventually, though, a thing either emerges and changes everything or it quietly fades away. Only then can you know for sure. I believe we are at the edge of the largest paradigm shift in the history of the industry. This one will smash the current model beyond recognition. Our children and our children's children will look back at the first age, the first 30 years of personal computing, and see it for the barbaric, archaic, self inhibiting, self impeding dinosaur that it is. A paradigm shift does not mean one thing is simply replaced by another. A new force field appears, draws attention to itself, and may coexist with, perhaps even languish alongside for some period of time, the model that it will replace. There may even be a longer period of time during which the original gradually fades away. The shift occurs, quite simply, when you wake up one day and find yourself seeing things in a new way, from a new perspective. The glass house and the personal computer? That one has been underway for many years. Microsoft has eclipsed IBM as the largest seller of software in the quarter just ended. The shift, by definition, never occurs in isolation. There must be related spheres, energizing pulses, co-dependent orbs circling the prime. It is when the catalyst works its magic that you are transported. Suddenly you are "there." Object oriented programming has been around for quite awhile now. I remember in the early 80's my brother asking if I had taken a look at Smalltalk yet. He seemed quite taken with the language and what it was about. I toyed with the turtle and got some inkling of objects and inheritance, but I really couldn't see that much would ever happen in the real world with Alan Kay's brainchild. Years later C++ would begin to move into the mainstream. Not replacing Cobol and C but just establishing its own place in the landscape. OO methodologies began to abound as more and more people crossed the line. But the big push hadn't even happened yet, Oak hadn't even dropped the acorn that became Java. Today, with the wildfire popularity of Java among developers, with its entry into the enterprise not only assured but an established fact, with its continued maturing and fleshing out, it is Java that is carrying the banner of object oriented programing to the dwindling herd of procedural programmers. Of course, in the time between Kay's conceptualization of objects, GUIs and cut-and-paste, and where we are today, it has not always been clear that this was the kind of stuff that would have profound, far-reaching impact on the way we look at software and design, the way we look at the tasks to be done and how we plan to do them. To many of the brightest and the best, at least to many outside of the Learning Research Group at Xerox Palo Alto Research Center during the 70's and 80's, bubble memory was much more likely to be the next big thing. And so it is with some trepidation that I hereby formally and officially predict that we are today awash in the first tides of a sea change that will once again change everything. But keep in mind, my dweebs, that my track record as a Karmac for Computing is something less than perfect. It was in the fall of 1978 that I told Sam Skaggs, then president of Skaggs-Albertsons superstores, the first marriage of drug and grocery emporiums, that scanning technology would never work in a grocery store. And in 1994 I predicted OS/2 would win the desktop from Windows. So don't bet the digital dirtfarm on this just yet. Your narrator is guessing, just as every other pundit who looks out past the breakers for first signs of the swell that will become the next big wave. My hunch is this: free/open source software will emerge as the only sensible choice. Feel the tremors in the Northwest? This one could be killer. There has been much debate over which term ("free software" or "open source") is the best choice, the most descriptive, and the truest to its philosophical roots. I am not going to go there. I will compromise by using both terms interchangeably. But please note that the word free in "free software" applies to a state of being, not to its price. It is about freedom. Also note that the hottest software product in the world today, Linux, qualifies as free software under this definition, whether you download it for free from the internet or pay anywhere from $1.99 to $99.99 for specific distributions. Linux is the only non-Windows operating system in the world that is gaining market share. How hot is it? It's almost impossible these days to keep up with articles in the press about Linux. A mailing list dedicated to Linux News recently had to split into three separate lists in order to handle the load. Linus Torvalds, its creator, is on the cover of the August issue of Forbes. Every major computer trade publication is showering it with attention. Oracle, Ingres, and Informix have just announced they will be porting their database products to Linux. Caldera has just announced (and has available for free download today) a Netware server for Linux. And that's just the news from the past two weeks. Linux has cache, bebe. The roots of Linux-mania began in the early 80's when Richard Stallman founded the GNU Project. Stallman had worked at MIT during the 70's and witnessed the destructive (in terms of group productivity and effort) nature of restrictive licensing of proprietary software. He wanted to create a free, modern operating system that could be used by everyone. In the GNU Manifesto (1983), he explained why he must write GNU: I consider that the golden rule requires that if I like a program I must share it with other people who like it. Software sellers want to divide the users and conquer them, making each user agree not to share with others. I refuse to break solidarity with other users in this way. I cannot in good conscience sign a nondisclosure agreement or a software license agreement. For years I worked within the Artificial Intelligence Lab to resist such tendencies and other inhospitalities, but eventually they had gone too far: I could not remain in an institution where such things are done for me against my will. So that I can continue to use computers without dishonor, I have decided to put together a sufficient body of free software so that I will be able to get along without any software that is not free. I have resigned from the AI lab to deny MIT any legal excuse to prevent me from giving GNU away. By the time (almost ten years later) Linus Torvalds had a good working Linux kernel available, the GNU project had most of the non-kernel essentials ready. It was a marriage made in free/open source software heaven, and Linus converted the original Linux license to the GPL (GNU's General Public License). After all, it seemed the obvious choice to the young college student who had wanted to create a free version of Unix that everyone could use. Not only is Linus a true code wizard, he is delightfully perfect for his role today as poster boy of the free/open source movement. Every interview, every public appearance, each bit of history about him and Linux unearthed reveals a warm, wise, friendly, candid and particularly unpretentious personality. How else could someone whose views are so diametrically opposed to those of Bill Gates and the money mongers end up on the cover of Forbes? But Linux is not the only success story in the world of free/open source. Netscape rocked the commercial world earlier this year when it announced it would free the source code for its browser and make it available for download to anyone who wanted it. Netscape now claims that the browser has been improved as much over the past couple of months as it would have in 2.5 years in its closed source environment. FreeBSD, a rival for Linux in the UNIX like, free/open source sector, has its own fanatical users and supporters. Just this past week it shattered an existing world record for total bytes transferred from an FTP site in a single day. CRL Network Services, host of the popular Walnut Creek CD-ROM ftp site, announced on July 30th that they had moved over 400 gig of files on July 28, 1998. The previous mark of about 350 gig had been set by Microsoft during the Win95 launch period. Oh, one other thing. The FreeBSD record was set on a single 200Mhz Pentium box. The Microsoft record was set using 10 servers with 40 CPUs. Results like those are probably the driving force behind the emerging model. The performance just blows away what Windows is able to deliver in their closed, sealed, NDA protected, shoot you if you see it source code, proprietary model. Eric S. Raymond, keeper of the tome on internetese called "The Jargon File" and author of the must read essay "The Cathedral and The Bazaar," talks about the success he had with FETCHMAIL using the Bazaar model of development. Lots of eyes on the code: bugs are found more quickly, enhancements made more quickly, design becomes more normalized. But Linus is the candle for the moth. Leo LaPorte had him as a guest on his ZDTV show the night that Win98 was launched. I caught him in chat on the way out and asked him how SMP was looking for the next release. He said it looked very good. It seems he is always this accessible, and that is part of his magic and part of the reason for the success of Linux and shift in thinking about software development. For open software to not only flourish but become the norm, at least for those essential bits, like operating systems, that everyone needs to run, there must be huge successes to attract the rest of the crowd. Linux and FreeBSD are two of those attractions. Linus is the advantage that Linux holds over FreeBSD, not in a technical sense, but in a human sense. To get a sense of what Linus is like, it's interesting to follow his exchange of USENET messages with Andy Tanenbaum, the creator of Minix. Linus began his 386 experience with Minix and began to extend it to create Linux. He and Andy exchanged a series of messages in comp.os.minix over the issues of microkernel architecture, truly free software, and the relative merits of Minix and Linux. It began with a post by Tanenbaum which said in part: MINIX is a microkernel-based system. The file system and memory management are separate processes, running outside the kernel. The I/O drivers are also separate processes (in the kernel, but only because the brain-dead nature of the Intel CPUs makes that difficult to do otherwise). LINUX is a monolithic style system. This is a giant step back into the 1970s. That is like taking an existing, working C program and rewriting it in BASIC. To me, writing a monolithic system in 1991 is a truly poor idea. To which Linus replied: True, linux is monolithic, and I agree that microkernels are nicer. With a less argumentative subject, I'd probably have agreed with most of what you said. From a theoretical (and aesthetical) standpoint linux looses. If the GNU kernel had been ready last spring, I'd not have bothered to even start my project: the fact is that it wasn't and still isn't. Linux wins heavily on points of being available now. >>MINIX is a microkernel-based system. >>LINUX is a monolithic style system. If this was the only criterion for the "goodness" of a kernel, you'd be right. What you don't mention is that minix doesn't do the micro-kernel thing very well, and has problems with real multitasking (in the kernel). If I had made an OS that had problems with a multithreading filesystem, I wouldn't be so fast to condemn others: in fact, I'd do my damndest to make others forget about the fiasco. Notice what is missing from the post? Even though his pet project, the fledgling Linux, has been slapped around pretty hard by the man who created its predecessor, Linus did not fall into the trap of name calling and hysterics that too often goes hand-in-glove with online debate. Notice what is present in the post? Concession of valid points made by Tanenbaum. Factual assertions that represent Linux quite nicely, thank you very much. And even for this well behaved defense, Linus closed with this: "PS. I apologize for sometimes sounding too harsh: minix is nice enough if you have nothing else. Amoeba might be nice if you have 5-10 spare 386's lying around, but I certainly don't. I don't usually get into flames, but I'm touchy when it comes to linux :)" For all his dweebness, Linus is a people person. He is likable. He is brilliant. He is passionate about Linux but not to the point of resorting to bashing its detractors or alternatives to it. Earlier I mentioned an ongoing debate among proponents of the terms "free software" and "open source software." That is really symptomatic of a deeper argument over what type of licensing free/open source software should have. There is the GNU GPL that Linux uses, and there is the BSD model. Listen to Linus the diplomat walk that tightrope (while still making his preference known) in an interview with Linux Focus's Manuel Martinez: I'd like to point out that I don't think that there is anything fundamentally superior in the GPL as compared to the BSD license, for example. But the GPL is what _I_ want to program with, because unlike the BSD license it guarantees that anybody who works on the project in the future will also contribute their changes back to the community. And when I do programming in my free time and for my own enjoyment, I really want to have that kind of protection: knowing that when I improve a program those improvements will continue to be available to me and others in future versions of the program. Other people have other goals, and sometimes the BSD style licenses are better for those goals. I personally tend to prefer the GPL, but that really doesn't mean that the GPL is any way inherently superior - it depends on what you want the license to do.. His views on the Evil Empire? Strong, perhaps, but certainly not inflammatory or angry. In his words, from the same interview: I can certainly understand the "David vs Goliath" setup, but no, I don't personally share it all that much. I can't say that I like MicroSoft: I think they make rather bad operating systems - Windows NT is just more of the same - but while I dislike their operating systems and abhor their tactics in the marketplace I at the same time don't really care all that much about them. I'm simply too content doing what I _want_ to do to really have a very negative attitude towards MicroSoft. They make bad products - so what? I don't need to care, because I happily don't have to use them, and writing my own alternative has been a very gratifying experience in many ways. Not only have I learnt a lot doing it, but I've met thousands of people that I really like while developing Linux - some of them in person, most of them through the internet. Three potentially disasterous discussions on red button issues: Linux versus Minix, the GNU GPL license versus that of BSD, and Linux versus Windows. In each he makes his points politely but with utter candor. One last example. There is finally an official Linux logo. It is the cute, fat and friendly Penguin you often see on Linux sites. There was heated debate among the Linuxites on the choice of the logo. Many wanted something other than a cute, fat penguin. Something more aggressive or sleek, perhaps. Linus calmed these waters at the release of Linux 2.0 by saying: "Some people have told me they don't think a fat penguin really embodies the grace of Linux, which just tells me they have never seen an angry penguin charging at them in excess of 100mph. They'd be a lot more careful about what they say if they had." He is completely believable, obviously passionate about the project, and possessed of a contagious good humor. Linux could have no better leader from a technical point of view, and it couldn't have a better poster boy either. Its success more than anything else is pulling the rest of the world's mindset towards the notion of free/open source software. Nicholas Petreley raised the issue of open source software recently in his forum at InfoWorld Electric. It triggered a huge number of responses about the phenomenum. There may even be an Open Source magazine in the works. I credit my rethinking on this software dynamic to the reading I did there. I believe it is what finally made me realize that a paradigm shift has already occurred. That we are no longer discussing a possibility, but simply what is. The conclusion to the Forbes article behind the Linus cover calls for the Department of Justice to take note of the success of Linux in growing market share and to call of the investigation of Microsoft as unregulated monopoly. While I consider that a lame conclusion, the DOJ should be interested in enforcing antitrust law whether Linux is flourishing or not, I can't help but wonder if there's not some truth to the inspiration for that thinking. That it won't be government intervention or regulation that busts up Microsoft, but a revolution in our thinking about software.