[Oberon] Multiple RETURN in a procedure

Andreas Pirklbauer andreas_pirklbauer at yahoo.com
Mon Oct 24 05:42:43 CEST 2022

  > Wirth apparently believed the improvement to the language outweighed
  > the effort of having to rework it for project Oberon 2013 - and he had a.
  > choice I thank him for having the courage of his convictions.

For TextFrames the effort was rather small though. The only place with
multiple returns was a single procedure (procedure Min(i,j) incidentally.).

There were a few LOOP statements with multiple EXITs though (same
problem), e.g. in LocateString, LocateChar, FlipSelecton.

But I totally agree with:

  > I think that the underlying issue is: How do you write substantial 
  > pieces of software based on a changing language?

The fact that backward compatibility in language design was never taken
seriously in the Pascal - Modula - Oberon line of languages created a lot
of legacy code that periodically needed rework and very likely contributed
to the more limited adoption of Oberon (as compared to Pascal).

In industry, a language that is not backward compatible with itself is
bound to face adoption issues.

More information about the Oberon mailing list