
Oberon System, an OS Written in Oberon - DiabloD3
https://en.wikipedia.org/wiki/Oberon_(operating_system)
======
nickpsecurity
Anyone that likes Wirth line of OS's and languages should check out the
Modula-2 revision:

[http://modula-2.info/m2r10/pmwiki.php/Project/FAQ](http://modula-2.info/m2r10/pmwiki.php/Project/FAQ)

FAQ asks good questions and with rational answers. I'm still going to fight
them on uppercase just for sake of adoption and saving pinky fingers.
Otherwise, Modula-2 makes a nice C replacement and a start on safer C++
alternative that's easy to grok. The language was originally used in Wirth's
and Jurg's first homebrew system, Lilith. I have a link to that and many other
Wirth works here:

[https://news.ycombinator.com/item?id=10479213](https://news.ycombinator.com/item?id=10479213)

Anyway, Modula and Oberon have already been used to build a number of
maintainable, safer OS's and system software. Oberon did it with a GC for most
of it while Modula-2 just tried to be safer about memory management. Very easy
to compile & optimize. Adding macros for low-overhead abstractions and a solid
stdlib to that would give a differentiator in systems programming without
learning curve of Rust or C++.

Go achieved some of this already in application language space. It was a
modern attempt on the Oberon programming experience. So, some precedent for my
Modula-2 ideas being able to take off. I'll be fine if Modula-2R10 or an
Oberon variant ends up a niche language with supported, constantly-enhanced
compiler & decent community. It would be another secret weapon for startups
like LISP, Ocaml, Haskell, and so on were. This time for systems or embedded
use.

[http://www.astrobe.com/default.htm](http://www.astrobe.com/default.htm)

[https://www.cs.cmu.edu/~chuck/pubpg/luv95.pdf](https://www.cs.cmu.edu/~chuck/pubpg/luv95.pdf)

[http://www.algo-
prog.info/ocapic/web/index.php?id=OCAPIC:OCA...](http://www.algo-
prog.info/ocapic/web/index.php?id=OCAPIC:OCAPIC)

[https://hackage.haskell.org/package/atom](https://hackage.haskell.org/package/atom)

Ooops, maybe _again_ for embedded use. :)

~~~
MaysonL
Back in the '80s, I got tasked to implement a prototype distributed OS that a
team at JPL had just spent all but a little less than a year of a 5 or 6 year
DOD contract designing (with a bit more than 6 months to a big conference
where it was supposed to be demoed). After I gave my estimate of what I could
produce in the time remaining, the design team said that that was impossible.
Modula-2 (embodied in a Logitech(!!) compiler and standard library) came
through with flying colors. OS ran on 8 Vax 725's. Pull the plug on one
running unique processes, they would restart on another. Ditto for splitting
the net.

[0]
[http://oai.dtic.mil/oai/oai?verb=getRecord&metadataPrefix=ht...](http://oai.dtic.mil/oai/oai?verb=getRecord&metadataPrefix=html&identifier=ADA124379)

~~~
nickpsecurity
As in the Logitech mouse/keyboard company? If so, that makes them more awesome
haha.

It's great that you used it to (rescue?) a distributed OS project. Thanks for
the paper, too, as some of us collect these for any wisdom that might be lost
to time. I'll read it when I have more time.

~~~
rbanffy
At that time, Logitech had great developer tools. Their debugger was well
known.

------
__mp
Here's Niklaus Wirth's talk about his Project Oberon revival project at his
birthday symposium:
[http://www.multimedia.ethz.ch/conferences/2014/wirth/?doi=10...](http://www.multimedia.ethz.ch/conferences/2014/wirth/?doi=10.3930/ETHZ/AV-d40b0ce9-b9fa-4ba3-8dee-
cf9d0c6f01a4&autostart=false)

I was at that symposium :)

~~~
avodonosov
Maybe you also know how to stretch this video full screen?

~~~
0942v8653
There are mp4 links in the sidebar: [http://replay-
progressive.ethz.ch/h264-medium.http/10.3930/E...](http://replay-
progressive.ethz.ch/h264-medium.http/10.3930/ETHZ/AV-d40b0ce9-b9fa-4ba3-8dee-
cf9d0c6f01a4/20140220_1730_HGF30_WirthSym_Wirth-dm.m4v)

------
dchest
Wirth is still tweaking its code, you can follow news here:
[https://www.inf.ethz.ch/personal/wirth/news.txt](https://www.inf.ethz.ch/personal/wirth/news.txt)

------
igitur
Our first year university computer science course was all done in Oberon. Had
to write a small parser et al. I absolutely hated the Oberon interface.

~~~
nickpsecurity
It's a weird interface. Have you tried A2 Bluebottle? It's in that line but
not as bad.

Regardless, I promote it for consistent, system design with safer language
that's efficient, portable, compiles fast, and mostly GC'd. Good traits other
systems should emulate even if not the extra-weird interface.

Note: One thing about the interface is how it was ahead of the curve on
hyperlinks. You can click highlighted text to perform actions and move around
in the system. Sound like something that became a ubiquitous interface? ;)

~~~
MaysonL
The Oberon interface that I loved was in Oberon microsystems's Oberon
F/Component Pascal system, originally available on Mac OS and Windows.
Unfortunately, they never brought it from classic Mac OS to OS X, only
continuing the Windows development (and eventually abandoning further
development of it [but they did open source it]).

~~~
nickpsecurity
Is that interface still preserved in the modern Blackbox on Windows? Found
this great presentation on both it and all the concepts it uses for
robustness:

[http://www.pas.rochester.edu/~skulski/Presentations/BB_Class...](http://www.pas.rochester.edu/~skulski/Presentations/BB_Class.pdf)

I keep thinking I need to play with it as it looks to be a great tool. Like an
engineer's version of Visual Basic 6 I started on. Super easy to use, fast,
and code-generating for GUI's without huge issues of C development. The
complexity chart was nice while showing good old ALGOL and Turbo Pascal 2.0
fit nicely in the middle. I think the Oberon's are too simple but Component
Pascal seems better.

Add Design-by-Contract and some more safety features to give Eiffel + Ada some
nice competition in robust, OOP space. :)

~~~
pjmlp
What I liked about Component Pascal was that it extended Oberon-2 to have an
OOP model more close to Object Pascal as exposed by Turbo Pascal.

Also their designers were pushing for programming with components, instead of
pure OOP. Basically a type safe way of doing COM.

The first edition of "Component Software: Beyond Object-Oriented Programming"
used mostly Component Pascal examples.

[http://www.amazon.com/Component-Software-Object-Oriented-
Pro...](http://www.amazon.com/Component-Software-Object-Oriented-Programming-
Addison-Wesley/dp/032175302X)

~~~
nickpsecurity
It sounds so good that I'd be ready to ditch the opportunity of Modula-2
revision for it if I was an OOP fan. I'm still not convinced it's necessary or
even ideal for various tradeoffs. Besides, whether it is or isn't, Modula-2
might be worth reviving just as a C alternative for low-level stuff with more
safety. I think investigations into and development of both simultaneously is
justified.

~~~
pjmlp
You also have the Basic and Pascal compilers from Mikro Elektronika.

[http://www.mikroe.com/mikropascal/](http://www.mikroe.com/mikropascal/)

[http://www.mikroe.com/mikrobasic/](http://www.mikroe.com/mikrobasic/)

~~~
nickpsecurity
That's great. I didn't know about them. So, that's Pascal, BASIC, and Oberon
available for microcontrollers with Mikro in the lead. The other links look
like they're a one stop shop. Increases odds that everything integrates well.

------
Tloewald
The best thing I got out of Oberon was the Syntax font (which was the default
proportional typeface). It's a really nice font (it's essentially a sans serif
font with classic details, hints of serifs, and subtly tapered strokes -- a
great antidote to an overdose of Helvetica).

[https://www.myfonts.com/fonts/linotype/syntax/](https://www.myfonts.com/fonts/linotype/syntax/)

------
animex
There sure are some odd articles climbing to #1 on Christmas day on HN.

~~~
crististm
I think it relates to the audience still online today. It must say something
about the interests of the offline people :)

~~~
nickpsecurity
Does that mean the people chasing fads are off chasing a long-lasting fad
while mere rational people are still being rational? ;)

~~~
crististm
I can't tell.

My hypothesis is that there is a smaller presence of hype-oriented people
(usually the majority), to skew off the first-page. Oberon submissions are in
a niche that would be quickly overwhelmed on a normal day.

~~~
MaysonL
Actually, Oberon has a fairly strong support on HN. Here are scores for the
last year's Oberon story submissions:

Project Oberon 417 points Fenume 6 months ago 87 comments
([http://www.projectoberon.com/](http://www.projectoberon.com/))

OberonStation, an Oberon RISC workstation 130 points sinrostro 2 months ago 96
comments ([http://oberonstation.x10.mx](http://oberonstation.x10.mx))

Oberon – The Overlooked Jewel (2000) [pdf] 78 points marsmxm 4 months ago 23
comments
([http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.90....](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.90.7173&rep=rep1&type=pdf))

Oberon System, an OS Written in Oberon 46 points DiabloD3 3 hours ago 20
comments
([https://en.wikipedia.org/wiki/Oberon_(operating_system)](https://en.wikipedia.org/wiki/Oberon_\(operating_system\)))

Project Oberon Emulator in JavaScript and Java 38 points cylinder714 4 months
ago 10 comments
([http://schierlm.github.io/OberonEmulator/](http://schierlm.github.io/OberonEmulator/))

Oberon vs. C++ (1994) 26 points networked 9 months ago 18 comments
([http://www.modulaware.com/mdlt49.htm](http://www.modulaware.com/mdlt49.htm))

Oberon operating systems 9 points networked 5 months ago 0 comments
([http://www.progtools.org/article.php?name=oberon§ion=compile...](http://www.progtools.org/article.php?name=oberon§ion=compilers&type=tutorial))

~~~
gtirloni
For perspective, count of stories submitted:

php - 75508

javascript - 39526

python - 38836

ruby - 25275

java - 23527

cobol - 8383

node.js - 6677

c++ - 4858

lisp - 2983

haskell - 2917

scala - 2730

perl - 2479

swift - 2173

c# - 1954

erlang - 1882

modula-2 - 1648

rust - 1277

object-c - 1223

coffeescript - 1136

lua - 713

pascal - 687

f# - 606

ada - 428

typescript - 339

modula-3 - 322

oberon - 243

fortran - 182

~~~
PudgePacket
golang didn't show up? My thoughts are because of it's name makes it hard to
identify correctly, possibly?

~~~
gtirloni
Yes, there was too much noise.

------
antidaily
I've written a fair amount of code drinking Oberon. So...

~~~
nickpsecurity
These?

[http://www.oberonwines.com/oberon-wines-napa-
valley.html](http://www.oberonwines.com/oberon-wines-napa-valley.html)

~~~
cwyers
Presumably this:

[http://www.beeradvocate.com/beer/profile/287/1094/](http://www.beeradvocate.com/beer/profile/287/1094/)

~~~
nickpsecurity
Another candidate. Due to simplicity focus, "Oberon Ale is brewed with the
only the fewest ingredients." Haha.

