Oberon/Beginning as a Novice

The user interface of the Oberon System is quite surprising on the first sight.[1] It is a so called text based user interface (TUI) and combines the point-and-click convenience of a graphical user interface (GUI) with the linguistic strength of a command line interface (CLI). It is closely tied to the naming conventions of the Oberon language. Any text appearing (almost) anywhere on the screen can be edited and can be used as command input. Commands are activated by a mouse-middle, MM, click on a text fragment of the form Module.Command (optionally followed by parameters, which are terminated by ~). A command is defined by a procedure, which has an empty argument list. Parameters to the command have to be defined before executing the middle click and must be explicitly scanned and retrieved by the procedure. There are no checks nor any questions asked during command execution. This is sometimes called a "non-modal" user interface (UI). Nothing like a command prompt is required. Although radically different from a command line, the TUI is very efficient and powerful.[2] Active elements can be embedded in Oberon texts: a clock showing the current time, push buttons, or graphical elements visualizing data. Most user interface elements are realized with the help of documents. A steep ascent in the early learning curve can be somewhat challenging. No questions are asked: this is a deliberate design decision, which needs getting used to. For example, most familiar editors ask the user when closing a modified text: this is not the case in the Oberon System. The usage of the TUI and programming interface is fully documented in Martin Reiser's book "The Oberon System".[3] A short introduction to the user interface can be found on Niklaus Wirth's home page. The later Versions of System Oberon, Oberon V4 (or V4 in short, sometimes also referred to as Linz-Oberon) and ETH-Oberon (sometimes also called Oberon System 3, S3 or Spirit of Oberon), enhanced the basic interface with different but incompatible implementations for buttons, drop down menus, and other active elements. V4 used for that purpose a dedicated control character embedded in normal text in contrast to System 3, which extended the kernel by introducing persistent objects. Both extensions include a large set of user interface elements.

Mastering the Oberon user interface, both the purely textual and also the so called Gadgets System (under ETH Oberon), is absolutely non-trivial. Therefore it is recommended to proceed after a successful installation of ETH Oberon to André Fischer's Oberon System 3 (ETH Oberon) Tutorial. An expanded version of this tutorial is published as a book,[4] which is now out of print. Although the book has a standard copyright, it is available in electronic form under a single user license in every installed version of System 3 (Windows, Linux or Native, i.e. also with the Gadgets toolkit of OLR[5]). If you try to read it in System 3, you are confronted with the classical chicken and egg problem: You have to master the user interface to have access to the documentation of the user interface. Therefore some detailed instructions for reading "The Oberon Companion" – after a successful installation of the Oberon System can be found by opening the file Book.Tool with the command Desktops.OpenDoc. If this command is not present in any of the windows/viewers, which are opened by default when you start the Oberon System, you can click anywhere with the left-mouse button (ML) in any viewer and type the command Desktops.OpenDoc Book.Tool ~. Then move the mouse over Desktops.OpenDoc and do a middle-mouse button (MM) click. This will open an new viewer with a table of contents of "The Oberon Companion". All lines with blue text are hyperlinks to the chapters of the book, which in turn can be clicked with the MM button so that the chapter will open in a new viewer. The license in Book.Tool gives the user the right to print a single copy for personal use. Good results in printing were obtained with a GhostScript based free PDF converter under MS Windows using PluginOberon but that should not be a prerequisite. If you want to print an open document in Oberon, i.e., the contents of a window (or viewer in Oberon terminology), you have to set the star shaped mark by hitting the F1 key (see Tutorial) and then issue the command Desktops.PrintDoc Default * ~ by a MM click on Desktops.PrintDoc. In an Oberon command the * is not a wildcard, but symbolizes the marked viewer.

  1. Video Tutorial 2, produced by Andres Ramos, illustrates salient features of the interface in a readily digestible manner.
  2. Franz, Michael (2000). "Oberon - The Overlooked Jewel". in Böszörmény, Lászlo; Gutknecht, Jürg; Pomberger, Gustav. The School Niklaus Wirth - The Art of Simplicity. Morgan Kaufmann Publishers. pp. 41–53. ISBN 1-55860-723-4. https://pdfs.semanticscholar.org/d48b/ecdaf5c3d962e2778f804e8c64d292de408b.pdf. Retrieved 2017-12-14. 
  3. Reiser, Martin: "The Oberon System - User Guide and Programmer's Manual" - Out-of-print - Addison-Wesley/ACM Press (1991) ISBN 0-201-54422-9
  4. André Fischer & Hannes Marais: The Oberon Companion. A Guide to Using and Programming Oberon System 3. vdf Hochschulverlag AG (1997). ISBN 978-3728124937, out of print, for a personal copy, see notes in text
  5. Matthias, Peter. "Oberon Linux Revival". Retrieved 31 August 2016.