Live data from Hacker News

Modula-2 and Oberon (2007) [pdf]

citeseerx.ist.psu.edu

31–40 of 56 posts

Re: Modula-2 and Oberon (2007) [pdf]

#32
post #23
post #20

Golang is the modern Oberon.

Golang is not an OS. Golang doesn't fit in 12kib of source code. I could go on.

Depends on what extent an unikernel is an OS.

https://www.withsecure.com/en/solutions/innovative-security-...

Go has all the same features as Oberon has, in regards to systems programming, it is a matter of anyone finding it worthwhile to actually design a graphical OS with it.

I will conceed it lacks a very important one from Oberon, proper dynamic loading. Also the plugin packages are mostly abandoned across several releases.

However in this day and age, probably it would make more sense to do the dynamic loading capabilities of Oberon commands available via OS IPC instead.

Re: Modula-2 and Oberon (2007) [pdf]

#33
post #23
post #20

Golang is the modern Oberon.

Golang is not an OS. Golang doesn't fit in 12kib of source code. I could go on.

Oberon language and Oberon OS are two distinct entities and given the context of this post it's obvious that I was talking about Oberon the language. Whether you like Go or not, it's the closest modern production language to Oberon and derived very much from it, so my point stands.

Re: Modula-2 and Oberon (2007) [pdf]

#34
post #32
post #23

Earlier quoted context omitted.

Golang is not an OS. Golang doesn't fit in 12kib of source code. I could go on.

Depends on what extent an unikernel is an OS. https://www.withsecure.com/en/solutions/innovative-security-... Go has all the same features as Oberon has, in regards to systems programming, it is a matter of anyone finding it worthwhile to actually design a graphical OS with it. I will conceed it lacks a very important one from Oberon, proper dynamic loading. Also the plugin packages are mostly abandoned across severa…

> Go has all the same features as Oberon has

Go is missing both two new features Wirth introduced in Oberon compared to Modula (see section 5.2 of the referenced HOPL paper): type extension (i.e. inheritance) and type inclusion (no implicit coercion in Golang at all).

Taking a closer look there are only few similarities between Oberon and Go; both are garbage collected; Go uses the same separate receiver syntax element in method declarations as Oberon-2; and there is an intersection of keywords and also := appears, but the semantics are rather different.

Re: Modula-2 and Oberon (2007) [pdf]

#35
post #34
post #32

Earlier quoted context omitted.

Depends on what extent an unikernel is an OS. https://www.withsecure.com/en/solutions/innovative-security-... Go has all the same features as Oberon has, in regards to systems programming, it is a matter of anyone finding it worthwhile to actually design a graphical OS with it. I will conceed it lacks a very important one from Oberon, proper dynamic loading. Also the plugin packages are mostly abandoned across severa…

> Go has all the same features as Oberon has Go is missing both two new features Wirth introduced in Oberon compared to Modula (see section 5.2 of the referenced HOPL paper): type extension (i.e. inheritance) and type inclusion (no implicit coercion in Golang at all). Taking a closer look there are only few similarities between Oberon and Go; both are garbage collected; Go uses the same separate receiver syntax eleme…

You get similar workflows via interfaces, delegation and now generics to help reduce the boilerplate.

COM has done just great during the last 30 years without class inheritance.

Re: Modula-2 and Oberon (2007) [pdf]

#36
post #35
post #34

Earlier quoted context omitted.

> Go has all the same features as Oberon has Go is missing both two new features Wirth introduced in Oberon compared to Modula (see section 5.2 of the referenced HOPL paper): type extension (i.e. inheritance) and type inclusion (no implicit coercion in Golang at all). Taking a closer look there are only few similarities between Oberon and Go; both are garbage collected; Go uses the same separate receiver syntax eleme…

You get similar workflows via interfaces, delegation and now generics to help reduce the boilerplate. COM has done just great during the last 30 years without class inheritance.

I didn't say that the "Go way" was bad; just that there are few similarities. Certain things you can do in Oberon you cannot do in Go and vice versa. Personally I prefer Oberon+ over both Go and previous Oberons; if I didn't need to maintain backward compatibility with Oberon/-2/-07 I would remove type inclusion from Oberon+ and require explicit casts like Go; Wirth also removed type inclusion from Oberon-07, but he (unfortunately) also removed all numeric types but INTEGER, REAL and BYTE (but left some unfortunate implicit casts).

Re: Modula-2 and Oberon (2007) [pdf]

#37
post #36
post #35

Earlier quoted context omitted.

You get similar workflows via interfaces, delegation and now generics to help reduce the boilerplate. COM has done just great during the last 30 years without class inheritance.

I didn't say that the "Go way" was bad; just that there are few similarities. Certain things you can do in Oberon you cannot do in Go and vice versa. Personally I prefer Oberon+ over both Go and previous Oberons; if I didn't need to maintain backward compatibility with Oberon/-2/-07 I would remove type inclusion from Oberon+ and require explicit casts like Go; Wirth also removed type inclusion from Oberon-07, but he…

From that point of view yes, I do agree.

Although I still think Active Oberon is the best descendant from original Oberon, I am not a fan of the minimalist design Wirth persued afterwards.

In any case, Oberon's best days are behind it, hence why I would rather see some Go inspired approach to those ideas, even if I am not a big fan of Go's design.

Re: Modula-2 and Oberon (2007) [pdf]

#38
post #37
post #36

Earlier quoted context omitted.

I didn't say that the "Go way" was bad; just that there are few similarities. Certain things you can do in Oberon you cannot do in Go and vice versa. Personally I prefer Oberon+ over both Go and previous Oberons; if I didn't need to maintain backward compatibility with Oberon/-2/-07 I would remove type inclusion from Oberon+ and require explicit casts like Go; Wirth also removed type inclusion from Oberon-07, but he…

From that point of view yes, I do agree. Although I still think Active Oberon is the best descendant from original Oberon, I am not a fan of the minimalist design Wirth persued afterwards. In any case, Oberon's best days are behind it, hence why I would rather see some Go inspired approach to those ideas, even if I am not a big fan of Go's design.

> In any case, Oberon's best days are behind it

Maybe if you insist that parallel processing is part of the language (which you likely do if you prefer Active Oberon). Personally I think this can be well delegated to libraries to keep the language simple. Oberon+ doesn't use dedicated syntax even for exception handling; also "green" or regular threads, and channels and the like can well be covered by libraries or FFI. I'm neither a fan of Go's design, but with the ongoing work on Oberon+ I'm confident that its best days are yet to come.

Re: Modula-2 and Oberon (2007) [pdf]

#39
post #38
post #37

Earlier quoted context omitted.

From that point of view yes, I do agree. Although I still think Active Oberon is the best descendant from original Oberon, I am not a fan of the minimalist design Wirth persued afterwards. In any case, Oberon's best days are behind it, hence why I would rather see some Go inspired approach to those ideas, even if I am not a big fan of Go's design.

> In any case, Oberon's best days are behind it Maybe if you insist that parallel processing is part of the language (which you likely do if you prefer Active Oberon). Personally I think this can be well delegated to libraries to keep the language simple. Oberon+ doesn't use dedicated syntax even for exception handling; also "green" or regular threads, and channels and the like can well be covered by libraries or FFI…

The whole point of Oberon was the Smalltalk like experience, or to be more precise Mesa/Cedar like experience.

So to offer a bare bones language in 2022 without an OS that is at least at the same level of Blue Bottle, let alone what consumers expect from a modern OS is really not attainable.

It remains a nice language to look at as language nerd, and at the end of the day, pick something else when delivering software into production with the expectations that Swift, C#, Kotlin and so on can fulfill.

Post reply on HN