8 ms·
Project Oberon
- vezzy-fnord 11y agoWow, this is excellent. The Oberon and Bluebottle OS materials have always been quite scattered, so someone putting them in a central index is quite convenient. For those unaware, Oberon's main qualities are the fact that it's a full operating system written in a garbage collected Pascal-like language (actually made by the same person who initially wrote Pascal) which uses said language's module system to provide reusable/chainable interfaces throughout the whole OS, support for orthogonal persistence and most notably, its highly unconventional user interface that bridges the power of the CLI and the GUI together in this vaguely hypertext-like workspace where you can dynamically live program the UI itself through on-screen text that can serve as an entry point or continuation to perform all sorts of computations, things you'd normally write hacky scripts for. Closest analogue is Xerox's Cedar. You should consider trying it and stealing a few ideas from it for the greater good.
- magicmu 11y agoThanks for this summary, I've been struggling for the last few minutes to try and figure out what the hell Oberon was. That sounds awesome!!
- atomatica 11y agoYes, thanks for the concise summary. The only thing I didn't understand is the part about garbage collection. What does garbage collection mean and what is the benefit in this implementation?
- vezzy-fnord 11y agoProgramming language with automatic memory management. Look up "garbage collection" for all the details in the world. The reason I brought it up is because it's a common trope that you can't do low-level programming with GC, and systems like Oberon are direct evidence to the contrary.
- nickpsecurity 11y agoExactly. I see the question on Stack Overflow all the time and just keep dropping a whole list of counterexamples. Too many myths in IT that hold mainstream back.
- coldtea 11y agoHmmm, if you don't know what garbage collection is (and I don't mean this as sneer) how are you sure that you understood everything else said? In the sense that garbage collection is a pretty basic CS term, and the summary contained lots of CS terms and implied knowledge to understand it (modules, interfaces, persistence, etc).
- rattray 11y agoActually, as a self-taught developer who started with Python and never had to learn about memory management, "garbage collection" was a concept I only became familiar with after a few years of reading gradually more & more material, usually from HN. The other stuff in the summary above would have either made sense or been "guessable" to 3-years-ago-me.
- ghshephard 11y agoGarbage collection was never really anything I recall being discussed in my Cmpt Science curriculum, back in 1990-1993, though there was lots of interesting theory about memory allocation/deallocation/defragmentation. It wasn't until I ran into Java around 2000 or so that people started talking about Garbage Collection. I'm not saying that it didn't exist, it was just less of a priority 25 years ago than 15 years ago.
- pjmlp 11y agoWell reference counting is also GC in CS speak and back then most BASIC systems made use of it. Also by the time Java was known, some of us already knew about Lisp, Smalltalk, Modula-3, Eiffel, Prolog, ML....
- sklogic 11y agoWeird. How could you miss Lisp and Smalltalk in the early 90s?
- todd8 11y agoEveryone has different experiences and interests in college, but I recall Garbage Collection as an important subject decades before 2000. I studied CS in the 1970s (and 1980s) and garbage collection was already an important subject. It was a part of the ACM recommended CS curiculum as far back as 1968. Google Scholar reveals thousands of results for "garbage collection algorithm" before 1990. The subject was studied by great computer scientists (Lamport, Dijkstra, and Liskov are all Turing award winners) and the results were fun and interesting: 1989 AW Appel: "Simple generational garbage collection and fast allocation" 1988 JF Bartlett: "Compacting garbage collection with ambiguous roots" J Crammond: "A garbage collection algorithm for shared memory parallel processors" 1987 AW Appel: "Garbage collection can be faster than stack allocation" DI Bevan: "Distributed garbage collection using reference counting" 1986 B Liskov, R Ladin: "Highly available distributed services and fault-tolerant distributed garbage collection" 1985 J Hughes: "A distributed garbage collection algorithm" 1983 H Lieberman, C Hewitt: "A real-time garbage collector based on the lifetimes of objects" 1982 RJM Hughes: "A semi‐incremental garbage collection algorithm" 1981 J Cohen: "Garbage collection of linked data structures" 1977 HC Baker Jr, C Hewitt: "The incremental garbage collection of processes" 1976 Douglas W. Clark: "An efficient list-moving algorithm using constant workspace" PL Wadler: "Analysis of an algorithm for real time garbage collection" 1975 Guy L. Steele, Jr.:"Multiprocessing compactifying garbage collection", CACM Edsger W. Dijkstra, Leslie Lamport, et al.: "On-the-fly garbage collection: an exercise in cooperation" 1974 Gary Lindstrom: "Copying list structures using bounded workspace" 1973 Edward M. Reingold: "A nonrecursive list moving algorithm" 1972 H. D. Baecker: "Garbage collection for virtual memory computer systems" Ben Wegbreit: "A space-efficient list structure tracing algorithm" 1969 Robert R. Fenichel, Jerome C. Yochelson.: "A LISP garbage-collector for virtual-memory computer systems" Joseph Weizenbaum: "Recovery of reentrant list structures in SLIP" 1967 H. Schorr, W. M. Waite: "An efficient machine-independent procedure for garbage collection in various list structures" Peter J. Denning: "The working set model for program behavior" 1963 Daniel J. Edwards: "Secondary Storage in LISP" The Communications of the ACM, during this period, was the most read CS Journal. Articles appearing there were intended to be of interest to the widest population of computer scientists and 19 of them were on garbage collection. LISP, APL, LOGO, ML, Prolog, CLU, Scheme, Cedar, Smalltalk, Icon, SML, Mathematica, J, Haskell, Python, Dylan, Self, Lua and Javascript are all important, garbage collected programming languages that came before the late 1990's.
- avodonosov 11y agoThe language: is it Oberon or Component Pascal (which was a descendant of Oberon)?
- user543823 11y agoIt is specifically Oberon-07[0], a 2007 revision of the original Oberon from 1986, which is still being worked on by Niklaus Wirth with updates as recently as this year. Component Pascal is a superset of Oberon-2, itself an extension of the original Oberon that tacked on limited OOP support and a handful of other tricks. Component Pascal was not a Wirth-designed set of extensions, however Blackbox Component Builder is quite the nice piece of kit in its own right. Unfortunately the availability of modern implementations for the Wirthian languages leaves something to be desired. The only implementations that cover both 64-bit platforms and any semblance of cross-platform support is the Vishap Oberon Compiler[1], Gardens Point Component Pascal[2], GNU Modula-2[3] and m2c[4]. There's also an Oberon-07 to JavaScript implementation[5]. At this point, the very small Wirthian languages community has been mostly focused on Oberon-07. It's worth noting there are a few Modula-2 fans about still poking at things, such as the Modula-2 R10[6] effort. [0]: http://oberon07.com/ http://oberon07.com/ [1]: http://oberon.vishap.am/ http://oberon.vishap.am/ (Oberon-2 compiler, limited Oberon-07 support) [2]: http://gpcp.codeplex.com/ http://gpcp.codeplex.com/ (Component Pascal for .NET) [3]: http://www.nongnu.org/gm2/ http://www.nongnu.org/gm2/ (Modula-2 GCC front-end) [4]: http://nongnu.org/m2c/ http://nongnu.org/m2c/ (Modula-2 to C compiler) [5]: http://oberspace.dyndns.org/oberonjs.html http://oberspace.dyndns.org/oberonjs.html [6]: http://bitbucket.org/trijezdci/m2r10 http://bitbucket.org/trijezdci/m2r10
- rednab 11y ago> Unfortunately the availability of modern implementations for the Wirthian languages leaves something to be desired. There is the Delphi-compatible, GPL-licenced Free Pascal¹). GNU Pascal²) is also still around but might or might not meet your definition of 'modern implementation'. ¹) http://www.freepascal.org http://www.freepascal.org ²) http://www.gnu-pascal.de http://www.gnu-pascal.de
- deleted 11y ago
- brandonmenc 11y ago> actually made by the same person who initially wrote Pascal Niklaus Wirth, for those interested.
- escherplex 11y agoA reminder of how curious it is that PARC had all of Kay's, Smith's and Wirth's handiwork under their belt, all the rudiments of today's PC with mouse-controlled icon WYSIWYG GUIs back in the late 1970s, and never had the imagination to go anywhere viable with it (but give it away as dramatized in 'Pirates of Silicon Valley'). Same could be said of PalmPilot and the smart phone.
- david927 11y agoI wouldn't call it lack of imagination, and it was all quite viable. Senior management simply punted on listening to anyone.
- pjmlp 11y agoI do Xerox PARC archeology, always looking for documentation from those days. This was triggered by having been a Smalltalk and Oberon user on their glory days. It made me realise how much the IT world lost by having UNIX clones going mainstream instead of these systems. Specially the culture that still insist in using their computers as if they had a PDP-11.
- osahal 11y agoSounds fantastic, but I'm sure it's not. If you made billions on a product such as did Xerox you'd be keen to fully investigate a technology that threatens to supplant your bread and butter product, fear will drive you to do this. Once the product has been developed you will look at it and say "Product X has a return of y, while there are zero customers for this newfangled product", this is more than enough for the board to reject the new idea, many of them think the new technology is just a passing fad anyway.
- dang 11y ago> on-screen text that can serve as an entry point or continuation to perform all sorts of computations, things you'd normally write hacky scripts for. The Acme editor famously works this way. So, in a rudimentary way, does the Emacs scratch buffer. It's a weird amalgam of text editor and REPL: you evaluate snippets of text and get the output in-place, and then edit the text to get what you want next. This live-text-as-code way of working is not how I'm used to interacting with a programming system and always slightly rewires my brain. But even in that simple form, you can grasp in it the beginnings of a whole computational paradigm, all the way up to UI. (Computational models don't usually imply a UI—this is an exception, as are spreadsheets.) Oberon must be the most systematic realization of this. I'd like to try it.
- vezzy-fnord 11y agoWhich is unsurprising, because Rob Pike was openly influenced by Oberon in the design of both Acme and the original Plan 9 windowing system 8½ and its current successor rio. Oberon exploits it further, though. Plan 9 does use chording, programmable text and plumbing but only insofar as it complements the synthetic file system interface, whereas Oberon is more thoroughly object-oriented and can have the text serve as a pointer to various OS subsystems, creating a sort of graphical continuation-passing style, as I alluded.
- skybrian 11y agoPerhaps something like an ipython notebook would be the "modern" way to do it?
- antimagic 11y agoOr getting more modern, Swift playgrounds in the latest versions of XCode have a similar kind of feel to them.
- aggyger 11y agoThe acme editor was new to me so thanks for that. The comment about spreadsheets reminded me of an interview on the Thoughtbot Podcast with Chris Granger about a new IDE being developed called Eve. [podcast link](http://giantrobots.fm/111 http://giantrobots.fm/111) If I understand correctly, the idea is that its like excel, but you use it to build domain editors, but it revolves heavily around constraint solvers? I don't know, but the podcast episode is awesome. Bottom line is that I'm giddy to use it [link to the announcement post](http://www.chris-granger.com/2014/10/01/beyond-light-table/ http://www.chris-granger.com/2014/10/01/beyond-light-table/)
- applecore 11y agoIs there a screencast available of this “chainable” interface? I haven't seen anything quite like it since The Mother of All Demos in 1968.
- vezzy-fnord 11y agoThere's not much in the way at all of video demonstrations for it, but I did find this: https://www.youtube.com/watch?v=UTIJaKO0iqU https://www.youtube.com/watch?v=UTIJaKO0iqU It might be of help.
- e12e 11y ago> highly unconventional user interface that bridges the power of the CLI and the GUI together in this vaguely hypertext-like workspace where you can dynamically live program the UI itself through on-screen text that can serve as an entry point or continuation to perform all sorts of computations, things you'd normally write hacky scripts for. Closest analogue is Xerox's Cedar. Sounds a lot like Smalltalk's print-it/do-it? I suppose the idea orginated with Oberon?
- pjmlp 11y agoWirth worked with Cedar at Xerox and wanted a similar experience at ETHZ.
- deleted 11y ago[deleted]
- JoachimS 11y agoThe weird TempleOS has similar features: http://www.codersnotes.com/notes/a-constructive-look-at-templeos http://www.codersnotes.com/notes/a-constructive-look-at-temp...
- nickpsecurity 11y agoGood summary. I'll add that Wirth's focus on simplicity makes it very easy to port to new hardware, too. Basically a compiler backend and some low-level stuff on bottom. Usually 1-2 students at ETH would do it over several months for each new architecture.
- rattray 11y ago> Google summary Was this an autocorrect-typo of "good summary", or am I missing something?
- nickpsecurity 11y agoGood catch! I've edited it to correct it.
- j_s 11y agoTL;DR (aka WTF?): The Design of an Operating System, a Compiler, and a Computer a design for a complete computer system. Its simplicity and clarity enables a single person to know and implement the entire system
- timClicks 11y agoTake a look at the Wikipedia entry if you would like an overview of the scale/scope of the project and its history: https://en.wikipedia.org/wiki/Oberon_%28operating_system%29 https://en.wikipedia.org/wiki/Oberon_%28operating_system%29
- drico 11y agoif you are interested you should have a look at www.fullpliant.org also
- madez 11y agoNot accessible for me. Error 404 Not Found Not Found Guru Meditation: XID: 630373509 Does it work for you?
- jcr 11y agoThat's a somewhat self-inflicted wound. Your browser is not sending a user-agent, and the site fails to follow RFC2616 Section 14.43 (sending a UA is _optional_).
- rbanffy 11y agoI love the Lilith mouse that's used in the first photo.
- nabla9 11y agoOberon had so many good ideas. It's still worth studying. The problem in the 90's: provide executable content across the net for browsers. Java was supposed to provide the portable universal binary code you could load and execute everywhere, except that it did not have the necessary features and was too complicated. Then came Javascript but it was broken mess for long time and needs binary format. There was Juice back in 1997 http://www.modulaware.com/mdlt69.htm http://www.modulaware.com/mdlt69.htm. Ligthing fast single pass compiler that works with AST and gives constant-time type and well-formedness checking portably over the net. If WebAssembly is ready in 2017, we can finally have the portable binary with the same set of features as Juice 20 years later. Instead of Oberon system, we have browser in the client and node.js in the server throwing WebAssembly around. It's like déjà vu all over again.
- stream_fusion 11y agoThe problem with Java binaries on the client, was that the Java applet didn't have direct access to the DOM bindings. Instead, the applet rendered it's own GUI via the plugin, and the look and behavior was inconsistent with the rest of the browser experience. A similar story with activex and flash. It's a mystery why it has taken so long to get to the point where we can target the browser with a statically-checked higher-level language that has API access to the native browser event loop and dom components the same way that Javascript does it.
- TazeTSchnitzel 11y ago> It's a mystery why it has taken so long to get to the point where we can target the browser with a statically-checked higher-level language that has API access to the native browser event loop and dom components the same way that Javascript does it. We are already there. Compile to JavaScript (or, heck, WebAssembly if that ever becomes feature-complete enough).
- sanbor 11y agoAnother problem with Java applets was that they were slow as hell for that time.
- 11y ago
- codezero 11y agoThis isn't the same, but if you're interested in looking at a compiler and OS mostly from scratch based on C check this out. It's pretty amazing. https://github.com/rswier/swieros https://github.com/rswier/swieros It comes from the author of the c4 compiler. (Interpreter?)
- sklogic 11y agoShameless plug: there is also mine kinda-C-based setup (but I also have a somewhat unfinished Oberon compiler too): https://github.com/combinatorylogic/soc https://github.com/combinatorylogic/soc
- LimpWristed 11y agoI am new to all this. I was thinking to get started with The Elements of Computing Systems by Nisan/Schocken. Is Project Oberon something entirely different? If not, how do they compare?
- me2i81 11y agoOberon is an already-built system designed by Niklaus Wirth, one of the giants of the field. The goal of Elements of Computing Systems is to have you build a more limited but still functional system yourself, so get busy!
- jtwebman 11y agoIt is funny, I was up late last night playing around with writing my own OS and then this becomes the #1 spot on Hacker News.
- notdan 11y agoThis sounds similar to another book/course/project I've seen that was quite interesting to work through: From NAND to TetrisBuilding a Modern Computer From First Principles http://www.nand2tetris.org/ http://www.nand2tetris.org/ http://www.amazon.com/The-Elements-Computing-Systems-Principles/dp/0262640686 http://www.amazon.com/The-Elements-Computing-Systems-Princip...
- snail_mail 11y agoCouldn't help but think of https://github.com/urbit/urbit https://github.com/urbit/urbit
- Keyframe 11y agoOberon. Now that's a name I haven't heard in a long time. Once upon a time there was a great crossroad in the early 90's (when I was a kid and learning programming - keep in mind that perspective). BASIC was on its way out - we all knew it to some extent due to home computers renaissance, but it was evident it didn't have any staying power. So there were all these wonderful machines with different architectures, OS' and programming languages out there, with no clear winner (it depended on what you wanted to do). So, basically there were two camps in the end, regarding programming languages. Pascal and C. Pascal had that notion that it was, too, on its way out, but was really useful and Oberon was around the corner so it was worth the wait to stick with it. On the other hand C++ was entering the arena full force, because machines were getting faster (it had a stigma of being slow). I went with C, because I was getting into SGI/IRIX and CG (and later on abandoned programming as a full time choice), and some of my friends went with Pascal. Oberon was floating in the air for some years, but nothing happened. This was always a mystery to me. Eventually, Pascal guys moved to Delphi and my circle of C guys either stayed with C (like I did) or bought OO Kool-Aid and went with C++ (of which some later on went to Java). Pascal (later on Delphi) guys developed sort of a cult. It never was clear what happened to Oberon, and (to me) to this day it's a mystery. Funny enough, I can now retrospectively see that programming languages we chose (and stuck with) was heavily influenced by machines/OS' we used. Pascal guys were mostly PC or Atari guys, and C were mostly those with access to *NIX and Amigas.
- pjmlp 11y ago> Oberon was floating in the air for some years, but nothing happened. This was always a mystery to me. Wirth was never good on capitalizing his work on the industry. Same thing happened to Modula-2 sadly. On his ACM award article and a later article about lean software, he discusses how sadly he sees industry embracing complexity instead of quality. http://www-oldurls.inf.ethz.ch/personal/wirth/Articles/TuringAward.pdf http://www-oldurls.inf.ethz.ch/personal/wirth/Articles/Turin... http://www.inf.ethz.ch/personal/wirth/Articles/LeanSoftware.pdf http://www.inf.ethz.ch/personal/wirth/Articles/LeanSoftware.... > Pascal guys were mostly PC or Atari guys, and C were mostly those with access to *NIX and Amigas. A reason why I never cared about C, so basic when compared with Turbo Pascal 6.0, and eventually got to move into C++. Also most of my friends with Amigas cared only about Assembly.
- mhd 11y agoAn interesting thing about Oberon is that the most recent revision removed some basic elements. Like multiple return statements… Wirth really likes his minimalism.
- RexRollman 11y agoI was going to try Oberon Native again (for the first time since 1996) after getting 9Front to work VMWare Fusion but couldn't find the installer images. I went to the following site: http://www.oberon.ethz.ch/downloads/index http://www.oberon.ethz.ch/downloads/index but the download links don't work. Does anyone know where it should be?
- sp332 11y agoThere's a note at ftp://ftp.inf.ethz.ch/pub/ETHOberon/readme.txt that says they've all been moved to ftp://ftp.ethoberon.ethz.ch/Oberon/
- RexRollman 11y agoThank you!
- Avshalom 11y agohttp://www.qemu-advent-calendar.org/ http://www.qemu-advent-calendar.org/ has a qemu image for download if scrol down to day 12
- rbanffy 11y agoThis (or a Lilith), an Alto, a Symbolics 3600... I'd love to see little Raspberry Pi versions of them... Oh... And, if possible, with matching keyboards and mice.
- dang 11y agoProject Oberon is a design for a complete computer system. Its simplicity and clarity enables a single person to know and implement the entire system, while still providing enough power to make it useful and usable in a production environment. Yes! We need so much more of this. If a system is to serve the creative spirit, it must be entirely comprehensible to a single individual. http://www.cs.virginia.edu/~cs655/readings/smalltalk.html http://www.cs.virginia.edu/~cs655/readings/smalltalk.html
- kylebrown 11y agoSpeaking of smalltalk, was project Oberon inspired by Alan Kay's STEPS project to implement a full OS + apps in under 20k LoC? http://www.vpri.org/pdf/tr2008004_steps08.pdf http://www.vpri.org/pdf/tr2008004_steps08.pdf
- dang 11y agoOberon dates from the 80s, so much earlier. But they are clearly kindred spirits in wanting to make whole systems that a single person can understand.
- pjmlp 11y agoIt was inspired by Cedar. Wirth took sabbatical years to work at Xerox PARC in the two occasions. After the first visit when we learned about Mesa, we designed Modula-2 and its OS Lillith. On the second visit he got to use Mesa evolution, Cedar, which was his inspiration for Oberon and the Ceres workstation.
- martanne 11y agoI had the chance to take a Oberon related lecture and its simplicity is really nice. Some things found in Oberon, like tiling window management, I use everyday. The book describes the whole system including the RISC CPU design. As part of the Niklaus Wirth Birthday Symposium to celebrate his 80th birthday he also gave a talk titled "Reviving a computer system of 25 years ago" (Abstract[0], Slides[1], Video[2]). There was also a demonstration on the original hardware, the system really seemed ahead of its time. Project Oberon also inspired me to write a text editor[3] using a piece table data structure as described in Chapter 5. [0] http://wirth-symposium.ethz.ch/speakers.html#Wirth http://wirth-symposium.ethz.ch/speakers.html#Wirth [1] http://wirth-symposium.ethz.ch/slides/wirth.pdf http://wirth-symposium.ethz.ch/slides/wirth.pdf [2] http://www.multimedia.ethz.ch/conferences/2014/wirth/?doi=10.3930/ETHZ/AV-d40b0ce9-b9fa-4ba3-8dee-cf9d0c6f01a4&autostart=false http://www.multimedia.ethz.ch/conferences/2014/wirth/?doi=10... [3] https://github.com/martanne/vis#why-another-text-editor https://github.com/martanne/vis#why-another-text-editor
- carapace 11y agoBe sure to read "Project Oberon, The Design of an Operating System and Compiler" generously published online as a pdf: http://www.ethoberon.ethz.ch/WirthPubl/ProjectOberon.pdf http://www.ethoberon.ethz.ch/WirthPubl/ProjectOberon.pdf There are emulators for Wirth's new cpu in JS, Java, C, and Python. You can run it in the browser from here: http://schierlm.github.io/OberonEmulator/ http://schierlm.github.io/OberonEmulator/ (Shameless plug: https://github.com/PhoenixBureau/PythonOberon https://github.com/PhoenixBureau/PythonOberon I wrote the Python emulator. It is sloooooooow, but it will boot and draw the screen (after a few minutes...)
- nickpsecurity 11y agoThe work started when Wirth saw the same Xerox setup that Apple did. Wirth couldn't buy one so he just built his own lol. The first system Wirth and Jurg Gutknecht designed was Lilith [1]. They improved Pascal to make modular software in the form of Modula-2. They made a P-code-like assembler language called M-code to make compilation easier and raise assembler abstraction slightly. They then wrote most of the system in Modula-2. They had in about 2 years a computer, OS, compiler, and some apps. ETH used these day-to-day and they later morphed into Oberon system. The brilliance of Wirth was keeping things simple. I think he overdid it but it served him well in many ways. He also kept things consistent where possible. Just having a simple language, compiler, libraries, and consistent + simple bytecode target would be better than what I've dealt with coding. Each iteration, he tries to improve the language and platform with lessons he learned from the first. He also ensures the lowest common denominator is easy to port, compile efficiently, and produce efficient code for. A lot of inspiration. He's recently put Oberon on a custom, simple processor running on an FPGA. The latest incarnation of the system is A2 Bluebottle [2] with downloads here [3]. [1] http://www.cfbsoftware.com/modula2/Lilith.pdf http://www.cfbsoftware.com/modula2/Lilith.pdf [2] http://www.sage.com.ua/en.shtml?e1l0 http://www.sage.com.ua/en.shtml?e1l0 [3] http://www.oberon.ethz.ch/downloads/index http://www.oberon.ethz.ch/downloads/index
- frik 11y agoThere was also Oberon System v4, a split of development: http://www.ssw.uni-linz.ac.at/Research/Projects/Oberon.html http://www.ssw.uni-linz.ac.at/Research/Projects/Oberon.html
- Richard14 11y agoI don't know why but this kind of project brings me back to my Commodore 64 days. I remember seeing an announcement for a new version of the C64 but it would not make sense unless it could capture the spirit of that little yet powerful 16-Bit device that you can learn so much from and also play amazing games on. Booting straight to Basic as the CLI inspired many of us to just try and write our own little "software". It must have been the beginning of many CS careers. This type of inspiring device can only come in a mobile form these days and none of the current OSes are as beginner friendly and straightforward as Basic on the C64 was. There might be a need for a tablet with an Oberon like system that could attract the teens of today as a customizable and easily programmable device.
- pavlov 11y agoHere's a screenshot of the Oberon UI, cropped from page 16 of the book: http://i.imgur.com/uRLHiJj.png http://i.imgur.com/uRLHiJj.png
- pjmlp 11y agoExcellent work! Without wanting to take any credit from the author, allow me advertise my own Oberon information document. http://www.progtools.org/article.php?name=oberon§ion=compilers&type=tutorial http://www.progtools.org/article.php?name=oberon§ion=com... Enjoy the screenshots and links to Cedar and Oberon documentation.