🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

1 total messages Started by Warren Vogt Tue, 19 Apr 1994 11:02
sluggish interpreters
#3946
Author: Warren Vogt
Date: Tue, 19 Apr 1994 11:02
94 lines
7017 bytes
The recent posts on this topic embolden me to reminisce on a non-APL experience
        Since the book "Computer Languages: A Guide for the Perplexed" by Naomi
Baron (New York: Anchor Press/Doubleday, 1986) piqued my curiosity, I have made
it my hobby to study many unrelated computer languages. Before that time I only
knew Fortran and especially Basic, which I frankly like! In the course of the
last seven years, I have been winding my way up a Tower of Babel of CS lingos.
(And wasting a hell of a lot of time in the process!)
        Naturally, I use public domain versions. I don't complain about their
performance, only about the lack of learning material, libraries, annotations.
This results in so much time-loss that someone with a good income would actual-
ly save money & time by buying a well-equipped professional version.
        But speaking of interpreters' slowness, I once had an appalling ex-
perience with a Prolog interpreter. It has a reputation for extraordinary slow-
ness, even among PD Prologs. I wonder if it is DELIBERATELY slowed down, so as
to encourage you to buy an upscale registered version? I took a short typically
recursive Prolog program out of Clocksin & Mellishes' text-book, and put it in.
Well, it was optimized to be slow! Because between each successive iteration,
when more developed results were output, the time interval was doubled! In min:
1, 2, 4, 8, 16, 32, 64 ... . Not exactly, but close to that. I quit after 45 '.
The machine only had an 8086, but I would be surprised if other Prologs do bet-
ter than 3X faster: still intolerably too slow for serious use. I fear the mar-
ket will provide database products with crude "inference engines" but without
all of Prolog's subtlety and and discrimination.
        I think Prolog is the best language for expert systems and (soft) "AI"
that exists. I don't blame the Japanese for preferring it to Lisp in their "5th
Generation" project. (How come we never hear about it anymore?) I recently be-
gan to study Lisp, and I can't help associating it with an obsolete model of AI
to wit, the "production-system" one. As a beginner, I find both it and Prolog
difficult; not for the same reasons, though list-processing is (for me) the
hardest part of Prolog. Lisp is good for symbolic math, I suppose, (witness Re-
duce & Macsyma) but "AutoLisp" is the only reason I can think of that people
still use it with eagerness. I have no idea about its speed performance, com-
pared to Prolog, Basic, etc. Nor do I dislike it on purely "aesthetic" grounds.
        I have also dabbled in Forth. Despite its interpreted appearance, it is
supposed to be very fast because of its "threaded code" architecture. I have
done no speed tests to verify this, and admit that I still find Forth difficult
again for reasons unique to itself. I fear that it will remain a cult language
because "words" and implementations will never be adequately standardized. Its
merits were more visible at an earlier time, when memory was scarce and expen-
sive, CRT's simple, and CPU's slow. I'm sure Forth fans'll disagree vehemently.
They are even more convinced they have the all-time perfect language than we
APL-ers are!
        I have dipped into Smalltalk. I can't praise it too highly, and I can
easily imagine using it for both AI (expert systems) and for mathematical man-
ipulation, where variety of techniques rather than quantity of data is desired:
For example, solving several different "classes" of non-simultaneous differen-
tial equations. Compared to the others, it is refreshingly easy, at least in
the version described by Tim Budd's book "Little Smalltalk". It will be a pity
if its slowness or fragility (?) make it unused for serious applications.
        I spent a few years studying everything I could about the VM/CMS opera-
ting system, REXX, Xedit and 370 assembler. It took me 3X longer than it ought
to have because a complete set of the indispensable manuals, like the System
Programmer's Guide, are missing from the public area, and nobody offers me sage
advice. This was of course a rash waste of time, because no one will hire me to
be a CMS system programmer, irrespective of my ability.
        I have looked at SNOBOL4, but not ICON yet. I find SNOBOL amusing, but
can't imagine how it (or ICON for that matter) will survive things like Word-
Perfect macros. I've spent only a little time on the two, so no regrets.
        APL is perhaps the most recent interpreter to bewitch me, after I put
aside my initial prejudices towards it. I used to look askance at a language
that needed so many funny characters and a special terminal. After all, don't
Basic and C accomplish whatever thing with the alphabet and common punctuation
characters? [sic] I came to APL in late '92, not long after I began to study
calculus in a serious way. (I am completely self-taught in whatever math & CS I
know.) APL struck me as a sensible choice, because I feel it is the best lang-
uage one can use to accompany the study of pure mathematics. Since I am still a
beginner, more or less, and see no need to use large quantities of data even in
linear algebra studies, I am satisfied with it, despite mention of its apparent
shortcomings on this list. It doesn't smack of the dilettante's past-time as
the others do, because I associate it with the useful occupation of learning
real mathematics, not just playing around with "I/O routines & data structures"
I therefore continue to believe in APL and hope it surmounts the snags debated.
I've barely started to learn J, but -- surprise! -- I prefer glyphs to marks.
        I've browsed books on C. For me the ways of defining, naming, referring
to structs, unions and the members thereof is the hardest part about it. But
knowing how to link C code and use libraries with sagacity also daunts me. I
will not learn C until I have a good need for it.

        My God! what languages does he NOT like? you are probably asking. Well,
I have no use for COBOL and PL/1; I will never learn them, I hope. I want to
avoid ADA at all costs. I am not overly fond of Turing. And in spite of my un-
feigned admiration of Nicklaus Wirth's indispensable contributions, I take less
pleasure in Pascal than I do in some of the earlier named languages, even Lisp.
I might like Modula-2 and Oberon more than Pascal, but I'm not betting on it. I
find them rather dull and spare, despite my theoretical approval of them.
Ironically, the languages I spend the most time on are difficult for me: Prolog
        Well-known spreadsheets, database systems, CASE stuff interests me not.
Book-keeper & functionary stuff. Maybe if I had tried them out on a big machine
with Windows, I wouldn't be so contemptuous of them.
        I do know how to do Intel 8086 assembly programming. But I wish the PC
had been designed to take the Motorola 68000 instead.
        Now where were we? Oh yes, we were talking about the liabilities of u-
sing interpreters when they run slower than machine code from compilers...  :-)

Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads