Opinion
Computing Applications Forum

Forum

Posted
  1. Open Source vs. Capitalism and Communism
  2. What Worker Shortage?
  3. Design for Pedagogy Not Just for Software
  4. Author

Robert L. Glass related open source/free software and communism in his "Practical Programmer" column ("A Look at the Economics of Open Source," Feb. 2004), emphasizing the failure of the latter in order to question the soundness of the former. However, open source/free software development and communist economies differ in many ways:

  • Nobody is forced to write "free software." In a communist economy, the collective or, in many regimes, the bureaucracy assigns tasks to workers.
  • Many free software contributors have a vested interest in what they write. Programmers may, for example, write a device driver for a device they bought but are unable to use under Linux. Having written the driver, the programmers are likely better off making it available to the general public, allowing others to improve it while discharging the original authors from its maintenance—clearly a win/win outcome.
  • Open source software is often developed for a profit. For instance, hardware manufacturers might finance the development of free software drivers in order to improve their sales in competitive markets.
  • Software is largely geared to particular industries in that it generally involves low equipment costs, and the marginal cost of an additional copy can be driven close to zero. The collaborative writing of software—where a product may be used by thousands of users—thus makes more sense than the collaborative building of industrial products where each copy requires expensive materials and a dedicated work force.

Glass also assigned too much importance to the claims of "columnists" and "open-source advocates." Do their opinions represent the majority of open source contributors—or are they just the most outspoken?

David Monniaux
Paris, France

Robert L. Glass seems to think "success" for open source software means other forms of software development will be driven out of business. There is, in fact, room for many models and styles of developing software, and the bazaar style of open source software development is but one of them.

An article on the economics of open source should have described when open source has and when it lacks competitive advantage. A key feature of the bazaar style is that programmers are also users, and requirements analysis and requirements documents are not needed. This works when the software is used primarily by programmers but not when used by other specialists.

Since developers are distributed, design communication is difficult. The bazaar style works better with systems reflecting a well-known design (such as anything taught in a CS course). It works less well with innovative designs. Innovative designs work better with a cathedral-style process or with a process that enables regular communication among developers. Fortunately for the bazaar style, most software does not involve innovative design. Unfortunately, most software is not designed to be used by programmers.

Beyond the bazaar style, some open source software, including qmail and ghostscript, were developed by individual genius programmers. Software development by geniuses is a well-known and successful way of developing software, limited mainly by the supply of geniuses. The bazaar style is interesting because it is so different from traditional software development and can be used by regular programmers.

Open source software is already a success. It will not eliminate other forms of software, though in a few cases it will dominate. Programmers who avoid all open source software are making a mistake. Few programmers will ever spend much time developing open source software, but most will take advantage of it. All software developers should understand the strengths and weaknesses of open source, as well as when to use it as a development strategy.

Ralph Johnson
Urbana, IL

Robert L. Glass’s column did little more than provide evidence that Glass does not understand the core principle upon which the open source movement is based. The premise of the movement is that authors do not necessarily program for free; they do, however, expect to be paid for the value their effort adds to the software. As with any profession, they decide when to work pro bono.

Clark E. Hartsock, III
Emeryville, CA

From the point of view of someone living in the democratic and capitalist society of North America, it’s impossible not to respect those who strongly support the open source movement. But because of our capitalist economy it’s equally difficult not to see the possibility of it producing future economic problems, as discussed by Robert L. Glass.

In a capitalist society, deliberately providing intellectual effort for free seems a poor economic decision. Indeed, as our society has moved up the economic food chain from natural resources to manufacturing to products increasingly based on intellectual content the open source movement could ultimately affect our GDP much like piracy affects it.

Open source developers from democratic and capitalistic societies are "funded" by those societies’ increasing GDP before they even write their code. Ironically, open source developers might negatively affect potential economic incentives to invest in future developers.

Linus Torvalds was initially drawn to his work on Linux because he could not afford a Unix license or the kind of high-end machine he would need to run Unix. I can’t help but wonder whether open source would have still had its window of economic opportunity in the first place if the products of private software companies did not involve historically high margins and retail prices. One result of open source might be to force the lowering of prices of proprietary software and the squeezing of margins while also winning greater market share before the next Linus comes along.

I like the open source movement, especially its people and their passion, but worry that as increasingly dependent as North America is on intellectual property, the movement might in the long term erode our GDP and therefore our overall standard of living.

Ken Nickerson
Aurora, Ontario, Canada

Author Responds:
Far too many conversations about open source end in acrimony, with each side charging the other is at best ignorant and at worst evil. I was in general pleased with the objective tone of these Forum comments. Some important points were made: that open source use is successful and growing, but that growth is not destined to supersede proprietary source; that perhaps we tend to listen too much to columnists and gurus on this subject and not enough to ordinary practitioners; and that it is important to know when particular software development methods (including open source) are useful and when they are not.

I would like to add that my column should have said that the most interesting and unique characteristic of open source is that programmers tend to do it for free and not imply it is a necessary characteristic. However, I disagree with the letter writer who said that open sourcers are paid for the "value added" they create. This may be true, but it certainly is not commonly true. And I vigorously disagree with all claims that open source programmers and their programs are necessarily the best. There is no evidence to support such claims, and common sense says they are unlikely to be true.

Robert L. Glass
Bloomington, IN

Back to Top

What Worker Shortage?

In "Programming Languages and Gender" (Jan. 2004), Ronald Dattero and Stuart D. Galup began by stating: "The scarcity of information technology workers has been widely acknowledged."

The idea that there is a shortage of IT workers in the U.S. is false, and I was disappointed that these authors adhered to such a view. A leading U.S. academic expert on the computer technology industry, Norman Matloff of the University of California, Davis, has demonstrated there is no shortage of U.S. workers to fill these jobs, and several studies confirm his conclusion.

As far back as 1998, at the height of the worker-shortage concerns, the U.S. General Accounting Office could not substantiate the claims of such a shortage. In the same year, the Information Technology Association of America admitted, after its own study of job vacancies, said that the supposed shortfall had failed "to live up to its prior billing." Meanwhile, the high-tech industry actually laid off workers at four times the rate of other industries.

The truth is that H-1B visa workers and outsourcing have led to lower wages and higher unemployment among high-tech workers.

Not only did a 2001 National Research Council report conclude that H-1B visas have had an adverse effect on wage levels, a UCLA study cited by Matloff showed that H-1B workers are paid 30% less than comparable Americans. A Cornell University study found the difference to be 20% to 30%.

In 2003, the U.S. Bureau of Labor Statistics reported that unemployment among electronics engineers had soared to 7% and among computer hardware engineers to 6.5%. The IEEE stated that these employees had lost 241,000 jobs over the previous two years, while computer scientists and systems analysts lost 175,000 jobs.

Companies can increase profits by spending less on labor. The claims over the past several years that there is a shortage of high-tech workers has been nothing more than an effort to employ cheaper labor, first by bringing foreign workers to the U.S. and, more recently, by increasing outsourcing to foreign nations.

Highly skilled and competent workers are readily available in the U.S. I hope the authors take note of this.

Marc Bellusci
Harrison, NY

Back to Top

Design for Pedagogy Not Just for Software

Two points need to be made about Cong-cong Xing’s and Boumi Belkhouche’s "On Pseudo Object-Oriented Programming Considered Harmful" (Technical Opinion, Oct. 2003).

The authors overemphasized the distinction between design and coding, saying: "We need to separate the essence of OOP from OOP languages to avoid entangling coding and design issues." Preventing entanglement of coding and design issues is impossible since they are an unbroken continuum; design leads naturally to implementation and implementation back to design, especially in debugging. To regard each as a distinct activity contradicts the axiom that the objective is to produce a working system."

A prime OOP objective is to model real-world objects using software objects. The out object and methods of Java’s system classes model the output stream well enough—and is all one needs to display, say, "Hello world." For educational purposes, a number of authors have wrapped these good-enough elements into two additional classes—HelloWorld and UseHello—that add nothing to displaying the string. Adding unnecessary complexity, even for an apparently good purpose, is not a good idea. Designing-in pedagogy is as important as design itself in software.

Alex Simonelis
Montreal

Back to Top

Join the Discussion (0)

Become a Member or Sign In to Post a Comment

The Latest from CACM

Shape the Future of Computing

ACM encourages its members to take a direct hand in shaping the future of the association. There are more ways than ever to get involved.

Get Involved

Communications of the ACM (CACM) is now a fully Open Access publication.

By opening CACM to the world, we hope to increase engagement among the broader computer science community and encourage non-members to discover the rich resources ACM has to offer.

Learn More