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

Reply via email to