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
The best potted intro I know:
https://ignorethecode.net/blog/2009/04/22/oberon/
A more in-depth look for folks with some comp-sci knowledge:
https://www.scribd.com/document/377504715/Oberon-the-Overloo...
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.
I'm quite familiar with Project Oberon as a professor who studies operating systems and programming languages, but even though this is Hacker News where many of us are familiar with the project, I'm not surprised that there are also many readers who are not familiar with it, since Oberon does not have the userbase of much more popular programming languages and operating systems, and it's not even covered in many undergraduate courses on those topics. Most undergraduate OS courses are Unix-focused, centering on either Linux, Minix, or xv6. The Oberon OS is certainly not Unix. Programming languages and compiler courses tend to vary, but I haven't seen one that uses Oberon.
I got to learn about Oberon in the 1990's, because FCT/UNL degree was quite strong in languages and systems programming, and we had exposure to all kinds of programming languages, I even studied ALGOL type system, with its wonderful "call by name" that you see almost nowhere nowadays, other than as lazy lambdas kind of approach.
I am not a CS student nor have I had a "programming job." I just enjoy computing which leads me to explore the different design philosophies so I read and tinker. Currently I am learning Ada, itself based on Wirth's Pascal so I am on a bit of a Wirthian kick.
I mean, in all fairness, I wasn't even born when Oberon started development
It's not just you. I started coding in the 80s. Never heard of Oberon.
Remember that people who familiarize themselves with computing history are neither "crushing it" nor doing anything else evocative of advertising for energy drinks. Study of computing history is therefore something to be avoided.
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."
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.
Thinking independently and learning strategies to find their own way are among the most important foundations for anyone interested in technology or who wants to work in the field. If people are curious enough about a keyword or topic, they should also be willing to put in some effort to research it. Or, if that really isn’t possible, they should ask good questions. That’s generally much more promising than confronting the author of a post with accusations right off the bat.
Honest question. Where does one stop clarifying things?
One of the basic principles of communication is that you have a mental model of the person you're communicating with and are phrasing what you want them to understand in terms that you think they'll understand. So whenever you're writing something - anything - you should be writing with a target audience in mind, and stop explaining right around the point where you believe that your target audience doesn't need further explanation.
Of course it's normal for there to be a disconnect between your assumptions about your target audience and reality. In a real conversation this happens all the time and it's no big deal. When something's written and especially when it's printed it can be a bit more of a problem, so maybe better to err on the side of over-explaining. Also a good reason to have editors and proofreaders. But I'm rambling a bit.
In this case, the link was posted to HN by the author, so the author might have had "average HN reader" in mind. Oberon never really achieved success outside of a particular niche in academia, so unless they went to ETH Zurich I personally wouldn't expect someone - even someone in tech - to know about it.
Exactly. I knew what the link was about and didn't study at ETH Zurich. I (mistakenly?) think Oberon is that kind of "roots knowledge" shared between all of us, like Lisp or Forth. That's why I asked when one should stop clarifying things. Maybe some people need to know what a compiler os, or a VM, or a windowing system, or ...whatever.
What I mean is that having so much info at the toe of our tips, comments like "you should put a link about what this thing is" are needless.
> I (mistakenly?) think Oberon is that kind of "roots knowledge" shared between all of us, like Lisp or Forth.
Yes, I think that's a mistake. Lisp and Forth saw widespread commercial use, were hugely influential, and directly begat many other languages. While I'd expect most folks on here to be familiar with Pascal - you could say those same things about it - and maybe even know who Wirth is, Oberon basically saw no commercial use whatsoever and even in academia was basically only used at the school it came from. There's no real comparison.
Yes, you are likely confusing Oberon with Pascal. That is the Wirth language people usually have heard about. They may also have heard about Modula 2, but assuming that is stretching it. I was already interested in computers at the time, but I still only remember Oberon as that even bigger failure than Modula.
The problem with this is that there are so many branches of tech from 40 years ago that any one person is unlikely to be familiar with all of them.
I'm plenty familiar with the whole Modula 3 -> NextSTEP branch of this little tree, but the Oberon branch isn't something I've run into before.
Sorry, can you explain what ETH Zurich is? I’m not familiar with that term.
it is an Ethereum fork, named after Jan Zurich (a cousin of the famous Chief Niklaus Emil Wirth). Jan Zurich discovered a little moon on Uranus, and named it Blaise
see timeline on https://ethereum.org/ethereum-forks/
It’s also worth noting that Jan (who strictly uses the pronouns var / val) belongs to one of the most historically marginalized groups in modern tech: One-Pass Compiler Enthusiasts. They were repeatedly ostracized by the bloated LLVM cabal for stating that any build process taking longer than 50 milliseconds is a toxic social construct. The ETH fork was actually meant to fund a decentralized safe space where nobody is ever forced to use a borrow checker.
I assume you're just trolling to make a rhetorical point (apologies if not!), but FWIW:
ETH Zurich is one of the most well-regarded technical schools in the world, and arguably the most well-regarded technical school in Europe. It has many famous alumni, including Albert Einstein. I think it's fair to expect most people in tech to be familiar with the big schools in the field, even the ones in Europe, though maybe that's giving too much credit to Americans.
But maybe it's also worth pointing out some other principles of communication: ETH Zurich wasn't really the main topic of my comment, and it's OK if readers don't catch every reference; communication is invariably lossy, and as long as general meaning is conveyed that's OK! Also, given the context (the sentence "Oberon never really achieved success outside of a particular niche in academia, so unless they went to ETH Zurich...") even if the reader hadn't heard of ETH Zurich it could be reasonably inferred that ETH Zurich is an academic institution, probably in Zurich, where Oberon was successful. Part of writing is trusting that the reader is a rational person who understands how (the) language and the world work, otherwise communication becomes impossible.
Some associated ideas in the philosophy of language might be the "cooperative principle", the "principle of humanity", and the "principle of charity". I'll frankly make a muddle of trying to explain them in detail, and this reply is already too long and too snarky, so in this case I'd ask the interested reader to consult Wikipedia, the Stanford Encyclopedia of Philosophy, etc.
> even if the reader hadn't heard of ETH Zurich it could be reasonably inferred that ETH Zurich is an academic institution, probably in Zurich, where Oberon was successful. Part of writing is trusting that the reader is a rational person
The first sentence of the README says, "This project modernizes the Kernel of Oberon System 3 (version 2.3.7) by migrating it from the original Oberon Boot Loader (OBL, written in assembler) to the Multiboot specification (handled in Oberon directly in the Kernel)."
Armed with that and the headline "Oberon System 3 runs natively on Raspberry Pi 3", it can be reasonably inferred that "Oberon System 3" is an operating system (shown here of being capable of running on a Raspberry Pi). It doesn't require prior familiarity with Oberon, despite what the previous commenter said.
Neither you nor the original questioner are being particularly rational about this.
> it can be reasonably inferred that "Oberon System 3" is an operating system
"Oberon is an operating system" was indeed evident, but it's also not particularly illuminating. There are dozens of niche operating systems, why do we care about this one in particular? What does it do that other operating systems don't?
> "Oberon is an operating system" was indeed evident,
No, it is not evident: this is not correct.
Oberon is bare-metal self-hosted programming system. It is both a language and an OS.
> why do we care about this one in particular?
1. It is the final development in the career of Niklaus Wirth, the creator of Pascal. Pascal is the Wirthian language that had considerable commercial success.
(A dialect called the USCD p-System was one of the original 3 OSes that IBM offered for the PC, for instance. Apple created Object Pascal, and implemented parts of the Lisa and original Mac OSes in it. In the early days of DOS, Borland TurboPascal was one of the leading IDEs, and then when 16-bit Windows achieved commercial success, Borland's Delphi led the way as the most sophisticated Windows IDE.)
2. It's the end of his life's work. Wirth did not stop with Pascal.
The next generation was Modula. It was a bit of a flop, but the successor, Modula-2, was a hugely influential language too. Topspeed Modula-2 was at one time the fastest compiler of all kinds for the PC.
Development did not end there.
Others did Modula-3, not Wirth. He moved on to create Oberon.
3. This is the end of the line of the single most widespread and influential family of programming languages outside of the C world.
> What does it do that other operating systems don't?
Wirth was a keen advocate of small size and simplicity.
https://cr.yp.to/bib/1995/wirth.pdf
Oberon is one of the smallest simplest compiled languages of all time. It is also an OS, and an ID, and a tiled mouse-controlled windowing system. The core is about 4000 lines of code.
4k LOC.
The entire core OS is smaller than the tiniest trivial shell tool on any FOSS Unix.
It is almost unbelievably tiny, it is fast, and it is self-hosting. It can run bare-metal, on multiple platforms, or as a conventional language under another OS. It has its own GUI. It can interop with other languages. You can, and people do, build complete GUI apps in Oberon.
https://blackboxframework.org/
It may be less well-known than its own ancestors but this is an important, significant language, and the final generation of a very important and very much alive dynasty.
I like how you assumed I’m American because I don’t have knowledge of international top ranking technical schools.
One of the basic principles of communication is that you have a mental model of the person you're communicating with and are phrasing what you want them to understand in terms that you think they'll understand. So whenever you're writing something - anything - you should be writing with a target audience in mind, and stop explaining right around the point where you believe that your target audience doesn't need further explanation. Not everybody lives in Europe or has knowledge of what the top technical schools are (which is a bit classist to assume tbh), and this type of Euro-centric thinking doesn’t work very well when communicating with people from other backgrounds.