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?

  • 3
    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
  • 2
    @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? 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. Nov 17 '10 at 18:03
  • 1
    Requiring upper case reserved words would be a deal-breaker for me. I find lower case much easier to read. Nov 17 '10 at 21:18

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.

  • 1
    Agree, Oberon is better. The problem with Oberon is that it came too late. Many others improved upon Fortran, Basic, Pascal, C, so Oberon has severe competitors. Then, the language is only part of the solution. The 'best' language has good libraries, or an infrastructure. Javascript is great because of the tie to web applications. Then, react is even greater, building on JS. Who cares about language simplicity? We want simple objects like react components to build web apps.
    – Roland
    Feb 24 '20 at 13:59

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.

  • 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. Nov 17 '10 at 22:40
  • 2
    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. Nov 20 '10 at 15:20
  • 2
    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

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