LETTERS

The Study was Flawed

Dear DDJ,

The Stanford study about PhDs and jobs that Jonathan Erickson referred to in his October 1995 "Editorial" is faulty, at least when it comes to computer-science majors. Instead of 50 percent of PhDs not finding jobs that require a PhD, only 3.6 percent found themselves in that situation. Check out http://cra.org/. Follow the "What's New" link and look at the section "Major Error...''. Do the industry a favor and mention the revised number.

Paul Long

plong@perf.com

http://www.teleport.com/~pciwww/

DDJ responds: Thanks for your note, Paul. We followed your advice and went over to http://cra.org/ for a look-see. What we found was an interesting story, thanks to Ed Lazowska (lazowska@cs.washington.edu) of the University of Washington, Seattle.

After meeting with Jeffrey D. Ullman from Stanford and Robert W. Ritchie from Hewlett-Packard, William Massy, the senior author of the study, discovered that a critical input parameter to his model--the total number of doctorates employed in the field--was incorrect for computer science.

Historical data from the National Science Foundation (NSF) revealed a steady increase to 19,800 for the two years prior to the year used as input data, and 5376 for that year. This anomaly was not noted in preparing the input data for the model. The anomaly was due to a change in definition by those in NSF responsible for collecting the data. Massy has recently reconsidered and decided to treat the figure of 5376 as inappropriate for use in his model. He has decided to extrapolate the historical data to a figure of 21,000 instead.

As a result, computer science now shows an employment gap of only 3.6 percent instead of the published 50.3 percent. This number is one of the lowest of all fields, and suggests that the projections of 15 years ago, calling for a build-up to 1000 computer science PhDs per year, are in remarkable agreement with the revised Massy-Goldman estimate of current demand.

Massy says he is going to release the corrections to everyone who received the report. We also expect Massy and Goldman to issue a full, revised report shortly.

It's worth noting that the Massy-Goldman report was just that--a technical report, totally unrefereed and replete with numerous obvious typographical errors, in addition to the methodological glitch in the case of computer science and engineering. Reports in The New York Times and other publications would lead you to believe that the Massy-Goldman study was a "survey," when in fact the study involves a first-order Markov model. The study is perfectly clear on this point, so the misleading statements are solely due to The New York Times and other publications that reported on the study.

Nevertheless, Lazowska went on to tell us that all is not rosy in computer-science PhD land--jobs are ever-harder to come by, and students continue to be educated for jobs that are less likely to be found. He sums up by reporting that, while the report is badly in error quantitatively, it's important to acknowledge that there are indeed problems to be addressed.

GNU C/C++

Dear DDJ,

I've been using GNU's C++ compiler for both DOS (DJGPP) and Linux for a year now. In his August 1995 "C Programming" column, Al makes some great comments about the compiler--it's price tag, for instance. For a high-school student with no money, GNU's compiler offers an excellent way for me to develop my programming skills. Some of his comments, however, are a bit off.

First, if you set the environment variables C_INCLUDE_PATH, CPLUS_INCLUDE_PATH, and LIBRARY_PATH, the compiler will be able to find the standard libraries. Optionally, you can set the DJGPP variable to file DJGPP, ENV in the base directory, which automatically sets up those variables and much more.

Second, if you specify -o filename on the command line, the compiler will send its output to filename, instead of a.out. Finally, you can run the file just by typing go32 filename, which runs the coff format, without any other postprocessing. You can also type coff2exe filename and convert the file to an EXE format.

Wesley Griffin

Sykesville, Maryland

Dear DDJ,

The September 1995 Dr. Dobb's Journal included the article "Examining C/C++ Compilers," by Tim Parker. I won't comment on the reviewer's evaluations, because independent evaluations are the purpose of a review, but I would like to clarify a few points.

Cygnus Support has no special or authority over GNU software releases, no special relationship with the GNU project or the Free Software Foundation. Cygnus's staff contributes substantial amounts of work to GNU software development, and we appreciate this; but the Free Software Foundation does not give a special status to any company. We'd be equally grateful to Ready-to-Run if they were to help develop GNU software. If you contribute to GNU development, we'll appreciate your help, too.

The review mentioned two places to buy copies of the GNU C compiler and related software, but it omitted the Free Software Foundation itself. The Foundation is a tax-exempt charity for software development; but in addition to donations, we raise much of our funds by selling freely redistributable books and CD-ROMs.

The Foundation sells a CD-ROM of compilation software, including binaries for Solaris, SunOS 4, and HP-UX as well as sources; the price is $220.00 if an organization is paying or reimbursing, and $55.00 if an individual is buying with his own money. When you buy a CD-ROM from the Free Software Foundation, most of the price goes toward development of more free software. To contact the Foundation, write to Free Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA, 617-542-5942, fax: 617-542-2652, fsforder@gnu.ai.mit.edu.

The review referred in passing to "nasty conditions" for use of the GNU C Library in proprietary applications. Readers might appreciate knowing precisely what these conditions are. Here are the requirements for distributing a proprietary application on Solaris that uses the GNU C Library:

(None of these conditions apply to using the GNU C compiler, linker, and assembler--only the GNU C library.)

The other compilers reviewed have their own conditions for use; readers might want to compare the conditions and judge which are more nasty. The review did not help readers make the comparison. Like most reviews, it rated the various compilers on criteria such as speed, functionality, reliability, and price. It did not rate them on the criterion of what a user can legally do with them after "buying" a copy.

We can guess, in general, what kinds of restrictions the other compilers have. It is surely forbidden (not to be identified with "wrong" or "immoral") to give a copy to your friend. You may be forbidden to install them on several machines, or on machines at different physical locations; you may even be forbidden to have several users run the compiler at one time on one machine.

GNU software has no such restrictions, because it is free software. The word "free" refers to freedom, not price: Legal conditions for using GNU software are always designed to protect users' freedom from intermediaries who might strip it away. You are free to redistribute copies; you are free to install GNU software on any number of machines, anywhere at all; and once it is installed, any number of users can run it.

You are also free to read the source code for the GNU compiler, and even to make changes, or commission a service company of your choice to make changes to your specifications. You can't do this at all with a proprietary compiler.

When reviews neglect this aspect of how programs differ, they forget in effect that not all programs are proprietary. I hope that future reviews in Dr. Dobb's Journal will rate all programs on user freedom along with speed, quality, and price.

Richard Stallman

Free Software Foundation

Cambridge, Massachusetts

rms@gnu.ai.mit.edu

Putting Oconomowoc on the Map

Dear DDJ,

As former president of the Oconomowoc Senior High School Computer Club, 1980 and 1981, and even then a subscriber to a magazine then known for "orthodontia" as well as computer "calisthenics," I must protest several points in your October 1995 "Swaine's Flames."

First, Oconomowoc is not populous enough to have its own broadcast news station. Even the stations in Madison and Milwaukee have ordinary-looking reporters. Why, just last night, I saw a chubby reporter. And Madison even had an all-female news team.

"Oconomowocians?" Oconomowoc residents refer to themselves as "Coonies" after the high school's mascot, a raccoon. Live bait and computers? No way. Live bait and doughnuts, or live bait and video rentals, maybe. No Safeways, either.

Oconomowoc is situated between several very nice lakes, so that homeless marine biologist should be able to hitch-hike to the University of Wisconsin-Madison to get a job as a limnologist, or even as a cabdriver, if he has his doctorate.

I get the joke, though. Why did you pick Oconomowoc? Did you think that humorous references to Oshkosh are over-used?

As for Windows 95, a friend said "It makes a grown man cry." Personally, I think it's just a scam to generate more cash for Bill, as well as to teach people that they actually wanted to buy Windows NT.

John Foust

Jefferson, Wisconsin

syndesis@beta.inc.net

Kudos for Linus

Dear DDJ,

Congratulations on recognizing Linus Torvalds for his work with the Linux operating system. Linus is a god to us Linux disciples.

It was almost an insult to compare him to this other guy, Alexander Stepanov. I realize that DDJ has always been off its own tangent, ever since the "Running Light Without Overbyte" days, but this is too much.

It is by no means clear that C++ templates are a usable language feature. Of course, I'm a C++ skeptic from way back. I'm still waiting to see a case study where the claimed maintenance benefits of OOP are proven. But I've even read articles by serious C/C++ authors who suspect templates might be too complicated to be usable.

And what's this about a scholarship for a deserving student? Linus is a student! Give him the money. And he learned UNIX all by himself, not like Stepanov who had to have Bjarne explain it to him in person.

Charles Hall

Raleigh, North Carolina

DDJ responds: Thanks for your letter, Charles, but you're the first person we've heard from who didn't think Stepanov deserved recognition for spearheading a major body of work that will shape the future direction of software development. This doesn't detract from our admiration of Torvalds, who deserves accolades as well.

Play it on the Radio

Dear DDJ,

While I enjoyed Al Stevens' October 1995 "C Programming" column on MidiFitz, one of his comments about Microsoft's MFC shows a serious communication problem. Al clearly doesn't understand the "radio-button" metaphor. Maybe he is too young to remember the AM car radios that are the physical model. In those radios, you had a number of buttons, but only one station was selected at a time.

MFC properly returns an index from the first button. Perfect for indexing into an array or driving a switch statement. On those old radios, you can't select multiple buttons, so having multiple Boolean variables is the wrong model.

MFC does support exactly the type of multivalued logical fields; they are called "check boxes." You just can't expect radio buttons to work the way check boxes do.

It is likely that Al's complaint about MFC's documentation is valid. There is a serious minor publishing industry that helps folks understand MFC. But Al started with the wrong model. His expectations were wrong, not MFC's implementation.

Pat Farrell

http://www.isse.gmu.edu/students/pfarrell

Al responds: Of course I remember the old-style car-radio buttons. They were popular with my generation because they were easy to find in the dark by groping forward from the back seat. But then, maybe you are too young to have watched submarine races from the back seat of a '50 Ford.

It was not clear to me at the time what you could do with the value passed via DDX into a variable from a radio-button group. It wasn't clear how the visual designer decides which button has which indexed value. The programmer interface is less than intuitive to an MFC novice in this case.

All that notwithstanding, I disagree with your position that multiple bools are the wrong model. The radio-button metaphor is for the user. The programmer has different needs. For example, if I decide that a check box fits the bill better than two radio buttons, I'd like to be able to do it without changing a lot of code. Each radio button in a group has its own identity. It's not asking much to be able to tell if a specific button is the pushed one without considering its position in a group. (You can do it in D-Flat.) As I said in the column, it's easier to forego the DDX solution and implement that kind of flexibility myself.

Numeric Typos

Dear DDJ,

In the October 1995 issue of DDJ, Louis Plebani's article "Common-Fraction Approximation of Real Numbers" contained two typographical errors that made the mathematics of an otherwise very enjoyable article a little more difficult than it should have been.

In the first paragraph of the second page, the equation ab- bc=-1 should be ad-bc=-1. Continuing in the same sentence, k=c+d should be k=b+d.

Please continue with mathematically oriented articles, they are extremely informative.

Alan J. Livingston

Copiague, New York

74150.1754@compuserve.com


Copyright © 1995, Dr. Dobb's Journal