hn-classics/_stories/2009/6498878.md

9.3 KiB
Raw Blame History

Source

ignore the code: Oberon

April 22, 2009

Oberon

Steven Franks essay on the current state of the desktop UI reminded me of Oberon, a delightfully insane system I used back when I was studying computer science at ETH Zürich. The first thing you have to understand about Oberon is that it evolved entirely outside of the normal genealogy of user interfaces. Extremely simplified, the evolution of modern graphical user interfaces goes something like this:

History of the modern UI

The Lisa marked the first modern user interface with windows, icons as objects, menus and mouse input. To this day, these concepts remain essentially unchanged. A person used to Vista or Mac OS X would immediately understand how the Lisa works.

Oberon is not part of the «Lisa» line of user interfaces. The following part is based on what people at ETH Zürich have told me and may or may not be true. When ETH Zürich started its own computer science program in the 60s, buying computers from the US turned out to be a bit of an issue. They were expensive and often unsuitable for European use (what with our strange umlauts and stubborn insistence on speaking languages different from English). So ETH Zürich decided to start working on its own hardware and software systems. These projects were based on the Alto Niklaus Wirth1 had seen at Xerox PARC. In the early 80s, the strangely named Lilith Workstation was one of the worlds first high-resolution computers with a graphical user interface.

Lilith

The software system developed for the Lilith was Modula-2 and later Oberon, which is both a programming language and an OS with a unique text-based graphical user interface.

Basically, Oberon ignored all that Lisa stuff and progressed from an entirely different branch of the GUI genealogy:

History of the modern UI and Oberon

In some ways, the result is closer to the Canon Cat than to any other modern system. Obviously, Oberon has evolved a lot of weird features that are not found in any of the «Lisa-based» GUIs. Here are two of them.

Everything is a Command Line

Even though Oberon is a graphical, mouse-driven user interface, it is also very much text-based. It eschews icons in favour of words:

Oberon

To launch applications or execute commands, you first type them somewhere (anywhere, it doesnt matter), and then middle-click them:

Launching Commands

This may seem weird at first, but is actually extremely cool because it allows for some neat features. You need a program launcher? Create a new text file with the programs you need. Want to write a tutorial on a topic? You can include all kinds of commands right inside the tutorial and simply tell readers to click on them. Need to explain to your aunt what application to launch? Tell her to click on a word in the e-mail you just sent her.2 Working on something specific which requires you to execute the same commands again and again (such as compiling and executing an application)? Simply type the commands somewhere and youve essentially created your own ad-hoc user interface for your current task.

Everything is Zoomable

Oberons «desktop» is an infinitely large two-dimensional space on which windows (and documents, since the distinction becomes meaningless in some ways) can be arranged:

Zoomable UI

(Click for a larger version)

Its incredibly easy to move around on this plane and zoom in and out of it. Instead of stacking windows, hiding them behind each other (which is possible in modern versions of Oberon), you simply arrange them next to each other and zoom out and in again to switch between them. When people held presentations using Oberon, they would arrange all slides next to each other, zoom in on the first one, and then simply slide the view one screen size to the right to go to the next slide.

This essentially obsoletes concepts like virtual desktops, application switchers, or Exposé, since you have as much space as you need on your one desktop, and since you dont need to rearrange windows in order to get an overview of your open stuff. Its especially cool on netbooks with tiny screens.

In some ways, this also obsoletes the idea of opening a document. Essentially, all documents can be open all the time. All you have to do to interact with one is to zoom in close enough. A document can be its own icon, and its own window.

Theres a movie on YouTube showing how zooming in Oberon works.

Sounds cool, can I play around with this stuff?

Sure. In fact, I recommend it. Its most likely unlike everything else youve ever seen.

You can get a recent version of Oberon on bluebottle.ethz.ch or from the Oberon Community Platform. Im not entirely sure which versions contain which features. The version Ive played around with most recently is the one found at bluebottle.ethz.ch; it contains the zoomable UI, which not all versions of Oberon have. I couldnt get it to run on VMware, but it runs just fine in Parallels.

To get started, click on «Docu» and «Tutorial» after youve launched Oberon. If you have a mouse with less than three buttons, try holding down modifiers while clicking and using the scroll wheel.

So, did you actually use this thing?

Yeah. Oberon is very much in active use at ETH Zürich. We used it as one of our main operating systems.

Update

You can find more current versions of A2 here. More information.


  1. Of Pascal fame. Im proud to say that I attended classes both by Niklaus Wirth and by Bertrand Meyer, the creator of Eiffel. Also, I once talked to Stroustrup, but please dont hold that against me. ↩︎

  2. Yeah, lets ignore the security implications for a second :-) ↩︎

If you require a short url to link to this article, please use http://ignco.de/91

designed for use cover

But wait, there's more!

Want to read more like this? Buy my book's second edition! Designed for Use: Create Usable Interfaces for Applications and the Web is now available DRM-free directly from The Pragmatic Programmers. Or you can get it on Amazon, where it's also available in Chinese and Japanese.

ignore
the
code

written by
Lukas Mathis


Hi. My name is Lukas Mathis. I studied Computer Science/Software Engineering and Ergonomics/Usability at ETH Zürich. I work as a software engineer and user interface designer for a swiss software company creating process management software. I've written a book about usability. It's been translated to Chinese and Japanese. My first computer was a Performa 450, my first programming language was HyperTalk, my first electric guitar was a cheap Peavey, my first videogame was a VCS 2600 and my current snowboard is from Lib Tech. I live in a small cottage in a remote part of the Swiss Alps, and you can reach me at or on twitter.

Subscribe via RSS

Get Updates via Twitter

Subscribe by Email

Search:

or browse the archives.