Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Project Oberon is awesome!

I found the Project Oberon book in SFSU library and read it cover to cover. Such a tight, elegant system. Pretty much complete: Oberon OS includes compiler for Oberon language!

Language was self-hosted (compiler written in itself) and Prof. Wirth had a heuristic: no feature could be added to the lang/compiler if it made compiling the compiler slower.

There are several emulators, in C, JS, Java, and Python, and there's Verilog so you can burn to FPGA and make a real workstation. People have.

The system has two kinds of OOP. There is the C++/Java/Python/etc. kind where you basically add methods to a record type, and there is the old school Smalltalk message-passing kind, where elements of the OS communicate through an extendable message bus.

The GUI system, especially with the "Gadgets" subsystem, is mind-blowing. It would take too long to go over it at the moment, but there are features there that still haven't made it into mainstream GUI systems. If I get a minute later today I'll come back and add a note detailing some of the awesome if someone else hasn't already filled in the picture.



I have a old article with lots of screenshots,

http://progtools.org/article.php?name=oberon&section=compile...


Pretty amazing. I wish I could do my work on a truly lightweight system like this.


Look at that install screen. Everything is listed in KB instead of GB. It's beautiful.


Some of the gui stuff actually made it into Plan 9, see the acme editor for more info.

I love all of Wirths writing, he really does a lot to make complex topics approachable.

Note there's a lot more to OOP than adding methods to records, on the surface yeah, but "primitive" sub-typing just scratches the surface. This isn't a criticism, just a note so anyone interested can learn more, Pierce's Types and Programming Languages is a good place to start.


> The GUI system, especially with the "Gadgets" subsystem, is mind-blowing. It would take too long to go over it at the moment, but there are features there that still haven't made it into mainstream GUI systems.

Have you seen Delphi?


Yes. Oberon with Gadgets was like having the capabilities of Delphi live in the GUI. You could literally select widgets and open an inspector tool and edit them. It also had a facility similar to OLE ( https://en.wikipedia.org/wiki/Object_Linking_and_Embedding ) implemented with message passing.

When I said these features still haven't made it into mainstream GUI systems I didn't mean that they weren't represented at all. But Delphi is an app rather than a built-in part of the OS/GUI. OLE was in Windows, but it didn't really take off AFAIK. Smalltalk integrated GUIs (Pharo, Squeak, etc.) are very similar, albeit with a very different language and runtime architecture, but again, Smalltalk didn't break into widespread mainstream adoption.


COM is everywhere on Windows, OLE is just a specific set of COM interfaces.

After the Windows team successfully sabotaged Longhorn efforts, they went on replicating the .NET designs for Longhorn in COM instead.

So since Vista all major Windows APIs are COM, and WinRT is basically a marketing name for COM 2.0.


> After the Windows team successfully sabotaged Longhorn efforts

Why did they do that?


Politics, .NET has always been part of DevTools business unit, while C++ and Windows were under WinDev roof.

Longhorn's goals was to rebuild Windows on top of .NET, naturally there were performance issues with the state of .NET 2.0 capabilities.

However instead of working together , while improving the whole stack (languages and runtime) to make it possible, like Google teams have later done with Android and ChromeOS, they just deemed it impossible and started pushing for a reboot.

When Sinfosky of the Office team took charge (another C++ holdout at MS), they picked up all the Longhorn's ideas redoing them in COM.

It is no surprise how WinRT turned out to be COM 2.0 with him in charge of Windows 8.

https://hackernoon.com/what-really-happened-with-vista-4ca7f...

"Turning to the past to power Windows’ future: An in-depth look at WinRT"

https://arstechnica.com/features/2012/10/windows-8-and-winrt...


Ah, I stand corrected. Cheers!

BTW your article you link to above is awesome!


I'm looking forward to reading your note; IIRC "Gadgets" postdates the book and so isn't documented in it.


Yes, Gadgets was written by a student later on. "The GADGETS user interface management system" https://www.research-collection.ethz.ch/handle/20.500.11850/...

I'm trying to find original sources, as my memory is a little foggy. There is some good information here: https://en.wikibooks.org/wiki/Oberon/ETH_Oberon/Tutorial

Basically it combined a nice Model-View-Controller widget collection with facilities like live introspection and editing of widgets, and embedding widgets in (multiple) documents (edit a spline widget in one view and it changes in all the views/docs in which it's embedded)

It might sound a little plain vanilla now, but this was in 1990-1991.


Thank you!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: