Steven D'Aprano wrote:
On Fri, 17 Apr 2009 14:00:18 -0700, Mensanator wrote:
...(snip)
Pascal has GOTOs. People rarely used them, because even in the 1970s and
80s they knew that unstructured gotos to arbitrary places was a terrible
idea.
Even in primarily assembly only days that was true.
GOTO in Pascal required that you defined a label in your code, then you
could jump to that label. You can't jump to arbitrary parts of the
program, only within the current procedure.
===================================
"...only within the current procedure." That was one of the "why
Pascal didn't hang on" as long as it might have. Another was it's COBAL
structure in defining things. Just like today - the more typing the more
errors, the longer to 'in service'. Imitating Pascal's short jump only
was Intel's lack of actual popularity among the Pro's of the day. Zilog
had the better cpu, but Intel teamed with Gates, shoved interrupt only
on everyone and the rest is history. In fairness to Pascal, the
enforcement of no "goto" helped force the mass of new programmers
(desperately needed now that 'desktops' were here) to think about their
strategy. So did Ashton Tate's dBASE, which probably had more lines of
code world wide in the first two years of its existence than any other
(baring assembly) programming language in equal time. And no internet to
help it. Every one who speaks bad of assembly has never had the
satisfaction of truly feeling the power. ("'cause they got no proper
background" - says the old man) The power of assembly is simple - if
the machine can do it, it's allowed. No need to worry about "if the
compiler will allow" or "work around that compiler bug" or "Oops - they
changed the ...(compiler or interpreter) and now we start over". The
average programmer, who takes a moment to think it out, can out optimize
all but the best commercial compilers. The meticulous individual can
usually match or best the best commercials with fewer 'iterations' of
review when using assembly. Since one is already looking at the
registers and addresses, self optimization is simple.
I still have my Z80 pre-assembler. It allows Do, While, For and Loop
along with If..Then..Else (and/or Elseif) statements in assembly
programming. Z80 had both mandatory and full conditional call, jump,
return ... anywhere to/from in memory. Intel's conditional jump forward
was limited to 126 BYTES. Even with megabytes of memory. Worse than Pascal.
"full conditional" - On Zero, plus, minus, overflow, underflow and some
I don't remember. Most were 1byte commands. (Destination had to be
added, but not return - the microcode took care of that.)
Oh - and TRUE = 0, FALSE != 0 (Zero is good - no error)
VisualBasic IS Microsoft's blend of Python and Basic. IMHO a bad blend.
I am currently in the process of "converting" (re-writing is a better
term) the key VB programs to Python/Tkinter for the department. The
primary vendor finally got smart and told us VB wasn't going to be in
their next release. Python is in, VB is out.
Everybody jump up and shout HURRAH! :)
Steve
--
http://mail.python.org/mailman/listinfo/python-list