Live data from Hacker News

Oberon (2009)

ignorethecode.net

91–100 of 149 posts

Re: Oberon (2009)

#91
When I started to study computer sciences in Germany in 1991, we used Oberon on X11 terminals during the the initial "Praktische Informatik I" lecture as our first programming language. Oberon being new, the professor said he wanted to make sure that everyone starts under the same conditions and with no pre-knowledge. So we wrote our linked lists, hash tables, trees, sorting algorithms etc. in Oberon.

That time almost all students had a track-record coding on Apple, Commodore or Atari homecomputers and/or had worked with Turbo-Pascal and -C. Because the Oberon system was not very stable nor user friendly, the Oberon environment was met only with little support by the students. For example I remember that the compiler crashed reproducible on certain inputs. There also was no debugger and the editor did not meet expectations.

After finishing the lecture, most students (including) me, never touched Oberon again. But hey, let's re-visit it after 30 years again and see how it feels today.

Re: Oberon (2009)

#92
As I described it to some folks recently, Go can be simply characterised as a slightly stripped version of the Oberon-2 (or Component Pascal) language, recast in a C like syntax, and with a number of small additions.

Removed from Oberon-2: Sets, Type Extension (classful OO scheme)

Added by Go: Maps, Slices, Strings, Interfaces, Channels, Coroutines.

Such that I suggested it is well worth reading the Oberon-2 language report.

As to the coroutines, possibly Oberon-2 had them in its standard module library (as Modulo-2 did)?

Re: Oberon (2009)

#93
post #27

Not only have I heard of Oberon, I've written code for it! The Oberon programming language is a nicer-than-average descendant of Pascal and Modula-2. The compiler was reasonably fast even in the 90s. The UI was strange enough to feel really interesting. As the article mentions, you could type a command anywhere and click it. And the older version I used had tiling windows, although this seems to have changed. But one…

FYI, a flavor of Oberon will also fly to space soon it turns out... https://arxiv.org/abs/1709.03404v1

Interestingly, one of the authors (Felix Winkelmann) created Chicken Scheme and their Oberon compiler appears to be written in it.

Re: Oberon (2009)

#95
post #27

Not only have I heard of Oberon, I've written code for it! The Oberon programming language is a nicer-than-average descendant of Pascal and Modula-2. The compiler was reasonably fast even in the 90s. The UI was strange enough to feel really interesting. As the article mentions, you could type a command anywhere and click it. And the older version I used had tiling windows, although this seems to have changed. But one…

FYI, a flavor of Oberon will also fly to space soon it turns out... https://arxiv.org/abs/1709.03404v1

That's an interesting paper, thanks for the link. Though the resulting language is barely Oberon anymore, since even type extension is removed, not only dynamic memory management (and with it the GC). It seems to have less features than Oberon-0 described in Wirth's compiler book.

Re: Oberon (2009)

#96
post #79

If you want to try out only the Oberon language, you might be interested in oberonc [0] an oberon-07 self-hosting compiler for the JVM. There are other several Oberon implementations for different platforms listed here[1] [0] https://github.com/lboasso/oberonc [1] http://oberon07.com/compilers.xhtml

[1] is not complete; this one is missing: https://github.com/rochus-keller/Oberon/ ;-)

Re: Oberon (2009)

#97
post #92

As I described it to some folks recently, Go can be simply characterised as a slightly stripped version of the Oberon-2 (or Component Pascal) language, recast in a C like syntax, and with a number of small additions. Removed from Oberon-2: Sets, Type Extension (classful OO scheme) Added by Go: Maps, Slices, Strings, Interfaces, Channels, Coroutines. Such that I suggested it is well worth reading the Oberon-2 language…

> Go can be simply characterised as a slightly stripped version of the Oberon-2

Well, not really; there are not much similarities between Oberon and Go besides the receiver syntax of Oberon-2 bound procedures (which was invented by Mössenböck btw) and the fact that both are garbage collected. In your list "removed from Oberon" you should add type inclusion (Go doesn't even have implicit coercion); there is an intersection of keywords and also := appears in Go, but the semantics are rather different; coroutines were defined as an option in the Oakwood guidelines, but by different people than the language authors; I never met an Oberon compiler which implements them.

Re: Oberon (2009)

#98
post #96
post #79

If you want to try out only the Oberon language, you might be interested in oberonc [0] an oberon-07 self-hosting compiler for the JVM. There are other several Oberon implementations for different platforms listed here[1] [0] https://github.com/lboasso/oberonc [1] http://oberon07.com/compilers.xhtml

[1] is not complete; this one is missing: https://github.com/rochus-keller/Oberon/ ;-)

Project Oberon 2013 emulator and RISC compiler in Go: https://github.com/fzipp/oberon https://github.com/fzipp/oberon-compiler

Re: Oberon (2009)

#100
post #92

As I described it to some folks recently, Go can be simply characterised as a slightly stripped version of the Oberon-2 (or Component Pascal) language, recast in a C like syntax, and with a number of small additions. Removed from Oberon-2: Sets, Type Extension (classful OO scheme) Added by Go: Maps, Slices, Strings, Interfaces, Channels, Coroutines. Such that I suggested it is well worth reading the Oberon-2 language…

> Added by Go: Maps, Slices, Strings, Interfaces, Channels, Coroutines.

Also added by Go: Type parameters (generics)

Post reply on HN