News for hackers. Stuff that matters.
Re:Modula-2 and Oberon (2007) [pdf] by dmitriid on Sunday July 31, 2022 @02:49PM (#32297735)
My unpopular opinion. Here's Wirth's words: "The programming language Oberon was the result of a concentrated effort to increase the power of Modula-2 and simultaneously to reduce its complexity."

He kept on "reducing complexity" while re-building what is essentially the same, rather primitive, language. ANd he kept throwing the baby out with the bathwater.

One of the Oberons had three different loop constructs, and only one of those could be terminated early. Because reasons. Then a newer Oberon reduced the number of loop constructs, but also removed the ability to terminate them early. Then a newer Oberon... ad infinitum.

And you can see it in all the langage variants he built: he insisted that the core of the language be small at the expense of usefulness to the point of uselessness. And purely irrational academic fixation (such as function vs. procedure or the aforementioned loops).

Was he instrumental in creating a good teaching language, and one of the first good high-level languages (Modula/Pascal)? Yes. Did he do anything noteworthy after that? I honestly doubt it as he was pursuing this idree fixe of a "small language where you can remove nothing more".

Re:Modula-2 and Oberon (2007) [pdf] by jll29 on Sunday July 31, 2022 @03:44PM (#32298173)
I wasn't convinced of Oberon; to me, MODULA-2 was great, and that's where things ought to have ended. And in terms of impact, his main accomplishment is clearly Pascal (and indeed, thanks for that!).

However, I do believe his aspiration to make things simpler is genuine. Occasionally, he may have gone beyond the 'sweet spot', but as an academic, this way of tinkering and trying out different things is something that is second nature. I admire that he wrote a language, compiler, OS and - later - also designed the hardware of his own workstation. That's the kind of teacher you want: "look, how easy it all is!".

His compiler book, which can be read in a day, remains a marvel of clarity and brevity.

Re:Modula-2 and Oberon (2007) [pdf] by Rochus on Sunday July 31, 2022 @04:11PM (#32298368)
Here is a modern version which supports all loops of Oberon and Oberon-2; it also has generic modules and a kind of exceptions, and it is still quite small and simple: https://oberon-lang.github.io/
Re:Modula-2 and Oberon (2007) [pdf] by hazelnut-tree on Sunday July 31, 2022 @06:44PM (#32299575)
Lot's of excellent critiques and comments in this thread.

Wirth has spent most of his life in an academic environment which have shaped his opinions on teaching programming. He believes strongly that teaching programming is most effective when students can grasp the entirety of a small language.

Below are a few quotes from Wirth taken from a 2018 interview. I find myself agreeing with his opinions:

On designing a programming language:

"...a language designer picks ideas from others, facilities, features, and has the task of putting them into a coherent whole, into a framework. And that is less easy than people might think, because you want to have as much power in the language as possible, yet a compact structure and compact syntax. And that you can get I think only through experience with language design."

On teaching a first programming language

"..as I did in the Pascal times, the foundations have been laid when a person learns his first programming language. That’s the key. In order to do a good experience, you have to have a clean language with a good structure concentrating on the essential concepts and not being snowed in. That is my primary objection to the commercial languages – they’re simply too huge, and they’re so huge that nobody can understand them in their entirety. And it’s not necessary that they’re so huge."

On further development of Oberon:

"The incentive came from colleagues mentioning that they had learned very, very much from my book called Project Oberon, which is one of the very few describe a full system and its development in detail. That’s something in computer science that is wrong. People learn to write before they have learned reading."

Re:Modula-2 and Oberon (2007) [pdf] by sedatk on Sunday July 31, 2022 @02:57PM (#32297804)
I'm also upset at Niklaus Wirth because how he sensationalized Dijkstra's article "A Case Against the Goto Statement" by taking the liberty to change its title to "Goto Statement Considered Harmful", causing a lifelong disproportionate stigma against goto and relevant programming constructs like switch/case, break, continue, etc. Dijkstra had never intended to take such a purist stance against Goto. I also mention this in my book Street Coder.
Re:Modula-2 and Oberon (2007) [pdf] by throw-away_42 on Sunday July 31, 2022 @03:59PM (#32298280)
From the opening paragraph of Edsger W. Dijkstra's letter to the CACM editor:

More recently I discovered why the use of the go to statement has such disastrous effects, and I became convinced that the go to statement should be abolished from all "higher level" programming languages (i.e. everything except, perhaps, plain machine code).

"Harmful" seems to me a perfectly appropriate characterization of the words "disastrous" and "abolished". If anything, it tones them down.

Re:Modula-2 and Oberon (2007) [pdf] by sedatk on Sunday July 31, 2022 @04:18PM (#32298432)
Similarly, "A case against" is way more toned down than "harmful." I agree that the opening statement is a strong stance and fits to the new title, but the article mostly focuses on proliferation of goto as a generic flow-control construct rather than exceptional such as using it as a "defer"-like construct in C where there's no alternative. I still think Wirth's edits hid the nuances in the article and helped fostering a strongly opionated dogma against goto by gifting a slogan to the masses.
Re:Modula-2 and Oberon (2007) [pdf] by Blammar on Sunday July 31, 2022 @03:12PM (#32297919)
? That was Edsger Dijkstra's article, if I recall correctly.

The standard joke is "Europeans refer to him by reference, as Nicklaus Wirth, and Americans - by value, as Nickel's Worth."

Re:Modula-2 and Oberon (2007) [pdf] by pdw on Sunday July 31, 2022 @04:08PM (#32298347)
It was Dijkstra's article, but he submitted it with the title "A case against the Go To statement". Wirth was the journal editor and he choose to rename it to "Go To statement considered harmful".

Knuth ties into this because he published a response "Structured Programming with go to Statements", examining many situations where goto statements are hard to avoid in the standard structured programming paradigm.

Re:Modula-2 and Oberon (2007) [pdf] by Jtsummers on Sunday July 31, 2022 @04:09PM (#32298358)
GGP had originally referred to the author of the article as Knuth, GP (and I) both replied correcting that. GGP comment has since been edited.
Re:Modula-2 and Oberon (2007) [pdf] by sedatk on Sunday July 31, 2022 @04:19PM (#32298450)
Yes, I'd meant Dijkstra where I said Knuth despite that Knuth might still be relevant. I got this right in the book, no worries. :)
Re:Modula-2 and Oberon (2007) [pdf] by sedatk on Sunday July 31, 2022 @04:07PM (#32298342)
Yes my bad. Edited, thanks!
Re:Modula-2 and Oberon (2007) [pdf] by Jtsummers on Sunday July 31, 2022 @03:12PM (#32297912)
Not Knuth. Dijkstra.
Re:Modula-2 and Oberon (2007) [pdf] by sedatk on Sunday July 31, 2022 @04:07PM (#32298338)
You're right edited it now, thanks!
Re:Modula-2 and Oberon (2007) [pdf] by le-mark on Sunday July 31, 2022 @08:21PM (#32300263)
> Yes. Did he do anything noteworthy after that? I honestly doubt it

Worth’s contributions may not seem significant to some, today, because he did make this contributions; championing simplicity and portability. In a lot of ways we stand on his shoulders. Anyone who feels shorted or that they don’t get their nickels worth should also read about the Oberon System which was a complete computer with peripherals and a ui.

Re:Modula-2 and Oberon (2007) [pdf] by eterps on Sunday July 31, 2022 @04:50PM (#32298720)
> He kept on "reducing complexity" while re-building what is essentially the same, rather primitive, language. ANd he kept throwing the baby out with the bathwater.

What is interesting about Oberon is that it is a complete (i.e. OS + compiler + HW) usable system that can be understood in its entirety by a single human being within one lifetime.

As far as I know it's also the only system currently in existence that fullfills that promise.

Just the language part of Oberon is not optimal for running on the regular personal computer systems we used or are currently using. But AFAIK that was never its purpose either.

Re:Modula-2 and Oberon (2007) [pdf] by Rochus on Sunday July 31, 2022 @07:38PM (#32299976)
> What is interesting about Oberon is that it is a complete (i.e. OS + compiler + HW) ... the only system currently in existence that fullfills that promise.

Well, Unix including the C programming language were essentially implemented by two guys (Thompson und Ritchie); at least in the beginning Unix was small enough to "be understood in its entirety by a single human being within one lifetime". The same applies to Linux (implemented by only one guy in the beginning). Also the Oberon System (written by Wirth and Gutknecht) became bigger and more complex during the years it was used at ETH; barely anyone has full detail knowledge of e.g. the whole Oberon System V4. We can assume that if the Oberon System had been more successful, it would have shared the fate of original Unix and Linux, and became too big to be understood in its entierty by a single person.

Re:Modula-2 and Oberon (2007) [pdf] by cxr on Tuesday August 02, 2022 @08:30AM (#32317681)

  You are not expected to understand this.
Re:Modula-2 and Oberon (2007) [pdf] by Rochus on Tuesday August 02, 2022 @09:52AM (#32318461)
That even works with much smaller code bases; I remember staring at half a page of image processing code for a week.
Re:Modula-2 and Oberon (2007) [pdf] by vitiral on Sunday July 31, 2022 @06:02PM (#32299282)
I'm attempting one at github.com/civboot/fngi. Let me just say... It ain't easy, and Oberon is a huge inspiration for what's possible.
Re:Modula-2 and Oberon (2007) [pdf] by 082349872349872 on Sunday July 31, 2022 @06:29PM (#32299476)
Exactly. ... and not just within one lifetime — within a few years!
Re:Modula-2 and Oberon (2007) [pdf] by mamcx on Sunday July 31, 2022 @05:15PM (#32298915)
I think the main problem is that Nicolas was like a practical PL researcher and don't think he believe was the guy to build a actual practical PL.

So, more like "take inspiration from me, and see how simplicity can be done".

Re:Modula-2 and Oberon (2007) [pdf] by 082349872349872 on Sunday July 31, 2022 @06:28PM (#32299467)
More that he's a practical computer architect, producing h/w as well as s/w, and there's no sense complicating one very specific part of that —the PL toolchain— if it doesn't help build the systems he wants to build.
Re:Modula-2 and Oberon (2007) [pdf] by pjmlp on Sunday July 31, 2022 @04:33PM (#32298565)
For me the best Oberon is Active Oberon, although I am quite certain Wirth would see that differently.