hn-classics/_stories/2009/6498878.md

168 lines
9.7 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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'
year: 2009
---
[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 Franks 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 worlds 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 doesnt 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 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][14]
([Click for a larger version][15])
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][16].
# 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][17] or from the [Oberon Community Platform][18]. 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][17]; 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][19]. [More information][20].
* * *
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>**
![][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/