Oberon System 3
github.com
github.com
If I were younger, and more sure of myself, I'd fork it, and "fix" a few things. I'd convert ARRAY OF CHAR in almost all cases to Free Pascal Style counted, reference counted, garbage collected, unlimited length AnsiString or WideString. (So they can contain NUL, and over a gigabyte of text).
I'd run it through NotePad++ and convert all tabs to spaces
I'd run as fast as I could towards Free Pascal compatible syntax, ditching case sensitivity and the non-standard # instead of <> for inequality.
Even though I'm older now, and more conservative... I still feel ---> <--- this close to being nerd sniped by it.
Oops... too late... I've been bit[0]
Anyway Oberon System 3, is a great example of a full graphical single user workstation OS, with component framework (OLE style), with a repl, written in a GC enabled system programming language, supporting both JIT for dynamically loaded modules, or straight AOT compilation.
All of this when PCs still had to deal with Windows 3.x.
Some of the Office team early developers were ex-Xerox researchers.
I haven't mentioned them, because they aren't well know outside Xerox PARC archeology.
https://citeseerx.ist.psu.edu/document?repid=rep1&type=pdf&d...
He later wrote Microsoft Word, and other parts of what became MS Office, at Microsoft, where he was Chief Architect:
https://en.wikipedia.org/wiki/Charles_Simonyi
He designed what is now called Hungarian Notation:
https://en.wikipedia.org/wiki/Hungarian_notation
Word uses the famous piece table data structure -- also from PARC -- which is how "fast saves" work.
https://web.archive.org/web/20160308183811/http://1017.songt...
As a result Simonyi is a billionaire and was the first ever two-time space tourist:
https://www.theguardian.com/world/2009/mar/26/space-tourist-...
You could justifiably say that he and his work are quite famous. (!)
The Oberon component model actually differs significantly from COM/OLE. Oberon uses messages and message protocols; COM uses interfaces and the same virtual function tables as C++. Also interesting to note that there is not a single type-bound procedure in the whole Oberon System release 2.3.6 code.
Of course the Document/Gadgets/Library system was implemented in a different way as OLE.
I was trying to make a point about an idea for the people that might have heard of OLE and nothing else.
How many with the age of 30 years and below do you think even know what InterViews was about?
Demo: https://github.com/rochus-keller/OberonSystem3/blob/b2d16e32...
EDIT: not written in Modula-2 but wrongly attributed by Github.
Modula-2 was designed by Niklaus Wirth, influenced by Mesa, and the XDE environment after his first sabbatical at Xerox PARC. Oberon would be out of his second sabbatical, influenced by Mesa/Cedar.
Modula-3 on the other hand, was born out of research at DEC/Olivetti from Mesa/Cedar former researchers, after they came out with Modula-2+, as Cedar's evolution influenced by Modula-2 design.
Oberon is written in Oberon, by the way.
It's not something you'd want to use today, but it's certainly worth studying. It's a wonderful lesson in keeping complex systems as simple as possible.
Possibly STEPs?: https://tinlizzie.org/VPRIPapers/tr2012001_steps.pdf
Oberon is able to run on actual hardware and works in various emulators.
I do love the research they did for STEPS though, it's unfortunate it didn't result into an actual release.
https://cr.yp.to/bib/1995/wirth.pdf
Here's a plain text version on my own blog:
https://liam-on-linux.dreamwidth.org/88032.html
Michael Franz' classic Oberon -- the Overlooked Jewel is also short and highly readable:
https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.90...
Will try it soon.