---
created_at: '2013-10-05T00:21:26.000Z'
title: Oberon (2009)
url: http://ignorethecode.net/blog/2009/04/22/oberon/
author: olaf
points: 97
story_text: ''
comment_text: 
num_comments: 31
story_id: 
story_title: 
story_url: 
parent_id: 
created_at_i: 1380932486
_tags:
- story
- author_olaf
- story_6498878
objectID: '6498878'

---
[Source](http://ignorethecode.net/blog/2009/04/22/oberon/ "Permalink to ignore the code: Oberon")

# ignore the code: Oberon

[April 22, 2009][1]

#  [Oberon][2]

[Steven Frank’s essay on the current state of the desktop UI][3] 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][4]

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 Wirth[1][5] had seen at Xerox PARC. In the early 80s, the strangely named [Lilith Workstation][6] was one of the world’s first high-resolution computers with a graphical user interface.

![Lilith][7]

The software system developed for the Lilith was Modula-2 and later [Oberon][8], 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][9]

In some ways, the result is closer to the [Canon Cat][10] 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][11]

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

![Launching Commands][12]

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][13] 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 you’ve essentially created your own ad-hoc user interface for your current task.

# Everything is Zoomable

Oberon’s «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][14]

([Click for a larger version][15])

It’s 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 don’t need to rearrange windows in order to get an overview of your open stuff. It’s 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.

There’s [a movie on YouTube showing how zooming in Oberon works][16].

# Sounds cool, can I play around with this stuff?

Sure. In fact, I recommend it. It’s most likely unlike everything else you’ve ever seen.

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

To get started, click on «Docu» and «Tutorial» after you’ve 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][19]. [More information][20].

* * *

1. Of Pascal fame. I’m 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 don’t hold that against me. ↩︎

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

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

![][21] ![designed for use cover][22]

**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][23]. Or you can get it [on Amazon][24], where it's also available in [Chinese][25] and [Japanese][26]. 

[ignore  
][27] [the  
][27] [code][27]

written by  
Lukas Mathis 

![][28]  
Hi. My name is Lukas Mathis. I studied Computer Science/Software Engineering and Ergonomics/Usability at [ETH Zürich][29]. I work as a software engineer and user interface designer for a swiss software company creating [process management software][30]. [I've written a book about usability][31]. It's been translated to [Chinese][25] and [Japanese][26]. 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][32].  
  

![][33] [Subscribe via RSS][34]

![][35] [Get Updates via Twitter][36]

![][37] [Subscribe by Email][38]

Search:  

or [browse the archives][39].

[1]: http://ignorethecode.net/blog/2009/04/22/oberon/
[2]: http://ignorethecode.net/blog/2009/04/22/oberon/ "Permanent Link to Oberon"
[3]: http://stevenf.tumblr.com/post/94591835/warning-a-long-rambly-exploration-of-the-state
[4]: http://ignorethecode.net/blog_images/oberon/history1.png
[5]: http://ignorethecode.net#fn%3A91.wirth
[6]: http://www.ethistory.ethz.ch/rueckblicke/departemente/dinfk/forschung/weitere_seiten/lilith/index_DE/popupfriendly
[7]: http://ignorethecode.net/blog_images/oberon/lilith.jpeg
[8]: http://en.wikipedia.org/wiki/Oberon_programming_language
[9]: http://ignorethecode.net/blog_images/oberon/history2.png
[10]: http://en.wikipedia.org/wiki/Canon_Cat
[11]: http://ignorethecode.net/blog_images/oberon/OberonScreen.png
[12]: http://ignorethecode.net/blog_images/oberon/command.png
[13]: http://ignorethecode.net#fn%3A91.security
[14]: http://ignorethecode.net/blog_images/oberon/zoomable_small.png
[15]: http://ignorethecode.net/blog_images/oberon/zoomable_large.jpg
[16]: http://www.youtube.com/watch?v=Pe0ZdzO_urU
[17]: http://bluebottle.ethz.ch/
[18]: http://www.ocp.inf.ethz.ch/wiki/OCP/Downloads
[19]: ftp://ftp.lrz.de/transfer/BlueBottle-A2
[20]: http://www.ocp.inf.ethz.ch/wiki/Development/Builds#toc4
[21]: http://ignorethecode.net/blog_images/swirly.gif
[22]: http://ignorethecode.net/blog_images/designed_for_use_second_edition.jpg
[23]: https://pragprog.com/book/lmuse2/designed-for-use-second-edition
[24]: http://www.amazon.com/gp/product/1680501607/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1680501607&linkCode=as2&tag=wisegamersch-20&linkId=74A2IPF6GRYBDDTA
[25]: http://amzn.to/WMI37B
[26]: http://www.amazon.jp/dp/4873116082
[27]: http://ignorethecode.net/
[28]: http://ignorethecode.net/blog_images/lukas.jpg
[29]: http://www.ethz.ch/
[30]: http://appway.com/
[31]: http://pragprog.com/titles/lmuse/designed-for-use
[32]: http://twitter.com/LKM/
[33]: http://ignorethecode.net/blog_images/rss.png
[34]: http://ignorethecode.net/blog/rss/
[35]: http://ignorethecode.net/blog_images/twitter.png
[36]: http://twitter.com/ignorethecode
[37]: http://ignorethecode.net/blog_images/mail.png
[38]: http://feedburner.google.com/fb/a/mailverify?uri=IgnoreTheCode&loc=en_US
[39]: http://ignorethecode.net/blog/browse/

