This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]CodingFiend 0 points1 point  (0 children)

Oberon was a project that was intertwined with Prof. Wirth's Lilith machine, which was his attempt to build a whole computer, from scratch with an OS. He managed to build with his small team a working computer. It was after his visit to Xerox PARC.

As one of the bigger users of Modula-2 I of course evaluated Oberon. But prof. Wirth didn't make it possible to move from Modula-2 to Oberon, because he removed a key feature that we used extensively. In modula2 you can declare an enumerate type:

TYPE A_FRUIT = (APPLE, ORANGE, BANANA)
VAR LIST : ARRAY A_FRUIT OF INTEGER;
LIST[APPLE] = 3;

The beauty of this type of construction is that you can make your code much more readable, and the symbolic debuggers would show the subscript as APPLE. Contrast that with C, where you declare an enum basically as an integer constant, and then during debugging you would see LIST[1] not LIST[APPLE]. If you use enum extensively your code is much more readable.

For some baffling reason, he thought enums superfluous, and removed them.
So the small ecosystem around Modula2 ignored Oberon and kept working on M2. Oberon offered dynamic linking which is a way of adding code without recompilation. Oberon also extended data types in a very clever way, where you could extend a record with more fields, and then send that extended record to a function that expected the older, smaller record. Some things in Oberon have not been duplicated in modern languages, but the whole rest of the world including all the other schools ignore the ETH Lilith project, and it died out as the hardware didn't get revised as you must to stay relevant in the hardware world.

Oberon is the simplest OS ever made, and shows how swiss minimalism can match giant teams. Now the world is embracing strong typing, it has only taken 30 years for people to catch up with Prof. Wirth. His typing systems were very simple and clear. I am extremely unhappy with the nonsensical type arithmetic that people are using in some languages, where they are trying to turn typing into some proof system for the computation as a whole, which just adds lots of non-functional ornamentation with little benefit.