Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Reading Niklaus Wirth, one can notice that despite some popularity of Pascal, he is not glad that Oberon (as a "polished" successor of Pascal and Modula) didn't get much popularity. I never did anything in Oberon, but reading the page Oberon For Pascal Developers I really did not like many of the changes as a Delphi/pascal developer, for example

  • forcing the reserved words to be always uppercase
  • making the language case-sensitive
  • getting rid of enumeration types

What do you think about Oberon, is it really "a better Pascal" from your point of view?

share|improve this question

closed as not constructive by gnat, Graham Lee, Walter, TMN, Matthieu Sep 6 '12 at 20:49

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

Oberon seems like a distant echo of the Ada/Pascal era in programming. It may be slightly better than Wirth's original Pascal language, but obviously it is inferior to Turbo Pascal/Delphi. –  mojuba Nov 16 '10 at 9:17
@mojuba, that looks like an answer to me... –  glenatron Nov 16 '10 at 10:22
Wasn't this closed once already? What happened to the edit history? –  Robert Harvey Nov 16 '10 at 19:29
I had a brief fascination with Oberon in my college years. I wish I knew more about it to have an opinion. –  Barry Brown Nov 17 '10 at 18:03
Requiring upper case reserved words would be a deal-breaker for me. I find lower case much easier to read. –  GrandmasterB Nov 17 '10 at 21:18
show 7 more comments

2 Answers

Yes, I would call Oberon a better Pascal. With Oberon, Professor Wirth got to the core of object oriented programming with type extension and procedure variables. I find it elegant that Oberon is a smaller language than Pascal with much more power.

Oberon 2 took the language a step further by binding methods to records.

I do dislike the upper case reserved words. I find the syntax an improvement with the elimination of many begins and ends.

Oberon was used to write a very interesting operating system described in Project Oberon: The Design of an Operating System and Compiler.

share|improve this answer
add comment

It is better, and worse, in various ways:

It is nice to have garbage collection, and facilities for modular and Object Oriented programming. It is a relatively small language; easy to parse, and implement.

The lack of enumerations is a pain (indeed, in the extended Oberon dialect we use, we added them back).

Relative to more modern languages, its minimalism is a bit brutal, and treating strings as arrays of characters in any language is ghastly.

Of course, Pascal has evolved quite a bit too, e.g. see Component Pascal.

share|improve this answer
How do you do type extension on enumerated types in your extended Oberon dialect? Reason I ask: Professor Wirth said he couldn't see a good way to do it, and that's why he removed enumerated types from the language. –  John R. Strohm Nov 17 '10 at 22:40
Actually, I believe that despite its name, Component Pascal is a successor to Oberon, not Pascal (except indirectly, of course). It goes something like Algol-X (never implemented) -> Algol-W -> Pascal -> Modula (never implemented) -> Modula-2 -> Oberon -> (some revisions of Oberon) -> Component Pascal. –  Jörg W Mittag Nov 20 '10 at 15:20
Wirth was a purist; he decided it was better to lose the type safety of enums for extensibility and orthogonality. We write a lot of code that benefits from type checking of enums, where co-incidental value collisions would otherwise introduce subtle errors. In short, since we control both the entire Oberon code base, and the compiler, we do without type extension on enums, in order to prevent a class of extremely irritating program errors. –  grrussel Nov 21 '10 at 19:51
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.