[HN Gopher] Modula-2 and Oberon (2007) [pdf]
       ___________________________________________________________________
        
       Modula-2 and Oberon (2007) [pdf]
        
       Author : Jtsummers
       Score  : 31 points
       Date   : 2022-07-29 16:14 UTC (2 days ago)
        
 (HTM) web link (citeseerx.ist.psu.edu)
 (TXT) w3m dump (citeseerx.ist.psu.edu)
        
       | dmitriid wrote:
       | 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".
        
         | hazelnut-tree wrote:
         | 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 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."
        
         | pjmlp wrote:
         | For me the best Oberon is Active Oberon, although I am quite
         | certain Wirth would see that differently.
        
         | sedatk wrote:
         | 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.
        
           | throw-away_42 wrote:
           | 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.
        
             | sedatk wrote:
             | 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.
        
           | [deleted]
        
           | Jtsummers wrote:
           | Not Knuth. Dijkstra.
        
             | sedatk wrote:
             | You're right edited it now, thanks!
        
           | Blammar wrote:
           | ? 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."
        
             | sedatk wrote:
             | Yes my bad. Edited, thanks!
        
             | pdw wrote:
             | 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.
        
               | Jtsummers wrote:
               | 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.
        
               | sedatk wrote:
               | 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. :)
        
         | Rochus wrote:
         | 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/
        
         | mamcx wrote:
         | 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".
        
           | 082349872349872 wrote:
           | 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.
        
         | jll29 wrote:
         | 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.
        
         | eterps wrote:
         | > 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.
        
           | vitiral wrote:
           | 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.
        
           | 082349872349872 wrote:
           | Exactly. ... and not just within one lifetime -- within a few
           | years!
        
       | sedatk wrote:
       | The web is getting hugged, I uploaded the PDF here:
       | https://archive.org/details/Modula-2-and-Oberon
        
       | Sin2x wrote:
       | Golang is the modern Oberon.
        
         | vitiral wrote:
         | Golang is not an OS. Golang doesn't fit in 12kib of source
         | code. I could go on.
        
         | [deleted]
        
       | lboasso wrote:
       | 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
        
         | [deleted]
        
       ___________________________________________________________________
       (page generated 2022-07-31 23:01 UTC)