Something I read on LinuxToday on Monday made me realize something. The article was a tutorial on writing Gnome apps with Python. Not too exciting, right? Not until you realize the implications. Python is a high-level, interpreted language. Gnome produces good, professional-looking applications with Windows-like functionality like toolbars and menus and drag-and-drop.
Put two and two together. Remember the early days of computing, when practically everyone who owned one knew how to program, at least a little bit? We’d program our 8-bit microcomputers in Basic, and sometimes we’d come up with something cool. You might send your creation off to a magazine in hopes of them publishing it and sending you a little money — a friend growing up and I netted a cool $350 on a little hack we wrote over spring break one year. Other times you just uploaded your creation to a BBS, hoping that people would find it useful, and maybe someone would download it and improve it a little. IBM was big and unstoppable, and Apple made the wise decision to flood the schools with cheap hardware in hopes of making it up by selling overpriced hardware to homes and businesses (which they did), but the homebrew market kept Commodore afloat for 10 years after their last good marketing decision. The cost of entry was low, and an easy-to-learn programming language was built right in, so creative minds could start playing with it without spending hundreds or thousands of dollars on development tools and thousands of dollars going to class.
The results weren’t always professional, but a surprising amount of it was exceptionally high-quality. High enough to sell more machines. Today, some 20 years after the Commodore 64 was released, it still has a following. It’s insane.
I still think that was part of what killed the Amiga. There were free languages for it, but you had to fork over a few hundred bucks for the toolkit to make them work. A lot of people did, but not enough. The development community was small. Some of the best stuff I saw on that platform came from people who pirated the toolkit. But not enough people did, so the pool of people to learn and steal tricks from was tiny. Meanwhile, Microsoft was selling complete languages, with everything you needed, for less than Commodore was charging for its header files. The Amiga never stood a chance.
Linux and other open-source projects collectively give you a free operating system or five, but they also give hundreds of development tools. The end result is Web sites like Freshmeat that do nothing but track new software. There may be more graphical Linux freeware out there now than there is Windows freeware. Considering Linux has maybe 1/50 the installed base of Windows, that’s pretty impressive. Linux doesn’t have a killer app just yet, but it may come. It’s definitely not short of ideas. Just this past week, someone released a hack for the Nautilus file manager to make it read binary newsgroups. It reads them and is intelligent enough to group related binaries in subdirectories for you. It’s a file collector’s delight. Brilliant idea. I’ve never seen anything like that for any other OS, especially not Windows.
Free languages lower the bar. Free and capable high-level languages lower the bar even more. Even a non-programmer like me can have an idea, hack out something in Python, and even if it doesn’t work perfectly, it can serve as a springboard for someone else to grab and improve, either by revising the existing code or by translating it into a lower-level, faster language. The quality of the code isn’t nearly as important as the quality of the idea. And we all know programmers don’t have a monopoly on good ideas.
Maybe Linux will remain an underground, punk OS forever. But even if it does, it’s going to be an unbelievably good one. Look for it to be bigger than the Mac within two years.