Who Cares About Open Source
john posted in technologies on November 9th, 2005
Introduction: What is this Open Source?
( a primer for those outside the software bubble )
OS, Open Source, began as sharing software among Unix users. There was a lack of utilities, the basic shovels and hammers of the software trade, in the Unix operating system, and the spread of Unix into many proprietary flavors made it hard or unprofitable to write them. Since Unix was widely used in the scientific community, where information is commonly shared, it must have seemed natural to write a small piece of software and then share the code so others could build it on their systems.
This remained an arcane feature in the software world, until Linus Torvalds started writing a UNIX-clone operating system which would be called Linux. Skipping over the history, Linux was written and maintained with public source code. (Skip ahead if you already know how compiled code works.) For many kinds of software, especially the software that does the heavy lifting like running your computer, handling your mail, or hosting a website, the application is written in a kind of pseudo-English called code, that is readable by humans and then compiled into a binary file that can be run by a computer. One peculiarity of this system, is that the binary usually can’t be uncompiled into human-readable code. So you can own an application like Microsoft Word and not be able to make changes to it, unless you happen to work for them. A second quirk of compiled code is that it only runs on the type of processor for which it was compiled. So word.exe, which is a Windows application, can run on Windows Intel computers, but not on Mac PowerPC, or Sun Sparc. When Apple announced it would change from PowerPC chips to Intel recently, it meant that many Mac developers will have to re-compile their software, as will Apple itself. If you buy MS Office for the Mac now, it won’t run on the future Intel Macs. (There will be workarounds for this, but they won’t run well.)
In the UNIX world, if you gave away the code for your software everybody could compile it on their operating system and chip and use it. This created a system where software was tested, grew, and improved in an intellectual free market. If it was good and stable and useful, it prospered. If it was useful but buggy, somebody else could step in and fix it. Old programs could be upgraded by the people who used them. Many of these programs are still in daily use years later all over the world on a tower of Babel of different operating systems and chips.
Of course, there is another powerful reason to use OS software: it’s free of charge. When Linux became the dominant free OS operating system (there are others) it spawned a culture of OS software applications, written by and for people who wanted to use Linux and still needed to do word processing, movie editing, web browsing or any of the thousands of uses we find.
Today Linux has matured into a reliable, full-featured operating system that is universally regarded as more secure and more reliable than Windows, and good enough for IBM to run on its mainframes, and Sun on its servers. For instance, most of the Internet runs on Linux, and most of it uses the web server called Apache which is Open Source software. While Linux has been a fine server operating system for several years, it lacked features and more important, applications to compete with Windows and the Macintosh. But I think somewhere around 2004, Linux and OS applications turned the corner for desktop use. There were enough mature applications to fit most needs, and the installation and upgrade process became bearable.
Why does any of this matter to an everyday user?
It’s interesting, I think, for these basic reasons.
And the reason that’s most interesting:
OS software, written by volunteers spread around the Internet, is often better than commercial software.
What about the often-praised superior usability of Apple software?
First, now that Apple is supplying a robust operating system ( based on UNIX) Macs are darn good computers. Second, most agree that Apple still does the best job at designing interfaces, excepting the benighted one-button mouse, and they have finally started supporting developers with good tools ( Cocoa, Applescript). Many OS applications are now ported to the Mac, and they are free to use the same interface standards that Apple promotes. Apple relies on Microsoft and Adobe for its most important applications, and they will be challenged by free software on the Mac, just as they are on Windows.
Wait a minute, you mean I can get Office or Photoshop for free?
No, you can get a good-enough Photoshop equivalent for free, The Gimp. It’s really quite good, equal to Photoshop Lite.
To replace Office, you get OpenOffice, which is not as good as Excel (one of MS best ) but better then Word. It reads and writes Office files.
Do I need to change from Windows to Linux to get free software?
No, most but not all, OS applications are now making versions for Windows, and quite a few for the Mac.
Firefox, the fine browser, is the best known.
Should I load Linux on my computer if I have never done it before?
Nope, no way, get help. But then you probably can’t load Windows by yourself either.
I hear there are lots of different kinds of Linux, what’s up with that?
(sigh) yes there are and its very confusing, but here’s a few guidelines:
There is only one Linux, called “the kernel.” There are many “distros.” A distro ( short for distribution ) is a package that includes the Linux kernel and a set of the thousands of utilities and applications that make up a usable computer. Its as if there were many different types of Windows, with differing look-and-feel. Debian, Fedora, Knoppix, and Ubuntu are good distros to start with.
The good news is that all good distros include many applications as part of the install. Typically you would get mail and a browser, and a file manager just like Windows, but you also can choose to load office, graphics, games, development, web server, database, and lots of other applications. Where Microsoft gives away cheesy insecure applications like Outlook Express and then charges for full-featured stuff like Office, OS distros come with the good applications for free.
What about help?
That’s the Achilles heel of OS, and one of its pleasures too. Microsoft has always had a good help system for common tasks around the desktop. They have also been terrible at responding to bugs, including broken features. For complicated stuff they are helpless and hopeless, even if you pay. ( been there done that ) Because writing help pages is not as much fun as writing code for most computer types, OS help systems are frequently incomplete. ( there are exceptions like MySQL) But there is something else. All OS applications have user groups that meet online in giant bulletin boards. The developers mix there with novice-to-expert users, and they live to answer questions. Frequently your question has already been asked, and you can just search for the answer.
Will I have to re-learn my applications? I already know how to use Word.
When OS applications are functional clones of commercial apps. they borrow some of the interface too. That is, where the commercial app has a standard look, the OS app tends to copy it. Sometimes they try to fix bad bits of the interface, not always successfully. More powerful applications like web servers and databases make no attempt to copy Microsoft or Oracle, and that’s usually a blessing.
When should I switch to OS software?
When you need something new, especially something expensive like Photoshop. When you have an old computer thats too slow to run Windows, use it to run Linux for Internet radio, or a family website. When you are forced to upgrade Windows or Office. When you need greater connectivity or more security. Anytime you build a server. When you need five computers in your house ( 4 people, plus a server). When you want to learn to write programs yourself. When your work switches to Linux. In other words, if it ain’t broke, don’t fix it.
So why is it better to write software with volunteers, than paid professionals?
It isn’t always, but generally commercial software gets bogged down in layers of management, marketing vs sales vs engineering squabbles, and the millstone of backwards compatibility. Worse, companies like Microsoft have a nasty tendency to refuse to interact with standard systems, as they attempt to monopolize the market. The notorious non-standard behavior of Internet Explorer is just the most obvious example. I have been told by an MS insider that half the code in Word is leftover from years before, and that Windows itself is half backwards compatibility. This makes for a huge unwieldy code base, that no-one can clean up. Then too, there is a meritocracy in the OS world. Just as applications succeed and fall on their merit, individuals get attention based on the quality of their thought, and their willingness to work. In addition. many applications like Bugzilla for instance, are supported by commercial enterprises that need them, so there are a few paid developers working in the core group.
More than that, when people are working on their own time, they tend to write simpler code. Simpler is most often better. They have a powerful incentive to write good code, because their name is on the work. Their compadres will have to work with that code, and bugs will come in against it. Everybody can read it, and comment. That’s a little nervous-making to an engineer accustomed to complete anonymity or a youngster with no resume. Then too, good craftsmen like to work, and the mediocre tend to avoid it.
The only way software improves, is to have good testing and bug reporting. With the most brilliant design, you still have bugs, both mistakes and unforeseen situations. Open software is not particularly well tested ( lack of warm bodies), but the bug report-developer-fix-new release cycle is much faster than with commercial code. OS can respond in a matter of days, or even hours to security flaws, because there is no secrecy, and there is a great demand for information. There is also a community of good will who wishes the software to improve. With everyday so-called shrink-wrapped commercial software, bug reports are not usually accepted even from business partners, and release cycles can take years. Microsoft is infamous for not admitting security flaws, and for not fixing well-known bugs. Understand that this comparison does not apply to industrial software, where customers are expert engineers and demand rigorous testing and conscientiousness.
Why do OS people work for free?
One reason is that no one offered to pay them, but the work still needed to be done. Sometimes they are under-used at work, and want to show their stuff. A number of management surveys have shown that above a middle-class income level, employees are motivated much more by peer approval and job satisfaction, than by salary.
Somehow the OS world has evolved a complex system of peer-to-peer cooperation, where standards are set cooperatively and publicly. It’s Darwinian and it can be cruel. Fools and time-wasters are not lightly taken. Those of you who work in formal organizations can imagine the relief of not having to pay attention to the pointy-haired boss, the obstreperous IT department, and the incompetent deadwood. Best of all there are no CEOs or Vice Presidents bent on economic pillage. On the other hand, organizing volunteers can be like herding cats, but those who do the majority of the work, are usually allowed to make the decisions peaceably.
On the Internet no one knows you are a dog.
Well as long as you write passable English, anyway. While the vast majority of the computing business was invented in the US, software has spread out over the globe. There are a lot of applications coming out of obvious places like Germany and Sweden and Australia, but Central Europe, Finland, and even Arabia are also represented. No doubt India, China and South East Asia will soon be common sources. Even the French have been known to engage in that most un-Gallic of pursuits, working for free and giving away the result. Anyway the barrier to entry in OS software is hard work and technical skill, not money, or position, or birth.
How do you get OS software?
Well you can search for it, and ask experts, but most desktop applications have a home on a curious phenomenon calledOSTG. It is a collection of inter-related web sites that host, discuss, and disseminate OS software. One of these sites, Sourceforge offers a home to anyone who wants to host a project, for free. It comes with bug tracking, discussion groups, and all the paraphernalia needed to organize and promote a software project. It’s hard to believe, but there are over 100,000 projects registered. Even allowing for abandoned, dying, and stillborn projects there must be tens of thousands of active projects there.
The Internet has a lot to do with it.
The explosive growth of the Internet is intertwined with the maturing of OS software. The original web server and browser were free, and used by nearly all developers who worked on their replacements. The fact of near-universal connectivity made cross-cultural and remote collaboration possible, and removed the overhead of running projects. The requirements of the new collaboration, engendered whole classes of fundamental applications, like scripting languages and standardized protocols, which in turn made collaboration easier. The process continues today where OS applications make use of other OS applications to extend their functions. The pioneers were also able to turn unpaid work into healthy, occasionally lucrative careers writing books, and supporting their creations.
So why should I care?
Because there is an interesting, cooperative human phenomenon at work. That rarity is enough. The added benefit of free software just makes it a better story.
Sources:
Sourceforge – huge repository of OS.
Open Group – home of standards and support for the OS concept
OSI - another standards initiative
W3 – standards for the web.
DMOZ – another place to look for software
GNU – the source for 1000’s of useful tools. “Free” not OS, but the difference isn’t significant to users.
OASIS – home of Open Document standard
OpenOffice – the equivalent to MS Office
Firefox – switch to this browser now.
The author has worked in the industry since 1992, and is currently working for a small network switchmaker which uses Linux. He uses Apache, MySQL, perl, Linux, OpenOffice, The Gimp, Gaim, Firefox, PHP, Evolution, CVS, Bugzilla, GNU, Wordpress, Joomla, Drupal, and others on a daily basis. This blog is constructed in Open Software, Wordpress, written in PHP which is OS, runs on a Linux server which uses Apache.
Leave a Response