5 ms·
Oberon System 3
- pjmlp 3y agoThe last great version of Oberon, before ETHZ focused into Blue Bottle OS, written in Active Oberon. Which is actually my favourite version in the Oberon family linage. 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.
- nine_k 3y agoTo be fair, OLE was introduced in Windows 3.x. Of course, writing in Pascal or C++ was less fun than it would be in Oberon.
- pjmlp 3y agoOLE as concept, is based on how Xerox Star and GlobalView handled documents. 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.
- __d 3y agoYou could change that? They deserve the history be known.
- hedora 3y agoIt’s been documented elsewhere; e.g.: https://citeseerx.ist.psu.edu/document?repid=rep1&type=pdf&doi=0b066c63e83d36bd40cd3d967ba8697b2e45de9e https://citeseerx.ist.psu.edu/document?repid=rep1&type=pdf&d...
- lproven 3y agoCharles Simonyi developed Bravo, the first WYSIWYG word processor, for the Alto at Xerox PARC. 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 https://en.wikipedia.org/wiki/Charles_Simonyi He designed what is now called Hungarian Notation: https://en.wikipedia.org/wiki/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.songtrellisopml.com/whatsbeenwroughtusingpiecetables 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-simonyi https://www.theguardian.com/world/2009/mar/26/space-tourist-... You could justifiably say that he and his work are quite famous. (!)
- Rochus 3y ago> OLE style 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.
- pjmlp 3y agoStyle doesn't mean 100% the same C++ code as OLE. Of course the Document/Gadgets/Library system was implemented in a different way as OLE.
- Rochus 3y agoOLE 1 and Gadgets both appeared in 1990; Marais references the 1989 InterViews (Linton, Vlissides, Calder) publication in his 1990 report. See also https://doi.org/10.1080/10618600.1996.10474712 https://doi.org/10.1080/10618600.1996.10474712.
- pjmlp 3y agoYes Herr Professor, they appeared on the same year. 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?
- Rochus 3y agoIt is important and also helpful for the younger readers to name and correctly attribute the essential achievements. E.g. one fellow stated that "OLE was introduced in Windows 3.x", so it is important to note that the Oberon Gadget system appeared in the same year, and the component system was an independent achievement, that took a completely different approach than OLE or OpenDoc.
- vfclists 3y agoFrom the perspective of a Freepascal user - Neat!! Will try it soon.
- carapace 3y agoThe LayLa layout language is pretty neat. Converts a simple formal language to Gadgets (widgets). Demo: https://github.com/rochus-keller/OberonSystem3/blob/b2d16e3201a890d3bbefeab5879ee5fafab91bc4/LayLaDemo.Mod#L81-L95 https://github.com/rochus-keller/OberonSystem3/blob/b2d16e32...
- mikewarot 3y agoThat's cool... it's like a terse version of the DSL that Lazarus uses for forms. (.lfm files)
- mikewarot 3y agoI'm glad that Oberon is still in active development, it's great to have alternative operating systems, the more, the merrier. 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] [0] https://github.com/mikewarot/OberonSystem3FP https://github.com/mikewarot/OberonSystem3FP
- owlstuffing 3y agoSomewhat of a tangent, the oberonc compiler for the JVM brings the language to the Java platform as well. Very nice. https://github.com/lboasso/oberonc https://github.com/lboasso/oberonc
- pjmlp 3y agoNote that compiles Oberon-07, which isn't the same as Oberon.
- ofrzeta 3y agoWritten in Modula-2. I had to learn Modula-2 in university. When I read the announcement that we were to use Modula I thought it was Modula-3 that was already a thing at the time. But I guess Modula-2 is good enough and an even better teaching language. It was also a bit popular on the Atari ST with the Megamax Modula compiler (and at least three other Modula compilers!) EDIT: not written in Modula-2 but wrongly attributed by Github.
- cylinder714 3y agoAnd there's now a Modula-2 front-end for GCC: https://gcc.gnu.org/onlinedocs/gm2/ https://gcc.gnu.org/onlinedocs/gm2/
- Rochus 3y agoIt's the Oberon language, not Modula-2 (Github displays Modula-2 by mistake).
- ofrzeta 3y agoOh ok, thanks for the correction :)
- pjmlp 3y agoModula-3 is not directly related to Modula-2, despite what many think. 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.
- timbit42 3y agoIt was also a bit popular on the Amiga.
- einpoklum 3y agoCan fellow readers make a short pitch regarding why someone who is not familiar with Oberon would be interested in it today (other than historical curiosity)?
- Rochus 3y agoIt features an alternative way of object-oriented design with focus on messaging and message inheritance (instead of the usual dynamic dispatch and class hierarchies). And the Gadgets framework is also pretty interesting and likely worth to be reused in current systems.
- eterps 3y agoI don't know of any other system that accomplishes as much with the same amount of code lines. It includes not just a kernel, but also a compiler, a dynamic linker, an editor, and an unusual blend of a desktop and command line. 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.
- pjmlp 3y agoAnd a JIT in later versions, with the support for slim binaries.
- eterps 3y agoIndeed, Michael Franz's work was certainly impressive. It's unfortunate that the code readability of those parts didn't quite match up to the rest of the system.
- e12e 3y ago> I don't know of any other system that accomplishes as much with the same amount of code lines Possibly STEPs?: https://tinlizzie.org/VPRIPapers/tr2012001_steps.pdf https://tinlizzie.org/VPRIPapers/tr2012001_steps.pdf
- 3y ago
- sillywalk 3y agoWhat kind of filesystem does it have? Or does it have one?
- eterps 3y agoNon-hierarchical, a bit like a key value store.
- webmobdev 3y agoFor all those of you who crib about forced capitalisation of certain keywords and use of BEGIN ... END in Oberon, see for yourself how it improves the usability of reading the code, even without pretty colour formatting - https://raw.githubusercontent.com/rochus-keller/OberonSystem3/master/Edit.Mod https://raw.githubusercontent.com/rochus-keller/OberonSystem... ... each block of code can be easily identified for analysis.
- pjmlp 3y agoAlso, while it wasn't initially done on the environment, automatic formating can take care of it, capitalizing keywords automatically, or on save, no need to overuse the shift key.