There was very good reason for that battle cry.
Certainly there was. 40 years ago. At that time, most people used
FORTRAN IV or assembler, which do not have ifs or whiles. Most
people learned to program without ever seeing proper control
structures. Programmers not only had to use gotos; they did not have
proper mental models to organize those gotos.
Things changed a little since then.
-- Roberto
Roberto,
It would be nice if you knew the history to which you refer. By 1970,
most business programs were in COBOL, whilc scientific or engineering
programs were in FORTRAN or assembler, though ALGOL was hanging around
in the background and PL/I was being rapidly shoved forward by IBM. By
1974, we had the first of the commercial 4th generation languages like
EzTrieve (Pansopic), that initially had if-then-else/elseif and no
labels, as the only means of controlling what was executed. There were
a lot of "if 1=1" statements in the early code. Even in assembler
(through macros) and COBOL, the GOTO was not entirely necessary, as
both had constructs that did a fair job of eliminating the classical
GOTO. If you wonder how I know, I wrote my first programs in 1966 in
Assembler, FORTRAN, and COBOL, proceeding down though the years to
PL/I, ALGOL, LISP, MAINSAIL, and at least 30 or 40 others. It turns out
that thoughtful programmers have been using proper structure
practically since the beginning of computing, while those who are not
so thoughtful can manage to produce unreadable garbage in almost any
language.
What all this discussion and my own fiddling are telling me about lua
is that it is a compact, powerful, flexible, and largely write-only
language that is sufficiently subtle that I would reeally hate to
maintain anyone else's code that was not written with an explicit and
documented subset of the language. It reminds me of the comment one of
my buddies made about such flexible things...did you ever try to sit in
a flexible chair. With all the dynamism in the language itself and
splits in the language as well as various weirdnesses between
succeeding versions of the language, I would have a hard time
recommending it to anyone writing anything but the most transient code.
Of the functional languages, it is probably the most straightforward
and usable, but that is faint praise, considering the competition.
I wish you luck.
Everett L.(Rett) Williams II