Linux Today: Linux News On Internet Time.

UPDATED: Unix as an element of literacy

Dec 24, 1998, 17:38 (94 Talkback[s])

by Martin Vermeer

(In this forward-looking editorial, Professor Vermeer challenges us with the argument that the world would be a better place if basic UNIX skills were made a required part of the secondary school curriculum.--Editor)

UPDATE: Martin Vermeer adds the following preface and also a postcript in answer to the hundreds of responses he has received since publication.

"When I speak about Unix, of course I do mean Linux (any modern distribution, and *BSD). For several reasons: It's cheap and runs on cheap hardware, it's the most "personal" of the Unixes -- with such niceties as powerful package management and graphic desktop environments --, and, in spite of the lack of use of the trademark, it is the de-facto Unix standard and the only one with long term credibility. And yes, those desktop environments should be installed and the student allowed to play with them, if only to dispel the myth of their non-existence; but not much more. Precious teaching time should concentrate on fundamentals."--Martin Vermeer, December 24, 1998

Most people that come into contact with computers for the first time do so through Microsoft Windows. This experience is so pervasive, that commonly people don't even distinguish between the computer and the operating system that invariably comes pre-installed on it: They use a "PC" and expect software to be compatible "with their PC". Meaning some version of Windows, of course.

The philosophy underlying the Windows design is that of "making computing safe for illiteracy". Everybody should be able to use a computer with no or little training. While Windows is not the first system of this kind, it is currently the only such one in practice, and commercially massively successful.

An entirely opposite philosophy is that underlying the Unix operating system. This system has a tradition going back many decades and was written for and by highly literate people to use themselves. Unix is a general purpose operating system; there is nothing that it will not do for you, but mastering it demands a learning effort. The origin of Unix is in technical and scientific computation, where it continues to be the favorite of demanding users and developers. And for the record, Unix does have an excellent graphical user interface -- even several to choose from -- they are just not mandatory.

Let me mention some highlights of Unix history. The C programming language, originally designed for writing Unix as a portable (hardware independent) operating system, is currently used everywhere, also in the windows world, for writing both systems and application software. The Internet (tcp/ip) became popular as a Unix network, and Unix networking is still best-of-breed today . The World Wide Web started out as a means for high energy physicists to communicate their results in illustrated form. Over half the world's WWW servers run Unix, and most email at some point in its path is forwarded by Unix Sendmail. Unix BIND is the nameserver software allowing the Internet to understand legible adresses. Chat (IRC) was developed in Oulu, Finland, just a couple of years before the Moscow coup attempt, the failure of which it arguably helped precipitate.

With such a track record, one understands why Unix is the undisputed favorite in scientific research and education. This applies even more today, when free, but high quality versions of Unix such as Linux and FreeBSD are available for ordinary PCs. The "freedom" of these systems refers more to their openness, in the form of availability of source code, than to their price tag. Nothing in these systems is hidden, nothing serves the agenda of a commercial provider. This connects in a completely natural way with the traditions of openness and peer review in the publishing of scientific results, and that of hands-on training in the engineering sciences.

I want to argue that an effective way of promoting true computer literacy would be to make Unix basics part of the curriculum... for everybody. This is in my considered opinion justifiable in today's world as an essential element of literacy, just like everyone is required to learn basic arithmetic, in spite of the existence of pocket calculators, in order to get a "feel" for numbers and what they do, and especially also for when numerical results obtained are patently absurd.

The basics to be taught -- presumably on the secondary school level -- would include: using vi (probably the only modal editor anybody will ever see!), using the command line, file system directory structure, mounting, finding and understanding configuration files, writing simple programs (such as "hello world") in C, shell or perl, regular expressions, basic networking (ping, traceroute etc), ftp, email, usenet, mark-up languages, overview of the way standards are created, e.g., in the Internet Engineering Task Force, and other essentials.

You may notice that these are precisely the "tough" things you will never learn by just clicking around, but which kids will pick up almost in play if made to -- after all, this is nothing but language learning. Few people would ever learn Spanish or Russian if not in school! And some of these skills will be immediately useful, like "regular expressions", that will immediately give a better basic understanding of how to effectively use search engines on the World Wide Web. Or mark-up languages such as HTML/XML, offering a glimpse of a better world in which documents can be freely transferred, without risk of illegibility, to someone using an ever-so slightly different system -- or even to yourself, after a system upgrade.

One argument must immediately be put to sleep: that because Windows is the dominant operating system in the world today, one should teach that and not some esoteric alternative. The answer to this is plain and simple. The task of education is to instill generalist abilities and not the skill of "operating" one product. Someone who has acquired the skill of reading books will easily absorb also comic strips, but the reverse is not true... similarly, someone versed in Unix will feel right at home in many other environments including Windows. And for children, learning Unix is not that hard, as experience has shown, due perhaps to its internal consistency and logic.

One reason for the high initial success of the Soviet space programme was their high proportion of engineers in decision-making positions. The recent economic successes of Germany and Japan have a similar basis. A country where there are more lawyers than engineers (and perhaps relatedly, more prison inmates than students) cannot expect to have a technological future. It would be a good start on the road to techno-social maturity to give the MBA's and law men of the future at least a basic IT literacy.

Currently in Mexico, a project is underway to provide 140,000 schools with Linux based computer networks. In France, the Ministry of Education has taken steps as well in support of Linux. These are inspiring examples worth studying and following.

Please consider this option for the future of your country and for a better and more literate world.

Relevant reading matter:

UNIX As Literature

The Open-Source Revolution

A Tale in Writing

Martin Vermeer is a research professor and department head at the Finnish Geodetic Institute, as well as "docent" (probably something like assistant prof.?) at Helsinki University, Department of Geophysics. He uses Linux both at work and at home.

POSTSCRIPT: December 23, 1998 by Martin Vermeer.

Little did I expect that my contribution, posted as an editorial in the pages of Linux Today, would elicit such a response. Besides the comments here, 300+ comments were posted to Slashdot... yes, publishing on the Web really is publishing. And taking flak ;-)

In the coming days I will work on answering the emails that were sent to me (a dozen up till now) but here already some comments of mine to some of the comments posted. Christmas holidays come in handy.

  1. In order to stimulate debate, I formulated my argument intentionally polemic and perhaps somewhat sharply. This seems to have been a success ;-) In fact, I am not entirely sure how precisely the use of Linux for computer literacy education should be given form, especially not in an American high school environment, with which I have no familiarity. The situation will undoubtedly differ from country to country.
  2. To make my point again, and hopefully clearer: With teaching "Unix basics" I really mean basics, on the conceptual level, not syntactic idiosyncrasies or, e.g., the detailed contents of /etc/fstab. Concretely, I would not even expect the students to write a term paper in vi/LaTeX. The reason for vi (=vim) rather than emacs or nedit is: vi is so different (and yes, it sucks :). If you want to learn languages, choose English and a language completely unrelated to English. That way you learn something about "language".
  3. I'm not against GUI's and this should not be (only) a GUI vs CLI argument. In fact, I use Netscape -- starting it with "netscape slashdot.org" in an xterm -- and LyX -- a graphical front-end to LaTeX -- and for mail, exmh, a graphical front-end to the command-line mail tool mh. (Do you see a pattern there? I thought so!) With great interest and admiration am I following the KDE/Gnome development. We need this stuff, to allow beginners a soft landing and give them something visibly useful immediately. But the command line, shell, text screen (or xterm) and text files stuff still is the underbelly to look at for the "wiring".
  4. My reference to "more lawyers than engineers..." was unwise, given that I have no ready reference for this. I believe it's generally known however, as well as (to economists) its stifling effect on technological innovation. The thing about prison inmates vs. students applied to California, and comes from a TV documentary shown some time ago here in Finland. I'm sure there are other countries whom the shoe fits too. I'm sorry, again no reference handy :-(

Thanks again to all of you for participating in debating this important issue!