Live data from Hacker News

The Oberon+ Programming Language

oberon-lang.github.io

21–30 of 116 posts

Re: The Oberon+ Programming Language

#21
post #7
post #3

I don’t like how verbose Pascal-like languages are. I don’t want to have to type tons of keywords to get anything done. Curly brackets are a big improvement over pairs of “begin” and “end” all over. Makes it hard to see the forest for the trees when skimming some code to figure out what it does. That on its own makes something like this a complete nonstarter for me, leaving aside issues like support, quality of imple…

I think it's less about typing them and more about reading them. Curly braces reduce the number of keywords in the language (unless the alternative is indentation sensitivity like in Python or Haskell). This means that if I see a word, it is easier to infer if it is a variable name or if it does something structural. How about a treesitter-based editor extension that converts between begin/end and {/}, as if they wer…

> How about a treesitter-based editor extension that converts between begin/end and {/}, as if they were ligatures? Actually this might not even need treesitter.

See emacs prettify-symbols-mode (https://emacs.stackexchange.com/questions/46529/configuring-...)

Re: The Oberon+ Programming Language

#22
The whole Oberon system is great fun. https://people.inf.ethz.ch/wirth/ProjectOberon/index.html

It's a single-user workstation, developed from the CPU on up, compiler & language, OS with unique GUI, all documented in a book, and you can run it online in a browser via a JS emulator for the CPU: http://schierlm.github.io/OberonEmulator/

People used it at ETH as their main system to run the University!

Re: The Oberon+ Programming Language

#24
> During my work with Oberon and systems implemented in Oberon, I kept asking myself what properties the language would need to have so that I could use it for my own systems too, without giving up the goal of making it as simple as possible.

From here: https://oberon-lang.github.io/2021/07/15/motivation-for-a-ne...

And yet it carries over all of the inanities of the many Oberons before it like:

- Four different loops (while, for, repeat, and loop)

- Useless distinction between procedures and functions

- Randomly selected ASCII symbols to show what is exported and/or read-only

- extremely awkward and limited exception handling (you have to call a procedure that cannot hav a return type using a built-in pcall procedure that writes exception info into a variable you pass into it)

and so on.

All of Oberons are just walking around in circles re-implementing the same weird ideas again, and agian, and agian, and again.

Re: The Oberon+ Programming Language

#25

The whole Oberon system is great fun. https://people.inf.ethz.ch/wirth/ProjectOberon/index.html It's a single-user workstation, developed from the CPU on up, compiler & language, OS with unique GUI, all documented in a book, and you can run it online in a browser via a JS emulator for the CPU: http://schierlm.github.io/OberonEmulator/ People used it at ETH as their main system to run the University!

I studied CS at ETH from 2001 to 2006. Oberon was the main language used for teaching our introductory CS courses IIRC. Fun times. :-)

Re: The Oberon+ Programming Language

#26
post #10
post #3

I don’t like how verbose Pascal-like languages are. I don’t want to have to type tons of keywords to get anything done. Curly brackets are a big improvement over pairs of “begin” and “end” all over. Makes it hard to see the forest for the trees when skimming some code to figure out what it does. That on its own makes something like this a complete nonstarter for me, leaving aside issues like support, quality of imple…

apart from that (which i agree with) is that in most pascal-like languages you have to define variables at the top of a function, and their scope is the whole function. both c (nowadays, define at top of a {} scope) and c++ (define anywhere inside a function) do much better which, together with irritating long names, may explain why c and c++ won out over the pascal-likes. speaking as an ex professional delphi progra…

C is declare anywhere and has been for a looong time (C99).

Re: The Oberon+ Programming Language

#27

Oberon and Oberon+ are very interesting and are certainly a step forward from Pascal. Wish Oberon+ had moved forward a few more steps, like making everything an expression, for example, or more lax variable declaration rules (which probably require scoping rules changes). If only the FPC compiler supported it and allowed combining units in Oberon with Pascal ones in one project! The language specs: https://github.com…

You appear to be familiar with Pascal, so I am surprised you find the statement-heavy approach an issue. What would be the benefit of making this change?

Re: The Oberon+ Programming Language

#28
post #26
post #10

Earlier quoted context omitted.

apart from that (which i agree with) is that in most pascal-like languages you have to define variables at the top of a function, and their scope is the whole function. both c (nowadays, define at top of a {} scope) and c++ (define anywhere inside a function) do much better which, together with irritating long names, may explain why c and c++ won out over the pascal-likes. speaking as an ex professional delphi progra…

C is declare anywhere and has been for a looong time (C99).

sorry, my bad, i don't do any c programming these days.

but to be pedantic, i think you mean define rather than declare, though of course you can also declare things at different scopes.

Re: The Oberon+ Programming Language

#30
post #3

I don’t like how verbose Pascal-like languages are. I don’t want to have to type tons of keywords to get anything done. Curly brackets are a big improvement over pairs of “begin” and “end” all over. Makes it hard to see the forest for the trees when skimming some code to figure out what it does. That on its own makes something like this a complete nonstarter for me, leaving aside issues like support, quality of imple…

If you've dismissed a whole host of languages just at a glance, you're missing out. Lua has little in common with Pascal, which has little in common with Fortran, etc. As a sister post to this says, you see them more as tokens once you are familiar. Emboldening or coloring keywords also helps, as for any language.
Post reply on HN