Re: Programming Languages for Technical Communicators

Subject: Re: Programming Languages for Technical Communicators
From: Richard Mateosian <srm -at- CYBERPASS -dot- NET>
Date: Tue, 27 Jan 1998 08:59:55 -0800

>If you want a basic understanding of how computer programs work, then a
>procedural language like Pascal, Basic, or even FORTRAN is a good pick.

I don't think time spent learning these languages will give you much of a
return. There are, however, interesting alternatives. Here are two reviews
excerpted from my October 1997 column in IEEE Micro:

********************************************************************
Structure and Interpretation of Computer Programs, 2nd ed.,
Harold Abelson and Gerald Jay Sussman, with Julie Sussman
(MIT, Cambridge, Mass., 1996, 657 pp., ISBN 0-262-01153-0,
(800) 356-0343; $55.00)

All MIT students of electrical engineering or computer science
must take course 6.001, Structure and Interpretation of Computer
Programs. This book is the text for that course. It has an
accompanying website:

http://www-mitpress.mit.edu/sicp

On the website Abelson says:

MIT students regard 6.001 as an extremely challenging,
but highly successful subject, and they are uniformly
impressed by the amount of material they have mastered by
the end of the semester.

I'm sure this must be true. It is the best introductory book on
computer science I've seen. I'm sure that many long-time
practitioners would also benefit from reading it.

Referring to the cover illustration, adapted from a 19th century
French illustration, students call this the wizard book. The
wizard in this case is conjuring a shimmering lowercase Greek
lambda, alluding to the origins of the Lisp computer language in
Church's lambda calculus.

Yes, the book uses Lisp, that strange-looking language with all
those parentheses. More precisely, it uses Scheme Lisp, an
interesting blend of original Lisp with Algol 60. You can obtain
a complete Scheme Lisp programming environment from the
book's website.

At first I thought it was almost sadistic to inflict Lisp on 500
beginning MIT students every year. On reflection, I think it's a
perfect choice. Without a lot of extraneous explanations of
syntax and other issues of programming languages, the authors
can go directly to the basic subject matter of computer
programming. Better than any other computer language, Lisp
allows the authors to teach abstraction, the essential thought
process that all system designers must cultivate.

I remember how much fun I had learning programming in the
early 1960s. I don't think students who start with C++, Java, or
other intricate languages can have fun right away. There is too
much to master before you can do anything interesting. Many
students lose interest and give up. Lisp lets students express
themselves in the new medium right away. If they don't have
fun, it's because they don't like programming.

The book follows a progression embodied in the chapter titles:

Building Abstractions with Procedures; Building
Abstractions with Data; Modularity, Objects, and State;
Metalinguistic Abstraction; and Computing with Register
Machines.

The first three chapters cover the essentials of system design,
using Lisp. The fourth shows how to build new languages or
interpret Lisp in new ways. The final chapter gets down to
hardware, though not the way you might think!

The authors' discussion of modularity, objects, and state fully
integrates the material that occupies separate chapters (or books)
on concurrency in other approaches. This is a major
improvement over the earlier edition.

This book is not for everybody, but it is for a wider audience
than just the elite students of MIT. Every serious computer
scientist needs to understand the material it covers.


********************************************************************
Programming Perl, 2nd ed., Larry Wall, Tom Christiansen, and
Randal L. Schwartz (O'Reilly, Sebastopol, Calif., 1996, 670 pp.,
ISBN 1-56592-149-6, (800) 998-9938; $39.95)

Larry Wall wrote the rn news reader, the Unix patch program,
and the warp space-war game. He created Perl and continues to
guide its evolution.

Perl is a freely available programming language. It started as a
generalization of the Unix tools sed, grep, and awk. It has
become the language of choice for the CGI scripts that run on
Web servers. You can download source code (in C) for the Perl
interpreter from the Perl website:

http://www.perl.com/perl

Most Perl users calls this book the camel book, because, like
the widely read first edition, it has a picture of a dromedary on
its cover.

The book is the reference book for Perl 5, the latest version.
Perl was always extremely flexible and easy to use. It has
become enormously capable as well. This is the definitive
reference. Not surprisingly, it is long and detailed. The most
interesting part, however, is the overview. It shows how Wall's
views on language design shape the language.

Wall is a linguist, and he set a design goal for Perl that
matches the way natural languages work: make easy jobs easy
without making hard jobs impossible. The result seems strange
at first, but it doesn't take long to get the idea.

Perl programs are often only a line or two long and can be
extremely easy to read and understand. Unlike other languages
that demand precision and unambiguity, Perl tries to understand
you. I wouldn't want to program life support systems with that
philosophy, but it's terrific for the text manipulation tasks Wall
designed it for. I like Perl a lot.

If you design Web sites, or if you just want to manipulate your
email in ways your mail program doesn't provide, try Perl. If you
find yourself getting hooked, buy this book.
********************************************************************

Good luck. ...RM



Richard Mateosian <srm -at- cyberpass -dot- net>
Review Editor, IEEE Micro Berkeley, CA

(C) Copyright 1998. All rights reserved.




Previous by Author: Programming languages
Next by Author: Re: e-mail??????
Previous by Thread: Re: Programming Languages for Technical Communicators
Next by Thread: Re: Programming Languages for Technical Communicators


What this post helpful? Share it with friends and colleagues:


Sponsored Ads