Open Source for Open Minds

What is Open Source, really? This week, we take a look at that very question. Sure, we all may use it, work with it, even love it, but do we truly understand what open source software entails? Maybe we can help…

Maybe there’s no free lunch, but thanks to the efforts of thousands of programmers and the Internet, there’s more great software such as Linux and Netscape freely available today than ever before.

Free software is also called Open Source software, a newer and generally more acceptable label. You’ve probably heard both of these terms, but like many, you may not be fully aware of what Open Source software is and its potential benefits to career programmers. In this article, I’ll explain and comment about the Open Source movement, and also add my two cents about how Open Source is affecting my career as a computer book author.

Find the answers you need at InformIT.com
   

Article courtesy of QUE and InformIT.com
Copyright 2000 QUE. All Rights Reserved

   
{mospagebreak title=Free Lunch?} Maybe there’s no free lunch, but thanks to the efforts of thousands of programmers and the Internet, there’s more great software such as Linux and Netscape freely available today than ever before.

Free software is also called Open Source software, a newer and generally more acceptable label. You’ve probably heard both of these terms, but like many, you may not be fully aware of what Open Source software is and its potential benefits to career programmers. In this article, I’ll explain and comment about the Open Source movement, and also add my two cents about how Open Source is affecting my career as a computer book author.

Find the answers you need at InformIT.com
   

Article courtesy of QUE and InformIT.com
Copyright 2000 QUE. All Rights Reserved

   
{mospagebreak title=Rebirth of the Hacker} The concept of Open Source software goes back to the early days of programming when most computers were either in universities or in large company research facilities. This was the age of the “real programmer” who, in the tongue-in-cheek lore of the time, did not use Pascal. A real programmer was a scientist, and as such freely shared his or her work with other programmers. A real programmer was a “hacker,” which at the time was a compliment; like calling a chef a great cook.

Tracing today’s Open Source movement leads back to the early 1970s, when the military’s ARPAnet connected programmers around the country, and which eventually led to today’s Internet. It was around this time that Ken Thompson invented UNIX at Bell Laboratories. Another programmer, Dennis Ritchie, created a programming language called C.

There’s no question of the tremendous impact that these two humble beginnings have had on operating systems, programming technique, and application software. But along the way, the explosive growth of the computer industry attracted the attention of big business, and created a deepening conflict over the ownership of software and the needs of computer users. Who would have guessed at the time that William Gates, starting out with a cassette-distributed version of Basic, would one day become the world’s richest man? Many, however, correctly predicted that big businesses such as Microsoft would have a dampening effect on the growth and quality of computer software. Windows, and its many well-known bugs, is proof.

Frustrated by this conflict, Richard Stallman in the mid 1980s created GNU (a recursive acronym for GNU is not UNIX), an effort to provide a freely distributed version of UNIX and related tools, applications, games, and other software. The GNU project continues to thrive today, due in large part to the efforts of another Open Source pioneer, Linus Torvalds, inventor of Linux. Based on GNU, the original Linux kernel actually didn’t work very well. This was to change, however, when the growing Internet attracted the attention of hundreds of top programmers. Through their efforts, Linux is now one of the most, if not the most, stable PC operating systems in existence.

I don’t mean to provide here a comprehensive chronology of the Open Source movement, but to make a simple observation from the foregoing overview. Open Source is refocusing software development by providing access to source code for the world’s top computer scientists. Rather than lock out programmers, as big business seems to prefer, Open Source invites all to participate. With Open Source, real programmers are back in business.

Find the answers you need at InformIT.com
   

Article courtesy of QUE and InformIT.com
Copyright 2000 QUE. All Rights Reserved

   
{mospagebreak title=Is Free Software Really Free?} Free software isn’t necessarily free of cost. Instead, free, Open Source software is free in the sense that anyone who acquires it, by any means, is free to use and redistribute that software. For example, you are free to sell or give away your copy of Linux, provided you include the GPL (GNU General Public License), and nobody can prevent you from doing so.

You are also free to modify Open Source software, extract portions of the source code for your own use, and put that software to work in any way you wish. An Open Source distributor cannot restrict you from using the software in, say, genetic research, or in some other controversial field. It is up to you how to use Open Source software.

That fact remains true even if you sell Open Source software on a CD-ROM, or perhaps on the Internet. The software is still unencumbered because your customers may give it away or resell it themselves. But you are free to charge whatever you want for the program or operating system. The only limitation is that you may not restrict how your customers use or distribute the software—their rights are the same as yours, and must remain so. In addition, in order to be considered true Open Source software, it must be distributed with all of its source code, or that source code must be freely available over the Internet.

These facts lead to one key advantage that commercial software can never match. Because many programmers work on Open Source software, it evolves naturally according to the needs of its users. What a concept! Contrast this with the typical commercial program that spouts features dictated by management’s view of the marketplace, causing programmers to waste time creating whiz-bang elements that nobody wants or is likely to use. The fear that developers will lose control over their programs if distributed as Open Source is overwhelmed by the real benefit of having teams of programmers operate on the code. The original developer still owns the rights to the software and is in charge of accepting or denying proposed modifications.

None of this is mere conjecture. Real Open Source projects are making real success stories. Linux is, of course, one of Open Source’s great masterpieces. The Internet is another. Without the cooperation of Open Source programmers, who have contributed the protocols and core programming that keeps the Internet alive, the Internet and World Wide Web would simply not exist. Many major Web sites are powered by the Open Source Apache Web server. Another good example is the multi-billion-dollar corporation, Netscape, which evolved from the Open Source Mosaic Web browser.

Find the answers you need at InformIT.com
   

Article courtesy of QUE and InformIT.com
Copyright 2000 QUE. All Rights Reserved

   
{mospagebreak title=In The Public Eye} The term “free software” has caused a lot of confusion in the software marketplace. Free software is, as I’ve said, not necessarily free of charge, but is free of restrictions placed on the use and distribution of the software. But despite tons of articles on the subject, many people still confuse free software with public domain software, one reason the term Open Source software has come into vogue.

Public domain software is owned by the general public. Its copyright is in the public domain, and therefore, anyone has the right to copy the software and use it as they wish. In that sense, public domain software is similar to Open Source software. The two concepts are similar also in that anyone may collect public domain software and sell it, for example, on a CD-ROM. However, public domain software doesn’t always come with source code.

Unlike public domain software, Open Source software is usually copyrighted by a company or an individual who retains the rights to that software. How that software is distributed, not the issue of ownership, is what gives the software its Open Source status.

Find the answers you need at InformIT.com
   

Article courtesy of QUE and InformIT.com
Copyright 2000 QUE. All Rights Reserved

   
{mospagebreak title=A Case in Point} Bruce E. Wampler’s V class library for Linux and Windows is a good example of how Open Source software benefits from the participation of its users, and how other programmers might find new opportunities by participating in the Open Source movement. (I based the final chapters of GNU C++ for Linux on V as an example of object-oriented C++ programming for the X window system. The book includes the entire V library on CD-ROM.) Recently, I asked Bruce a few questions via email. His comments offer some intriguing insights into the value of Open Source software:

What do you see as the main benefits from the Open Source movement, especially to software consumers?

“The main advantage to consumers is variety. Without Open Source, there are many excellent programs they would never see. Most of these programs are quite specialized, and may be difficult to find, but they give choices that wouldn’t exist otherwise.

“At a bigger scale (Linux for example), there are great programs that commercial companies are trying to exploit by giving everyone a choice. How many Linux companies are there? Five or six? All are selling versions of Linux, all based on the original Open Source. As an end user, I don’t mind paying $30 or $50 for a complete ready-to-run Linux package. I don’t think any of this would have happened without Open Source.

“In the end, it is choice that wins. Choice to use new, innovative programs, and a choice of packagers for mainstream applications like Linux.”

Do you see Open Source software being popular mainly in scientific circles, or will it become a viable alternative to commercially sold programs? Is the popularity of Linux a fluke, or an indicator of a new future for software distribution? “I think Open Source will help to keep small, innovative developers alive. Although the prospect of revealing your crown jewels to the world may be frightening, I don’t think it really matters. Other than a few exceptions such as Linux, we don’t have several companies trying to sell support for the same Open Source product. GPL practically guarantees this.

“Take V, for example. My distribution remains the only source. I’ve gotten lots of feedback on bugs and features, but no one has tried to release an alternate version. Because V is Open Source, users feel more confident because they know at least they will have access to the source code to protect themselves.

“So in the long term, I believe successful, small, innovative software companies will survive by adopting the Open Source model. There is a level of comfort knowing the source is available if necessary, and this will make customers prefer Open Source.”

Why did you decide to release V as free Open Source software?

“V has grown beyond my original intent. It was first supposed to be an academic tool–used to teach introductory programming. And in a university environment, nothing other than Open Source makes any sense. But in the long run, it has been a win for everyone. Programmers use it knowing the source will always be available. I receive outside help on keeping V going that I wouldn’t have if it were closed. And I get a good feeling that I’m helping people produce better software.”

Finally, in what ways might software developers join the Open Source movement and still make a living at their craft? Or is Open Source at odds with programmers being paid fairly for their work?

“That is a complicated question. I’ve figured out only two ways to make a living with Open Source software–with a company, and as an individual.

“Companies do it by providing support and packaging. They hire programmers to develop new software under Open Source, or to maintain and improve existing Open Source software.

“To make a living as an individual is harder, I think, and requires patience. Creating Open Source software as an individual probably won’t have an immediate payback. But over time, good software will lead to new opportunities.

“A truly great program, for instance, might lead to [the programmer] forming a successful company to support it. The software may also attract the attention of big companies, leading to new opportunities there. It can also lead to an impressive resume for advancing a career. “My own case is probably not typical. I once co-founded a very successful commercial software company, which was sold. I’ve seen V and VIDE as a way of giving something back to the software community. So far, I’ve not made a cent from these V projects, and in fact have spent considerable money maintaining the V web site. “However, I have had other opportunities. For instance, I received a lucrative offer to direct a software project for a large computer company, mostly based on the work I’d done with V. And there have been other opportunities that I’ve chosen not to take. I don’t think these opportunities would have materialized without the work I’ve done with V. Some of the opportunities came early in the V project, while others are still developing after several years. I am fortunate to have the means to allow this. Others might have to do this as a second “job”, or as a hobby. There is some element of risk–all the work might never pay off with real money. But for a software developer like me who generally shies from the corporate world, Open Source is the way to go.”

Find the answers you need at InformIT.com
   

Article courtesy of QUE and InformIT.com
Copyright 2000 QUE. All Rights Reserved

   
{mospagebreak title=A Case in Print} My own experience with Open Source as a computer book author is a little different. While writing GNU C++ for Linux, I had the uneasy thought that I would be called on the carpet for selling a $50 book of “free software.” Of course, publishers have been pulling this same trick for years with cover copy in a starburst that states something like “Free CD-ROM Included!” Since you still have to pay for the book to get the disk, isn’t this just a marketing gimmick? Perhaps not. In years long past, prior to the Internet explosion, and before printing companies figured out how to package disks and CD-ROMs in book covers, I used to sell diskettes of the programs in my books. Later, when books started to include “free” disks, I realized it was time to change how I distributed electronic copies of the program listings in my books.

Scrapping my disk sale business, I reasoned, would not necessarily mean a loss of revenue. On the contrary, not following the trend to include a “free” disk in every book might soon put me out of business entirely. Readers faced with a decision of choosing between two books on the same subject, one with a disk and one without, would naturally take home the one with the extra goodies. As it turned out, after including the listings on disk inside the back cover, I began to sell more books than ever before.

Publishing tutorial listings, I realize, is not on the same level as publishing the source code to a freely distributed UNIX kernel such as Linux. But there is a connection, especially in the publishing of algorithmic implementations—a specific sorting subroutine, for example, that has some unique operational feature. These tidbits, which I try to include in my books, lend extra value to the text, and I have always believed that readers who have purchased the book, or checked it out from a library, should be free to use my code in any way they choose.

But now a new thought has begun to nag me, and I am today faced with another business decision raised directly by the Internet and the Open Source movement. The question is, should I, and other authors, publish books in full on the Internet? What would that do to book sales, and hence to an author’s ability to earn a living? Frankly, I don’t know the answers to those questions (neither do my publishers), but meanwhile, I have agreed to compromise in two ways:

But now a new thought has begun to nag me, and I am today faced with another business decision raised directly by the Internet and the Open Source movement. The question is, should I and other authors publish books in full on the Internet? What would that do to book sales, and hence to an author’s ability to earn a living? Frankly, I don’t know the answers to those questions (neither do my publishers), but meanwhile, I have agreed to compromise in two ways:

1. By making sample chapters from GNU C++ for Linux available online (which will be posted in the coming weeks). I’ll look into doing the same for other books.

2. By making all source code listings freely available on my Web site, http://www.tomswan.com, along with updates and corrections. I also plan to add source code files from some of my out of print books.

I would like to hear from readers on the question of online book publishing. While I do not have any objection to publishing online material and making it freely available, my fear is that authors will be forced to evolve from writers to advertising agents. Must authors derive an income from yet another Web site full of advertising banners and affiliate-program icons? I’m interested in your thoughts on this question: Would you still buy a book if it were available online?

Find the answers you need at InformIT.com
   

Article courtesy of QUE and InformIT.com
Copyright 2000 QUE. All Rights Reserved

   
{mospagebreak title=Open Source and You} For many programmers, the debate about Open Source software boils down to a simple question. Can a working programmer make money developing free software? The answer is yes, maybe even a lot of money, but you must be a clever go-getter to find an income-producing method that works for you.

But remember, competition among Open Source developers may be even more fierce than among commercial vendors. Perhaps that competition, which can only result in better software, will ultimately be the real benefit of Open Source. If you decide to join the Open Source movement, be ready to take advantage of offers that may come from surprising sources. Just keep an open mind and the opportunities will come.

Find the answers you need at InformIT.com
   

Article courtesy of QUE and InformIT.com
Copyright 2000 QUE. All Rights Reserved

   
{mospagebreak title=Related Information}

About the Author

Tom Swan is an internationally published author of more than 30 books on computer programming in C++, Pascal, Delphi, and assembly language. Tom is a frequent contributor and former columnist for Dr. Dobb’s Journal, PC World, and PC Techniques. He is an avid Linux enthusiast who supports free software distribution to the Linux community.

Open Source Informational Websites

  • Open Sources: Voices from the Open Source Revolution. Online publication of this O’Reilly book containing essays from Open Source pundits such as Richard Stallman and Linus Torvalds.

  • Softpanorama: (slightly skeptical) Open Source Software Educational Society. Educational materials for schools and universities, plus a good source of information about Linux and other Open Source software.

  • Support Open Source Software. More good information and comments on Open Source software. (Check out the opening page graphics–dits and dahs whiz by in an animation of a cpu’s inner thoughts. Cute.)

  • Open Source organization. Great informational resource of Open Source concepts, advice, and licenses. Includes case histories of Open Source success stories.

    Open Source Project Websites

  • The GNU Project. Main Web site for GNU software.

  • Object Central. Bruce E. Wampler’s V class library (and more) for Linux and Windows.

  • Open Source Writers Group. A network of volunteers that promises to connect writers and Open Source projects.

  • SGI Open Source Repository. Various ongoing Open Source projects, Linux kernel patches, XFS: a 64-bit scalable journaling file system, and other free SGI software by SGI employees.

  • Open Source WAP Gateway. Project devoted to Wireless Application Protocol for providing software and services to mobile users.

    Find the answers you need at InformIT.com
       

    Article courtesy of QUE and InformIT.com
    Copyright 2000 QUE. All Rights Reserved

       
  • [gp-comments width="770" linklove="off" ]

    chat