5 ms·
Oberon and its siblings are awesome. I believe that to fully appreciate Oberon & friends, you need to have a bit of context on its creation and usage. Oberon i
by soapdog 10y ago
Oberon and its siblings are awesome. I believe that to fully appreciate Oberon & friends, you need to have a bit of context on its creation and usage.
Oberon is a language by Niklaus Wirth, so it is not a C-like language, it is a different branch of the Algol family, it is the Pascal branch were we have Pascal, Modula and Oberon (in their different versions).
This family of languages are very easy to port and to construct performant compilers. They are not only easy to learn from a student point of view but also can be used for real useful work.
In its home university in Zurich, they created the oberon system which is a computer hardware, operating system, programming language and userland applications solution that they used all over the university. This was done when GUIs and the Mac were in its starting years (circa 1987).
Sometimes I feel that Pascal and its successors are not fully appreciated by our world that grew too enamored with C. There were some awesome ideas and solutions created there in Switzerland at that time when create a full package of hardware and software was something that people still tried to do.
If you're interested in exploring things further here are some links:
https://en.wikipedia.org/wiki/Oberon_(operating_system) https://en.wikipedia.org/wiki/Oberon_(operating_system)
https://schierlm.github.io/OberonEmulator/ https://schierlm.github.io/OberonEmulator/
http://www.projectoberon.com/ http://www.projectoberon.com/
- eudox 10y ago>Sometimes I feel that Pascal and its successors are not fully appreciated by our world that grew too enamored with C. There were some awesome ideas and solutions created there in Switzerland at that time when create a full package of hardware and software was something that people still tried to do. Having been taught Modula-2 in Programming 102 class in college (this was a year ago), I disagree completely. Software development has this camp with a contrarian, 'this was done at Xeroc PARC' mentality where we're using terrible computers because Smalltalk or the Lisp machine or Oberon failed and nasty Unix took over. But when you actually have to use these languages, well, they're terrible. They're C, with all its flaws, but a more indented/structured syntax. Pascal, Modula, and Oberon have no lessons that have not been learnt by some or another language, and done better.
- _ph_ 10y agoNo, they are not C with all its flaws. They offer strict type checking, preventing a lot of constructs which would have unintended consequences when passing a C compiler. Modula introduced a proper module concept, without the need for header files without their issues, allowing for fast separate compilation of modules. Go picks up a lot of these ideas and brings them to a modern language.
- vidarh 10y ago> They're C, with all its flaws, but a more indented/structured syntax. There are many reasons to criticise aspects of Modula-2 or Oberon, but saying "they're C, with all its flaws" totally misses the mark. The entire language family belongs to a very different tradition. Wirth spent most of his career removing features, and adding much less than he removed. For good reason: Oberon as a language contains the bare minimum that his experience with systems-engineering (the OS and all applications for the Oberon systems that ran ETH Zurich for many years were written in Oberon itself) showed that they needed. This went down to the compiler: Unlike languages like C, Oberon is designed to be easy to compile. The grammar is positively tiny - it fits on 1-2 pages of A4 in a readable font, with comments. It can parsed and compiled in a single pass with a clear separation of the lexical scanner and parser, without any hacks or ambiguity, and I believe only with a single token lookahead. C isn't by any means a horrible language to compile compared to most newer languages, but compared to Oberon it's a monstrosity. This design philosophy follows through from the compiler through the support libraries, through the OS. It's austere, yes (the Oberon-07 language report is 17 pages...), and if you don't like austere languages, you won't like Oberon. But that too is a feature that separates it from C. As someone else pointed out, Go is a much better comparison than C. Oberon is garbage collected, for example, which instantly put it very much in a different "camp" to C back when it was launched, in an era where the thought of using garbage collection for a systems programming language was seen as something only the weird dynamic typing lisp and smalltalk people would consider.
- Avshalom 10y agoWhat it comes down to is that Wirth has always understood the difference between simple and jury-rigged in a way that Pike and the Unix crew never have.
- jkleiser 10y agoThanks for the links!