Live data from Hacker News

Active Oberon Language Report Update 2019

cas.inf.ethz.ch

11–20 of 35 posts

Re: Active Oberon Language Report Update 2019

#12
post #6

(Only tangentially related to the OP, but what the hell.) Does anyone here have an experience programming in Oberon-07? One of the most interesting features of the language for me is the fact that it doesn't have a BREAK statement. Which means that one must use a form of WHILE for linear searches. Probably to force people to think in terms of structured programming instead of the logic of “hidden GOTOs”. Does it ever…

It has LOOP and EXIT, I remember that turned out to be the most used repetition construct when I was using (IIRC) JPI Modula-2.

For me, it was so easy to think about loops that way, with an EXIT/condition in the middle of the loop body.

Re: Active Oberon Language Report Update 2019

#13
post #12
post #6

(Only tangentially related to the OP, but what the hell.) Does anyone here have an experience programming in Oberon-07? One of the most interesting features of the language for me is the fact that it doesn't have a BREAK statement. Which means that one must use a form of WHILE for linear searches. Probably to force people to think in terms of structured programming instead of the logic of “hidden GOTOs”. Does it ever…

It has LOOP and EXIT, I remember that turned out to be the most used repetition construct when I was using (IIRC) JPI Modula-2. For me, it was so easy to think about loops that way, with an EXIT/condition in the middle of the loop body.

You're probably thinking of the original Oberon. Wirth has removed both LOOP and EXIT from Oberon-07. See here: http://people.inf.ethz.ch/wirth/Oberon/Oberon07.pdf.

Re: Active Oberon Language Report Update 2019

#14
post #2

It’s the second time i see this language mentioned on HN. Reading about it made me feel it was coming straight from the 80s, and i must say i didn’t find anything special in its feature set (but i didn’t spend a lot of time). Could anyone provide more info on what makes this language interesting ?

Have you compared it to Go?

Re: Active Oberon Language Report Update 2019

#15
post #6

(Only tangentially related to the OP, but what the hell.) Does anyone here have an experience programming in Oberon-07? One of the most interesting features of the language for me is the fact that it doesn't have a BREAK statement. Which means that one must use a form of WHILE for linear searches. Probably to force people to think in terms of structured programming instead of the logic of “hidden GOTOs”. Does it ever…

You can easily emulate break with conditional variable.

Re: Active Oberon Language Report Update 2019

#16

Compared to the Oberon in http://www.projectoberon.com this is like Oberon++. I mean, it's still a pretty bare bones language, but it has added quite a few fancy features.

Right. The whole point of Oberon is being as simple as possible. If you need all the fancy stuff introduced with Oberon-2 or Active Oberon (which are not the same lange as the one designed by Wirth) then there are better alternatives, e.g. https://en.wikipedia.org/wiki/Object_Pascal, or Java, or C#.

Re: Active Oberon Language Report Update 2019

#17

I'm curious, would you use it in a business setting today? What's the killer feature?

No. It's not designed for that. It was designed as a minimal lanuage focussing at the bare essentials required to implement a minimal operating system with graphical user interface.

Re: Active Oberon Language Report Update 2019

#18
post #6

(Only tangentially related to the OP, but what the hell.) Does anyone here have an experience programming in Oberon-07? One of the most interesting features of the language for me is the fact that it doesn't have a BREAK statement. Which means that one must use a form of WHILE for linear searches. Probably to force people to think in terms of structured programming instead of the logic of “hidden GOTOs”. Does it ever…

You can easily emulate break with conditional variable.

Of course, but wouldn't that effectively defeat the purpose of removing BREAK/EXIT in the first place? With something like:

  WHILE ~(lastIteration) & ~(Found(haystackPart, Needle)) DO
    (* Advance the haystackPart.  *)
  END;
I can at least say that after the loop if lastIteration is true, then the needle wasn't found in the haystack. While something like

  WHILE ~(found) DO
    (* Stuff.  *)
  END;
Conveys next to no information. To say nothing about the fact that the body of the loop will probably be full of:

  IF ~found THEN
    (* Stuff.  *)
  END

Re: Active Oberon Language Report Update 2019

#19
post #6

(Only tangentially related to the OP, but what the hell.) Does anyone here have an experience programming in Oberon-07? One of the most interesting features of the language for me is the fact that it doesn't have a BREAK statement. Which means that one must use a form of WHILE for linear searches. Probably to force people to think in terms of structured programming instead of the logic of “hidden GOTOs”. Does it ever…

An elegant solution (if applicable) is placing a deliberate sentinel value at the end of your data before looping.

https://en.m.wikipedia.org/wiki/Sentinel_value

Whereas usually loops have 2 tests for checking if the while loop should end (end-of-data-reached? or break-condition-is-true?) you only need to check for the latter.

This is a very Oberonesque programming optimization.

Re: Active Oberon Language Report Update 2019

#20
post #2

It’s the second time i see this language mentioned on HN. Reading about it made me feel it was coming straight from the 80s, and i must say i didn’t find anything special in its feature set (but i didn’t spend a lot of time). Could anyone provide more info on what makes this language interesting ?

The language in itself is just a member of the Pascal/Modula family stripped to the minimum while still supporting modules and some form of polymorphic objects. What is interesting is what Wirth et al does with it in the Oberon book ( http://www.projectoberon.com ): building a complete computing environment (including a kernel, compiler and GUI) running on their own CPU. All in 9000 lines of Oberon code, no C or anyt…

Nim mentions that Oberon is one of its inspirations
Post reply on HN