There's a bit of an entrepreneur in every programmer. I've always believed this, even to this day.
Remember the fun of programming back in the dawn of microcomputers? Maybe you had a 48K Apple II, or a 64K IBM PC; perhaps it was a TRS-80 or a Commodore 64? The early 1980s: it seemed that anyone with a home computer, an assembler, and an idea could get rich quick. After all, programming wasn't hard-- there were only a few basic concepts to learn--and you were free to roam wild. The computing landscape was young andopportunities abounded.
Of course, those days are now gone. I got my cold slap to the face whenan associate approached me at a corporate picnic in 1993 and remorsed,"You know, programming just isn't as fun as it used to be." I didn't see it at the time, but he was right. In the 1990s, the technology industry had mutated into the cutthroat business world of strong-arm tactics, preemptory product announcements, and prohibitive cross-licensing. As predicted, the land of opportunity had been swallowed up. It was no longer seductive to be a software entrepreneur-- you had to have tremendous coffers of money to develop and market an idea, keep it afloat in an endless sea of patents and other legal sharks, and survive against adversity long enough to gain market share. It was enough to turn even the most determined individual grey with stress.
And yet, something unusual happened along the way. We slowly discovered that, while we may not get rich quick anymore, we still loved to program! It was an incredible challenge and thrill to take a snapshot of an idea that was lurking in our head and code it into a working application.
Then, as if by magic, a distribution channel appeared unlike anything in the corporate world: the Internet. Copies of our software could be used and disseminated by geniuses across the globe in minutes. People could even improve on it if they wanted. Programmers responded enforce. The Free Software Foundation (FSF) and its GNU tools were suddenly everywhere, and radically innovative ideas and products flourished. Over the years that followed, Internet programmers embraced a new axiom: a product's quality was in no way tied to price or marketing, but instead the knowledge-base that backed it.
Suddenly Linux
The icon of this ideology is now the Linux operating system. I was first intrigued by Linux when a friend of mine told me four year earlier: "Linux is the best operating system I've ever worked with." That was quite a compliment, considering he was so well-respected at Motorola. "Keith?" I thought, "Supporting a grass-roots operating system?" There had to be something wrong. "Sure," he quickly argued. "After all, who would you want maintaining your operating system? 40000 Ph.D.'s or 100 overworked grunts?" And so (already fed up enough General Protection Faults over the past two years to make me rip my hair out) I decided to check Linux out. Within a few days, Keith helped me repartition my hard drive and install Linus Torvald's freeware operating system.It didn't take me long to appreciate Linux's incredible flexibility and stability. It wasn't an exaggeration to say that parts of my 486 processor were suddenly being used for the first time. Not many commercial applications existed for Linux at the time, but I still loved it: everything just seemed to work! I was elated... and very relieved. No longer would I have to listen to arrogant Microsoft programmers proclaim, "We're the best!" while their support team hangs up on me after Doublespace corrupts my thesis. (Yep, that really happened!) Linux got the job done. It didn't brag and it didn't gloat; it just worked. And since it was impossible at that time to find anyone who hadn't encountered the dreadful Windows- killing GPF error, the same thought continued to echo through my mind: Isn't this how an operating system is supposed to work?
Since that day in 1994, I've watched (in awe) as Linux expanded from a simple operating system into a powerful network and web server. Today, the OS runs not only the x86 platform, but has been ported by independent programmers to Sparc and PowerPC microprocessors as well. But that's not all--what really addicted me to Linux was when Randy Chapman innocently gave the Linux world something new: a port of version 1.0 of Sun Microsystem's Java Development Kit. And, without warning, my primary development environment switched from Microsoft Windows to Linux.
I don't remember exactly when that occurred, I just remember that I liked it better that way. There was more power, more flexibility in creating projects. I could download powerful tools for free from FTP servers at anytime! It was like owning my own software store.
Caffeine Addiction
Remember when Java first debuted? It took off like wildfire. However, all was not a bed of roses. Early developers recall that the Java programming environment was initially strained, and when it came to developing full-scale applications, Java's problems were obvious. AWT was a weak GUI toolkit, JDK ports were slow and buggy, and licensing the source code in a timely manner was like climbing through a swamp of legal mousetraps. Java on the Linux platform started to disappear.And just when I thought it was over, things began to turn around. With Java 1.1.3, more of Java's promise started to solidify. Steve Bryne resurrected the JDK 1.1 port for Linux, and Duke grew out of his terrible twos. In response to programmer demands we were given the Java Foundation Classes (JFC), an extensive library of tools that blows AWT clean off the map. JavaBeans emerged as the component library of choice. Servlets, database access, and tools for distributed computing began to creep onto the JavaSoft home page.
Wow! Java had finally shed its early skin of animated browser applets, and was readying itself to be a serious alternative for application development. And things started falling into place. We now had a tool to bridge the gap between the Linus Torvald's Linux and Bill Gates' Windows.
Traveling the Road
Some time ago, Sun Microsystems sent out a press-release confirming what we already hoped for: no red-tape for a Linux Java 2.0. Personally, I breathed a huge sigh of relief, as many remember when the Java-Linux porting project almost died in the days of JDK 1.0.2.What's more significant, however, is that there's a growing trend here. Linux is starting to be recognized as something other than a programmer's operating system. In addition to companies such as Informix and Oracle, who are porting their databases to Linux, and Corel's WordPerfect package, Sun showed us that they expect Linux to be a contender in the days ahead. Acknowledging the power and stability of an open-source OS is a noble statement from any corporation, but it's especially noteworthy of Sun considering they nurse a competing operating system: Solaris.
They've also realized that Linux is now positioned as a direct competitor to Microsoft's NT/2000 OS in the low-end server market. As the Halloween Document showed us, Microsoft is worried. They're worried that they could have a serious alternative to their NT server environment. As well they should be. Linux is free, its capabilities are not price-crippled, it's more robust, and most importantly: it can compete with the Microsoft business model. Bugs can be fixed almost immediately (remember the Intel "F0" bug? Yep, 24 hours.) Support is only a newsgroup or FAQ away. And thanks to geniuses across the Internet, it has no place to go but up. How ironic that the biggest threat to Microsoft is the one thing they demand from the government: the right to compete innovatively.
The title of this article comes from a chapter in J.R.R. Tolkien's "The Two Towers." It tells of the wizard Gandalf and his army, preparing for a grueling battle at the enemy stronghold Isengard, only to arrive and find that it's already been leveled by an unexpected foe: an entire forest of seemingly-innocent trees. The parallels are obvious. The Microsoft empire is starting to fall under attack from a seemingly- impossible enemy: a global knowledge-base of computer scientists.
And with Java, applications designed for Windows can transparently move to Linux. And applications designed for Linux can move to Windows. And HP-UX. And Solaris. Developers are about to get a free, robust development suite to create applications that can appeal to everyone, Windows or otherwise. Put it together with a free operating system, and you have the world's cheapest development environment, perfect for all those programmers who don't have endless coffers of cash to break into the software market. Today, Sun released a production version of Java 2.0 (formerly JDK 1.2), which will again test the promise of Java. And from what I've seen so far, it's finally ready for prime time.
And so I will end with two messages. First, to Sun Microsystems: don't stop aiding in ports of Java! With full JDK 2.0 support on HP-UX, Linux, and Solaris, Java is again a formidable force. But you can't stop there. Go to the BeOS, and FreeBSD. Go after the new MacOS, and the embedded world! Continue to simplify the licensing process for the open-source community, as you demonstrated this morning. There are computer scientists across the Internet that would love to help you. Don't ignore them!
And to those programmers who would still be entrepreneurs: make a difference! Write those programs that, as open-source champion Eric Raymond would say, have been "itching in the back of your mind" over the past fifteen years. Let them take flight on the Internet. With the advent of Linux and Java 2.0, another world of opportunity has opened. If you missed it fifteen years ago, you can still write software for millions-- without a million dollars in your pocket. It's not too late.
March with us on the Road to Isengard.


