Re: Programming languages for the very young
From: m-coughlin (m-coughlin_at_comcast.net)
Date: 01/28/04
- Next message: John: "J2EE or Java Web Services?"
- Previous message: Ryan Stewart: "Re: sockets and stuff"
- In reply to: Julian V. Noble: "Re: Programming languages for the very young"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Wed, 28 Jan 2004 18:06:25 GMT
"Julian V. Noble" wrote:
[snip]
> Well, Mike, there is a problem here, of the chicken/egg variety.
> Because major corporations push C, C++, C#, Java, etc. there are
> publishers willing to risk publishing introductory texts for
> those languages (as well as others favored by the academic
> community, such as Python, Perl, et al.).
>
> But Prentice-Hall did not keep "Starting Forth" or "Thinking Forth"
> in print, despite the demonstrated excellence of both books as well
> as pretty good sales.
>
> Kelly & Spies's book, "Forth: a text and reference" was also around
> for a while, but CS departments showed little interest in giving
> courses in Forth.
Forth is not used for CS department applications. I saw
Forth graphically solving the towers of Hanoi and a random
generated maze on the Apple II. I never saw a computer science
paper on how to use Forth to solve these problems, even tho they
are taught in computer science classes.
Physics departments are not always the best places to
learn about practical engineering methods. CS departments are
not always the best places to learn about practical applications
of computers. Scientific computing was taught at Harvard, not in
the CS department, or the math department, but in the astronomy
department. The book "Numerical Recipes in Fortran" came out of
that effort. Computer science is an incomplete field that still
needs to take ideas from many places. It is not a subject like
arithmetic where the basic ideas have been known and tested for centuries.
Computer books are constantly going out of date. They
always have to be revised to keep up with all the changes,
especially ones inspired by better computer books. "Starting
Forth" or "Thinking Forth" will not sell if they are not
revised. I personally would rather have the first edition of
"Starting Forth" kept in print and the ANS-Forth standard become
unavailable, but that would only be the lesser of two evils. The
use of Forth should have inspired people to write more textbooks
instead of less.
> At this U., we had some engineering courses that
> referenced Forth, a course in instrumentation taught by Kelly (for
> a while), and a course in numerical methods where I used Forth in
> front of my classes (admittedly with a FORTRAN-ish front end) so
> I could compose programs, debug them, and run them, before the
> students' very eyes. I could not insist that they do their HW in
> Forth, however, since it wasn't taught as a language. In fact I had
> to learn some C so I could understand and grade their HW. Only a
> few of the many students who took PHYS 551 (and saw me do
> amazing things in front of the class in real time) took the time to
> try Forth.
> The attitude of the CS department was, shall we say, not
> conducive to motivating the average student to learn such an
> off-beat language.
Every computer language is an off-beat way to compute. Ask
mathematicians. They can still do their work without paying much
attention to computer languages. Julian Noble, your course is in
physics, "Methods of Computational Physics". You have to teach
what physicists use to program computers, which is first Fortran
and C, then everything else. In spite of your efforts over many
years, very few physicists use Forth in their work. It is not
good to show computer programming by magic. Physics can't be
done by magic. Everything has to be done with mathematical logic
and precise experiments. It takes a long time to learn; it has
taken a long time to develop the course of study. Computer
programming can't be done by magic either, and it takes the same
effort as physics to teach and learn.
Why should Forth be an "off-beat" language? I think it is
because it has the power to do magic but its users don't fully
realize that is a bad thing.
> MIT is a wonderful place--it must be to offer a course in Structure
> and Interpretation of Computer Programs, using the book by
> Abelson & Sussman, with Scheme as the illustration language.
> (I am pleased to see that my alma mater, Caltech, offers a similar
> course.) Most CS intro courses in the US employ C or C++, although
> some use Java and a few diehards still feature Pascal. AFIK none
> use Basic, and even fewer use Forth.
John McCarthy, while a professor at MIT, started the use of
Lisp and its decedents without a book like Abelson & Sussman and
not as something to teach first year students. The first book on
Lisp I saw at the MIT bookstore was called "The Little Lisper".
It was very simple; hardly fit for a prestigious academic
institution. MIT is a wonderful place because there are so many
people working there to make Lisp and Scheme possible to learn.
The Abelson & Sussman book is online, beautifully typeset, for
everybody to read at http://mitpress.mit.edu/sicp/full-text/book/book.html
A quote from chapter 1,
"Lisp was not the product of a concerted design effort. Instead,
it evolved informally in an experimental manner in response to
users' needs and to pragmatic implementation considerations."
It is bit strange that something as cryptic as Lisp and
Scheme has so much work done to make it accessible, but that is
what it takes. Stranger yet is that something much easier to
understand, like Forth, attracts much less attention in that department.
> So how is a publisher to find a market for intro course materials
> in Forth? Perhaps if some organization pushed it a bit ...
Organization? Publisher? Market? What do these have to do
with computer languages? Publishers don't create markets for
ideas in computing. We don't need a corporate organizations like
IBM to create Fortran and Cobol anymore. Introductory course
materials are created by teachers. Some languages are created by
college professors, like Lisp, Scheme, Pascal and even Basic.
Some languages are created by researchers in industry, like C
and Java. It doesn't make much difference who or where an idea
comes from, its what happens afterward that counts.
> Actually, the tutorials available on the Web, including (blush)
> my own, are perfectly adequate to teach an intro course. And
> they are free. What one lacks is a coherent set of exercises
> and problems. Someone --perhaps someone who wants to see
> a course taught-- should write a set of exercises. I leave the
> task of doing so as an, ahem, exercise. ;-)
Yes, there are nice tutorials for Forth on the web. But by
the time anybody knows how to surf the web they also know C and
Java are computer languages to be learned and things like Scheme
and Forth are safe to ignore. It would be interesting if
computer students could find out about Lisp/Scheme/Logo or Forth
when they first thought about learning programming.
-- Michael Coughlin m-coughlin@comcast.net Cambridge, MA USA
- Next message: John: "J2EE or Java Web Services?"
- Previous message: Ryan Stewart: "Re: sockets and stuff"
- In reply to: Julian V. Noble: "Re: Programming languages for the very young"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|
|