There are few things in this business that are more fun than designing a new computer language, and very latest is Ada - the Department of Defence's new supertoy. Ada, as you know, has been designed to replace outmoded and obsolete languages such as COBOL and FORTRAN.
The problem is that this cycle takes 20 to 30 years and doesn't start until we're really convinced present languages are no good. We can short-circuit this process by starting Ada's replacement right now. Then, by the time we decide Ada is obsolete, its replacement will be ready.
The new generation of language designers has taken to naming its brainchildren after real people rather than resorting to the usual acronyms. Pascal is named after the first person to build calculating machine and Ada is named after the first computer programmer. As our namesake, we chose Charles Babbage, who died in poverty while trying to finish building the first computer. The new language is named after the first systems designer to go over budget and behind schedule.
Babbage is based on language elements that were discovered after Ada was completed. For instance, C.A.R. Hoare, in his 1980 ACM 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 other way is to make it so complicated that there are no obvious deficiencies." The designers of Babbage chose the 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 market-place.
Like Pascal, Ada uses "strong typing" to avoid errors caused by mixing data types. The designers of Babbade advocate "good typing" to avoid errors caused by misspelling the words in your program. Later versions of Babbage will also allow "touch typing", which will fill a long-felt need.
A hotly contested issue among language designers is the method for passing parameters to subfunctions. Some advocate "call by name", others prefer "call by value". Babbage uses a new method - "call by telephone". This is especially effective for long distance parameter passing.
Ada stresses the concept of software portability. Babbage encourages hardware portability. After all, what good is computer if you can't take it with you?
It is good sign if your language is sponsored by the government. COBOL has government backing. Ada is being funded by Department of Defence. After much negogiation, Department of Sanitation has agreed to sponsor Babbage.
No subsets of Ada are allowed. Babbage is just the opposite. None of Babbage is defined except its extensibility - each user must define his own version. To end the debate of large language versus small, Babbage allows each user to make the language any size he wants. Babbage is ideal language for "me" generation. The examples that follow will give some idea of whar Babbage looks like. Structured languages banned GOTOs and multiway conditional branches by replacing them with the simplier IF-THEN-ELSE structure. Babbage has a number of new conditional statements that act like termites in the structure of your program:
For years, programming languages have used "FOR", "DO UNTIL", "DO WHILE" etc. to mean "LOOP". Continuing this trend Babbage offers these loop statements:
Every self-respecting structured language has a case statement to implement multiway branching. ALGOL offers an indexed case statement and Pascal has a labeled case statement. Not much a choice. Babbage offers a variety of case statements:
The Babbage Language Design Group is continuously evaluating new features that will keep its users from reaching any level of effectiveness. For instance, Babbage's designers are now considering the ALMOST EQUALS SIGN, used for camparing two floating point numbers. This new feature "takes worry out to being close".
No language, no matter how bad, can stand on it's own. We need really state-of-the-art operating system to support Babbage. After trying several commercial systems, we decided to write a "virtual" operating system. Everybody has a virtual memory operating system, so we decided to try something a little different. Our new operating system is called the Virtual Time Operating System (VTOS). While virtual memory systems make the computer's memory the virtual resource, VTOS does the same thing with cpu processing time.
The result is that the computer can run unlimited number of jobs at the same time. Like the virtual memory system, which actually keeps part of the memory on disk, VTOS has to play tricks to achieve its goals. Although all of your jobs seems to be running right now, some of them are actually running next week.
As you see, Babbage is still in its infancy. The Babbage Language Design Group is seeking suggestions for this powerful new language and as the sole member of this group (all applications for membership will be accepted), I call on the data processing community for help in making this dream a reality.
Jamaica, New York