Hacker News new | past | comments | ask | show | jobs | submit login
Oberon, a delightfully insane system (ignorethecode.net)
128 points by blasdel on May 4, 2009 | hide | past | web | favorite | 30 comments



I said this and I will say it again. Oberon, the language, is the most delightful little thing to write a compiler for. Even more so in s-exp syntax. The canonical implementation is described in a 40 page tutorial by the MASTER himself, Wirth :-)

People interested in alternative desktop and GUI environments should also look at all the biproduct research that came out of Plan9 (NB: there is a programming language called "Squeak" somewhere in there, it's not the smalltalk, but something C-ish invented by Rob Pike hacked on by the usual Bell Labs suspects :-)


I feel like this is an excellent example of what happens when you include the right abstractions in your software from the get go. Very very very cool how just a few simple ideas avoid a whole bunch of usability issues that mainstream OSes are only now starting to address.


The text-based interface there is probably most immediately accessible in terms of Wily (http://www.cse.yorku.ca/~oz/wily/), a Unix port of Acme (http://plan9.bell-labs.com/sys/doc/acme/acme.html) from Plan9, which was in turn inspired by Oberon. (I spent a couple days trying wily out. Interesting system. I never really acclimated to its mouse-centric UI, but I think it integrates even better without other programs than Emacs does.)


Here's the relevant quote from the acme paper by Rob Pike, "Cedar was, however, the major inspiration for Oberon [Wirt89], a system of similar scope but much smaller scale. Through careful selection of Cedar’s ideas, Oberon shows that its lessons can be applied to a small, coherent system that can run efficiently on modest hardware. In fact, Oberon probably errs too far towards simplicity: a single-process system with weak networking, it seems an architectural throwback.

"Acme is a new program, a combined window system, editor, and shell, that applies some of the ideas distilled by Oberon. Where Oberon uses objects and modules within a programming language (also called Oberon), Acme uses files and commands within an existing operating system (Plan 9). Unlike Oberon, Acme does not yet have support for graphical output, just text. At least for now, the work on Acme has concentrated on producing the smoothest user interface possible for a programmer at work. "


There is a Unix port of Acme as part of Plan 9 from User Space (http://swtch.com/plan9port/).


oops:

Integrates even better with other programs...


Neat stuff. Jef Raskin explores a number of these ideas (ZUIs, command-lines-everywhere, etc.) in his book The Humane Interface. Some really cool ideas about UI design.


Anyone here use Sugar as their primary desktop-environment?

I don't know much about Oberon other than this article and it was founded at the school he graduated from, but Sugar seems like the most modern and feasible alternative to a GUI akin to something like this.

Oberon V4 appears to be orphaned, there are almost no changes since 2000. -http://en.wikipedia.org/wiki/Oberon_operating_system


We provide an open source version of the language (Component Pascal = Oberon V2) and a runtime environment (BlackBox) running on Windows (http://www.oberon.ch/blackbox.html). Regards, tamberg


It's a little hard to tell from those screenshots,but it looks like Oberon's text-based interface could have been influenced by the Xerox PARC Cedar environment or possibly the XDE/Tajo environment that Xerox used internally to develop the Xerox Star. Cedar would be the more likely guess because Wirth spent time at PARC.

Modula 2 was influenced by the Mesa language developed at PARC and used to develop the Star and various PARC projects.


It was influenced by Cedar. IIRC, Oberon was described as a simplified successor to Cedar, with an initial usable implementation from the kernel and language up designed and created in 3 years by 2 people.

See the "Project Oberon" section in "A Plea For Lean Software" (cr.yp.to/bib/1995/wirth.pdf)


They also did the hardware and taught at ETHZurich.


We learned OBERON in the first programming course. There were also oberon workstations available for students to browse the web, but nobody was using them, so they got replaced.

Anybody else remember the inter click? :)


Yep, my introductory programming course at university was also based on Oberon (actually, it was the second course, the first one was based on Miranda). I absolutely loathed the interface with the interclicks and crummy text editor. The concepts in the system were good. In my opinion it was just an utter usability failure.


shame it doesn't work in VMWare.

I tried both isos, the 7MB and 77MB one and tweaked a little bit with the settings but I just get a black screen, it doesn't seem to boot at all.

If anyone does manage to get it going could you please post some instructions? Thanks.


I think there are Oberon applications for Linux and Windows, one of the article's links goes to an ETH page with downloads for these. Other than that, you can try running it in Parallels. It didn't work in VMWare on my system, either, but the trial version of Parallels ran it just fine.


I tried out the Windows version. All you have to do is extract the 2 system archives into a folder somewhere on your disk and run the executable. It looks like you get the whole environment, with the ability to create multiple document windows. I haven't played with it further though, so I'm not sure how it would differ from running it right on the hardware.


Unfortunately I can't try Parallels (again). I already tried their demo version a while ago when I was trying to decide whether to purchase VMWare or Parallels.

It seems possible though to get it running with VMWare so I'll do some further investigation.


I got it to run in VMWare. Well, boot anyway, right out of the "box." There wasn't sound or any peripherals support, but there was enough working to play.


ok good to know. I'm going to take another look.


I wonder if this helped to inspire/would dovetail with Ubiquity. I use Chrome rather than Firefox but I hope Ubuity will get ported for this browser when Google opens up the plugin interface.


The Ubiquity team at Mozilla is lead by Aza Raskin, son of Jef Raskin. (Jef wrote the book "Humane Interfaces" and developed THE (The Humane Environment), which never progressed beyond the tech demo you can read about at http://en.wikipedia.org/wiki/Archy and download the last version from https://users-www.wineme.fb5.uni-siegen.de/home/Sebastian%20... ). Aza started Humanized, to develop Enso, a direct predecessor of Ubiquity, but which I find even more useful since it runs outside the browser,and is therefore useable from any program, and is written in Python, and it totally hackable. You can get Enso from http://humanized.com/ .


Honestly, I have no idea why they're limiting it to be firefox only. They're using the wrong level of abstraction, it should be available to all applications. (IMO)


Chrome isn't open for plugin development AFAIK, is all. And I quite understand them not bothering with IE. I didn't mean to suggest that the Ubiquity team were trying to tether anyone.


It is, in the form of the now-open-source Enso. (But really, Ubiquity is in Firefox alone because the general case is a whole lot harder.)


What's insane about it? It's brilliant!


From what I read, then all the fluff about Oberon is mostly about the tiling window manager.

In case anyone wants to try something like this on modern operating systems then it is actually possible: Xmonad, awm, ratpoison, ion, larswm... (and list goes on)


I like the idea of a TWM zooming out, showing you all your windows scaled down, and then allowing you to come up with window groupings in a visual way.

Or, maybe you could zoom all the way out, then start tossing out windows you don't care about and the windows rearrange themselves and zoom in as you do so.


And for the console, dvtm.


Oberon was one of the inspirations for Plan 9 From Bell Labs, of which I am very happy user.




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

Search: