Live data from Hacker News

Show HN: Oberon System 3 runs natively on Raspberry Pi 3 (with ready SD card)

github.com

61–70 of 122 posts

Re: Show HN: Oberon System 3 runs natively on Raspberry Pi 3 (with ready SD card)

#61

I was about 5 links deep before I figured out what Oberon actually was. A high-level explainer at the top of the readme would be really nice for folks who aren't already familiar with the Oberon ecosystem

A good opportunity to consult wikipedia once again (https://en.wikipedia.org/wiki/Oberon_(operating_system)), or to ask your trusted LLM.

Re: Show HN: Oberon System 3 runs natively on Raspberry Pi 3 (with ready SD card)

#62
post #16

Earlier quoted context omitted.

> I still hope to see the world where Oberon is the future (and present) of OS and programming language design I see you're into horror stories. Oberon is absolutely a horrible language. It's an example of how you can screw up a good language by insisting on things that were important in 1960-s. Like not allowing multiple returns (not multiple return _values_ but multiple returns).

There's an argument (and I think a good one) that in structured programming there should be only one return per function. It's not that hard -- you just have a variable and you set it to what you want to return and the last line of the function returns that variable. I think that some things Wirth did with Oberon, particularly in the post Oberon-OS versions like Oberon-07, are a bit restrictive, but they are always i…

This unnecessarily creates the need for mutable variables in every function when in practical code bases 95%+ of variables programmers define are immutable and are only mutable because the programming language forces mutability by default. Mutable variables make local reasoning harder since you have to inspect all write locations to understand the impact of any given line of code.

Re: Show HN: Oberon System 3 runs natively on Raspberry Pi 3 (with ready SD card)

#63
post #30
post #18

Earlier quoted context omitted.

Show me significant concepts implemented in today's languages which cannot directly be traced back to "things that were important in 1960-s" or seventies ;-)

"Traced back" is fine. We can trace back the size of the Shuttle's boosters to the width of the roads in the Roman Empire. Insisting that the problems of 1960 are the only thing that matters, and MUST be solved dogmatically is not.

The story about "the width of the backsides of two Roman horses" is just a myth. Which should be obvious if you look at the many different railway gauges in use. You can trace it back to 19C standardisation, and argue over whether Brunel's 7'¼" was better than standard gauge, or if we should all have converted to 3m Breitspurbahn, but that's a different question.

Re: Show HN: Oberon System 3 runs natively on Raspberry Pi 3 (with ready SD card)

#64
post #61

I was about 5 links deep before I figured out what Oberon actually was. A high-level explainer at the top of the readme would be really nice for folks who aren't already familiar with the Oberon ecosystem

A good opportunity to consult wikipedia once again ( https://en.wikipedia.org/wiki/Oberon_(operating_system) ), or to ask your trusted LLM.

Pasting a Wikipedia link or saying "just ask an LLM" only helps out the one instance of someone not knowing. I did the same thing as the OP you're replying to. They're right - a brief summary in the readme would be a near zero-effort permanent fix to people who stumble on your project and dont know what Oberon is.

Re: Show HN: Oberon System 3 runs natively on Raspberry Pi 3 (with ready SD card)

#65
post #59
post #58

Earlier quoted context omitted.

Sure, but that in the end is what matters with memory safe systems languages, reduction of attack surface and easy to spot when safety is being disabled. Alternative being Assembly written primitives, like in Smalltalk originally. Blue book description.

There are better alternatives than assembly. The Oberon approach would already benefit if low-level code no longer operates behind the compiler's back and instead supports full type checking. My new Micron language provides this.

Sure, in theory we could do NEWP style, where everything needed for lowlevel is provided as intrisics, and Assembly isn't even available.

However this doesn't seem to be a solution that many are keen on going through.

How is Micro doing it?

Re: Show HN: Oberon System 3 runs natively on Raspberry Pi 3 (with ready SD card)

#66
post #39
post #38

Earlier quoted context omitted.

It might have been Brandis' thesis I was primarily thinking about. Of the PhD theses at EHTz on Oberon, I'm also a big fan of Michael Franz' thesis on Semantic Dictionary Encoding, but that only touched on optimization potential as a sidenote. I'm certain there was at least one other paper on optimization, but it might not have been a PhD thesis... I get the motivation for wanting to use LLVM, but personally I don't…

I don’t like LLVM either, because its size and complexity are simply spiraling out of control, and especially because I consider the IR to be a total design failure. If I use LLVM at all, it would be version 4.0.1 or 3.4 at most. But it is the standard, especially if you want to run tests related to the question the fellow asked above. The alternative would be to build a frontend for GCC, but that is no less complex…

To be fair they also kind of share that opinion, hence why MLIR came to be, first only for AI, nowadays for everything, even C is going to get its own MLIR (ongoing effort).

Re: Show HN: Oberon System 3 runs natively on Raspberry Pi 3 (with ready SD card)

#67
post #47

Earlier quoted context omitted.

Yes, like Modula-2 as well. However, people always forget we don't program in Notepad, rather programmer editors that are able to do automatic capitalisation of keywords. It is a non problem, like discussion of parentheses or white space in programming languages that require them.

Does the editor in this environment do automatic capitalisation? I have to say that when I used Modula-2, editors were very simple and banging away on the shift key or caps lock was a real irritation.

Not directly if I remember correctly, but there are OS formatting tools.

Windows IDE tooling for Modula-2, or using something like XEmacs/Emacs or Brief.

Re: Show HN: Oberon System 3 runs natively on Raspberry Pi 3 (with ready SD card)

#68
post #65
post #59

Earlier quoted context omitted.

There are better alternatives than assembly. The Oberon approach would already benefit if low-level code no longer operates behind the compiler's back and instead supports full type checking. My new Micron language provides this.

Sure, in theory we could do NEWP style, where everything needed for lowlevel is provided as intrisics, and Assembly isn't even available. However this doesn't seem to be a solution that many are keen on going through. How is Micro doing it?

There is actually no good reason why the SYSTEM features use LONGINT instead of typed pointers. C at least has type support, even if the compiler ignores it for many situations.

Micron is doing well; the language definition has matured; it now even supports Go interfaces from level 2 onwards (i.e. even for plain records before level 3 adds dynamic memory). The primary goal of Micron is not safety, but to make a better C, Pascal and Oberon, adding some features which turned out to be very useful in C++, but without the complexity. The compiler now has an x86 and ARMv7 backend with debug support. RV32 support is on the horizon. And there is a C99 transpiler if need be.

Re: Show HN: Oberon System 3 runs natively on Raspberry Pi 3 (with ready SD card)

#69

I was about 5 links deep before I figured out what Oberon actually was. A high-level explainer at the top of the readme would be really nice for folks who aren't already familiar with the Oberon ecosystem

A picture of the running system is the first thing you see at the link.

On the screen is (readable to me at least) the first page of the paper "Oberon Language Report" showing N. Wirth as the author.

In the Introduction to the on-screen document it says, "Oberon is a general-purpose programming language that evolved from Modula-2."

Re: Show HN: Oberon System 3 runs natively on Raspberry Pi 3 (with ready SD card)

#70

I was about 5 links deep before I figured out what Oberon actually was. A high-level explainer at the top of the readme would be really nice for folks who aren't already familiar with the Oberon ecosystem

I am surprised the top comment on an HN post is someone asking what Oberon is (especially someone who have programmer in their name.) Oberon is not only a programming language, but an entire software and hardware computing system built from the ground up to be as minimal as possible by famed computer scientist Niklaus Wirth. Simple RISC CPU, Oberon compiler, OS And Windowing system. The windowing system was famously copied by Rob Pike's Acme text editor on Plan 9.

https://projectoberon.net/

Post reply on HN