340 lines
13 KiB
Plaintext
340 lines
13 KiB
Plaintext
|
||
=============================================================================
|
||
Humorous Tidbits #6:
|
||
Computer Languages
|
||
From The Enforcer & friends
|
||
=============================================================================
|
||
|
||
Babbage - The Language of the Future
|
||
|
||
Babbage is based on language elements that were discovered after the design
|
||
of ADA was completed. For instance, C. A. R. Hare, in his 1980 Turing Award
|
||
lecture, told of two ways of constructing a software design
|
||
"One way is to make it so simple that there are obviously no deficiencies
|
||
and the other way is to make it so complicated that there are no obvious
|
||
deficiencies."
|
||
|
||
The designers of Babbage have chosen a third alternative - a language
|
||
that has only obvious deficiencies. Babbage programs are so unreliable
|
||
that maintenance can begin before system integration is completed. This
|
||
guarantees a steady increase in the DP job marketplace.
|
||
|
||
Structured languages banned GOTOs and multiway conditional branches by
|
||
replacing them with the simpler IF-THEN-ELSE structure. Babbage has a
|
||
number of new conditional statements that act like termites in the
|
||
structure of your program.
|
||
|
||
WhatIf - Used in simulation. Branches before evaluating test
|
||
______ conditions.
|
||
|
||
OrElse - Conditional threat as in : "Add these two numbers
|
||
______ OR ELSE !"
|
||
|
||
WhyNot - Executes the code that follows in a devil-may-care
|
||
______ Fashion.
|
||
|
||
WhoElse - Used for polling during I/O operations.
|
||
_______
|
||
|
||
Elsewhere - This is where your program really is when you think
|
||
_______ its here.
|
||
|
||
GoingGoingGone - For writing unstructured programs. Takes a random
|
||
______________ branch to another part of your program.
|
||
Does the work of 10 GOTOs.
|
||
|
||
|
||
For years, programming languages have used "For", "Do Until",
|
||
"Do While", etc. to mean "loop". Continuing with this trend,
|
||
Babbage offers the following loop statements :
|
||
|
||
|
||
Don't Do While Not - This loop is not executed if the test condition
|
||
__________________ is not false (or if it's Friday afternoon) .
|
||
|
||
Didn't Do - The loop executes once and hides all traces.
|
||
_________
|
||
|
||
Can't Do - The looped is pooped.
|
||
________
|
||
|
||
Won't Do - The CPU halts because it doesn't like the code inside
|
||
________ the loop. Execution can be resumed by typing "May I"
|
||
at the console.
|
||
|
||
Might Do - Depends on how the CPU is feeling. Executed if the CPU is
|
||
________ "up", not executed if the CPU is "down", or if it feelings
|
||
are hurt.
|
||
|
||
Do Unto Others - Used to write the main loop for timesharing systems
|
||
______________ so that they will antagonize all users in a uniform
|
||
manner.
|
||
|
||
DOWAH - Used to write timing loops for computer-generated music.
|
||
_____
|
||
|
||
|
||
Every self-respecting structured language has a case statement to
|
||
implement multiway branching.Algol offers an indexed case statement
|
||
and Pascal has a labelled case statement. Not much of a choice.
|
||
Babbage offer a variety of case statements :
|
||
|
||
|
||
Just-In-Case STMT - For handling afterthoughts and fudge factors.
|
||
_________________ Allows you to multiply by zero to correct for
|
||
accidentally dividing by zero.
|
||
|
||
The Brief Case STMT - To encourage portable software.
|
||
___________________
|
||
|
||
The Open & Shut Case STMT - No proof of correctness is necessary
|
||
_________________________
|
||
|
||
The In Any Case STMT - This one always works.
|
||
____________________
|
||
|
||
The Hopeless Case STMT - This one never works.
|
||
______________________
|
||
|
||
The Basket Case STMT - A really hopeless case.
|
||
____________________
|
||
|
||
The Babbage Language Design Group is continuously evaluating
|
||
new features that will keep it users from reaching any level of
|
||
effectiveness. For instance, Babbage's designers are now considering the
|
||
Almost Equals Sign used for comparing two floating point numbers. This new
|
||
feature "takes the worry out of even being close".
|
||
|
||
|
||
|
||
NEW LANGUAGES COMPETE WITH APL
|
||
|
||
A Usually Reliable Source
|
||
Digital Equipment Corporation
|
||
Somewhere in New England
|
||
|
||
APL, BASIC, FORTRAN, COBOL,... these programming languages are well
|
||
known and (more or less) well loved throughout the computer industry.
|
||
There are numerous other languages, however, that are less well known
|
||
yet still have ardent devotees. In fact, these little-known languages
|
||
generally have the most fanatic admirers. For those who wish to know
|
||
more about these obscure languages -- and why they are obscure -- I
|
||
present the following catalog.
|
||
|
||
|
||
SIMPLE
|
||
|
||
SIMPLE is an acronym for Sheer Idiot's Monopurpose Programming
|
||
Linguistic Environment. This language, developed at Hanover College
|
||
for Technological Misfits, was designed to make it impossible to write
|
||
code with errors in it. The statements are, therefore, confined to
|
||
BEGIN, END, and STOP. No matter how you arrange the statements, you
|
||
can't make a syntax error.
|
||
|
||
Programs written in SIMPLE do nothing useful. They thus achieve the
|
||
results of programs written in other languages without the tedious,
|
||
frustrating process of testing and debugging.
|
||
|
||
|
||
SLOBOL
|
||
|
||
SLOBOL is best known for the speed, or lack of it, of its compiler.
|
||
Although many compilers allow you to take a coffee break while they
|
||
compile, SLOBOL compilers allow you to travel to Bolivia to pick the
|
||
coffee. Forty-three programmers are known to have died of boredom
|
||
sitting at their terminals while waiting for a SLOBOL program to
|
||
compile.
|
||
|
||
|
||
VALGOL
|
||
|
||
From its modest beginnings in Southern California's San Fernando
|
||
Valley, VALGOL is enjoying a dramatic surge of popularity across the
|
||
industry.
|
||
|
||
VALGOL commands include REALLY, LIKE, WELL, and Y*KNOW. Variables
|
||
are assigned with the =LIKE and =TOTALLY operators. Other operators
|
||
include the California Booleans, FERSURE and NOWAY. Repetitions of
|
||
code are handled in FOR - SURE loops. Here is a sample VALGOL program:
|
||
|
||
LIKE Y*KNOW (I MEAN) START
|
||
IF PIZZA =LIKE BITCHEN AND
|
||
B =LIKE TUBULAR AND
|
||
C =LIKE GRODY**MAX
|
||
THEN
|
||
FOR I =LIKE 1 TO OH MAYBE 100
|
||
DO WAH - (DITTY**2)
|
||
BARF(I) =TOTALLY GROSS(OUT)
|
||
SURE
|
||
LIKE BAG THIS PROBLEM
|
||
REALLY
|
||
LIKE TOTALLY(Y*KNOW)
|
||
|
||
VALGOL is characterized by its unfriendly error messages. For example,
|
||
when the user makes a syntax error, the interpreter displays the
|
||
message:
|
||
|
||
GAG ME WITH A SPOON!
|
||
|
||
|
||
LAIDBACK
|
||
|
||
Historically, VALGOL is a derivative of LAIDBACK, which was developed
|
||
at the (now defunct) Marin County Center for T'ai Chi, Mellowness, and
|
||
Computer Programming, as an alternative to the intense atmosphere in
|
||
nearby Silicon Valley.
|
||
|
||
The center was ideal for programmers who liked to soak in hot tubs
|
||
while they worked. Unfortunately, few programmers could survive there
|
||
for long, since the center outlawed pizza and RC Cola in favor of bean
|
||
curd and Perrier.
|
||
|
||
Many mourn the demise of LAIDBACK because of its reputation as a
|
||
gentle and nonthreatening language. For example, LAIDBACK responded to
|
||
syntax errors with the message:
|
||
|
||
SORRY MAN, I CAN'T DEAL BEHIND THAT.
|
||
|
||
|
||
SARTRE
|
||
|
||
Named after the late existential philosopher, SARTRE is an extremely
|
||
unstructured language. Statements in SARTRE have no purpose; they just
|
||
are. Thus SARTRE programs are left to define their own functions.
|
||
SARTRE programmers tend to be boring and depressed and are no fun at
|
||
parties.
|
||
|
||
|
||
FIFTH
|
||
|
||
FIFTH is a precision mathematical language in which the data types
|
||
refer to quantity. The data types range from CC, OUNCE, SHOT, and
|
||
JIGGER to FIFTH (hence the name of the language), LITER, MAGNUM, and
|
||
BLOTTO. Commands refer to ingredients such as CHABLIS, CHARDONNAY,
|
||
CABERNET, GIN, VERMOUTH, VODKA, SCOTCH, BOURBON, CANADIAN, and
|
||
WHATEVERSAROUND.
|
||
|
||
The many versions of the FIFTH language reflect the sophistication
|
||
and financial status of its users. Commands in the ELITE dialect
|
||
include VSOP, LAFITE, and WAITER'S(RECOMMENDATION). The GUTTER
|
||
dialect instead has commands for THUNDERBIRD, RIPPLE, and HOUSE(RED).
|
||
The GUTTER dialect is a particular favorite of frustrated FORTH
|
||
programmers who end up using this language.
|
||
|
||
|
||
C-
|
||
|
||
This language was named for the grade received by its creator when he
|
||
submitted it as a project in a graduate programming class. C- is best
|
||
described as a "low-level" programming language. In general, the
|
||
langauge requires more C- statements than machine-code instructions
|
||
to execute a given task. In this respect it is very similar to COBOL.
|
||
|
||
|
||
LITHP
|
||
|
||
This otherwise unremarkable language is distinguished by the absence
|
||
of an "S" in its character set. Programmers must substitute "TH".
|
||
LITHP is said to be useful in prothething lithtth.
|
||
|
||
|
||
DOGO
|
||
|
||
Developed at the Massachusetts Institute of Obedience Training, DOGO
|
||
heralds a new era of computer-literate pets. DOGO commands include
|
||
SIT, STAY, HEEL, and ROLL OVER. An innovative feature of DOGO is
|
||
"puppy graphics", a small cocker spaniel that occasionally leaves
|
||
deposits as he travels across the screen.
|
||
|
||
|
||
|
||
Here are some thoughts from Dijkstra article "How Do We Tell Truths that
|
||
Might Hurt?" in his book "Selected Writings on Computing" (Springer
|
||
Verlag, 1982):
|
||
|
||
FORTRAN, "the infantile disorder", by now nearly 20 years old, is
|
||
hopelessly inadequate for whatever computer application you have in mind
|
||
today: it is now too clumsy, too risky, and too expensive to use.
|
||
|
||
PL/I --"the fatal disease"--belongs more to the problem set than to the
|
||
solution set.
|
||
|
||
It is practically impossible to teach good programming to students that
|
||
have had a prior exposure to BASIC: as potential programmers they are
|
||
mentally mutilated beyond hope or regeneration.
|
||
|
||
The use of COBOL cripples the mind; its teaching should, therefore, be
|
||
regarded as a criminal offense.
|
||
|
||
APL is a mistake, carried through to perfection. It is the language of
|
||
the future for the programming techniques of the past:it creates a new
|
||
generation of coding bums.
|
||
|
||
The problems of business administration in general and database
|
||
management in particular are much too difficult for people that think in
|
||
IBMerese, compounded with sloppy English.
|
||
|
||
About the use of language: it is impossible to sharpen a pencil with a
|
||
blunt axe. It is equally vain to try to do it with ten blunt axes
|
||
instead.
|
||
|
||
We can found no scientific discipline, nor a healthy profession, on the
|
||
technical mistakes of the Department of Defense and, mainly, one
|
||
computer manufacturer.
|
||
|
||
The use of anthropomorphic terminology when dealing with computing
|
||
systems is a symptom of professional immaturity.
|
||
|
||
In the good old days physicists repeated each other's experiments, just
|
||
to be sure. Today they stick to FORTRAN, so that they can share each
|
||
other's programs, bugs included.
|
||
|
||
|
||
3 Biggest Software Lies:
|
||
- The program's fully tested and bugfree.
|
||
- We're working on the documentation.
|
||
- Of course we can modify it.
|
||
3 Biggest Computer Room Lies:
|
||
- As long as you remember to 'SAVE' your input, you'll never lose
|
||
any files.
|
||
- We run the stuff through as fast as it comes in the door.
|
||
- The new machines on order.
|
||
3 Biggest Large Company Lies:
|
||
- We have an entrepreneurial spirit here.
|
||
- People are our greatest resource.
|
||
- We say 'let the marketplace decide'.
|
||
3 Biggest Small Company Lies:
|
||
- We have an entrepreneurial spirit here.
|
||
- The boss is just one of the guys.
|
||
- Staying small is a conscious decision.
|
||
3 Biggest Marketing Lies:
|
||
- Immediate delivery?...No problem.
|
||
- We treat every customer as if they were our most important.
|
||
- We're going out to lunch to talk business.
|
||
3 Biggest Engineering Professor's Lies:
|
||
- Some day this course will come in handy.
|
||
- These tests are more trouble for me than they are for you.
|
||
- This is the way they do it in industry.
|
||
3 Biggest Executive Lies:
|
||
- Money...it's just a score card.
|
||
- If it were up to me, there'd be no assigned parking spaces.
|
||
- You have to twist my arm to get me to go on a business trip.
|
||
3 Biggest Hardware Lies:
|
||
- We always design for testablilty.
|
||
- It worked fine on the proto board.
|
||
- That would be much easier to implement in software.
|
||
|
||
|
||
|
||
THREE PROPOSITIONS
|
||
------------------
|
||
|
||
1. Software engineering is like looking for a black cat in a dark room.
|
||
2. Systems engineering is like looking for a black cat in a dark
|
||
room in which there is no cat.
|
||
3. Knowledge engineering is like looking for a black cat in a dark
|
||
room where there is no cat and someone yells, "I got it!".
|
||
|
||
|
||
|