[HN Gopher] Project Oberon Emulator in JavaScript and Java
___________________________________________________________________
Project Oberon Emulator in JavaScript and Java
Author : pjmlp
Score : 135 points
Date : 2021-07-07 12:37 UTC (10 hours ago)
(HTM) web link (schierlm.github.io)
(TXT) w3m dump (schierlm.github.io)
| eatonphil wrote:
| It's always hard to find implementations of Oberon, so thanks for
| sharing!
|
| If you (not pjmlp) are into compilers or Oberon I highly
| recommend Wirth's book, Compiler Construction, that walks through
| its implementation and his way of thinking about languages and
| implementations.
|
| Edit: am I getting the language mixed up with the operating
| system he also designed?
| pjmlp wrote:
| Nope, just like the Xerox PARC environments, for Niklaus Wirth
| the programming language and OS overlap, hence why it is kind
| of tricky to disassociate them.
|
| By the way, Cedar was the inspiration for Oberon.
|
| "Eric Bier Demonstrates Cedar"
|
| https://www.youtube.com/watch?v=z_dt7NG38V4
| jhbadger wrote:
| Although it is certainly possible to separate the two. For
| example, the Oxford Oberon Compiler for UNIX and Windows,
| which is just a compiler for the Oberon language (basically
| an object-oriented Pascal) rather than the OS/environment
|
| http://spivey.oriel.ox.ac.uk/corner/Oxford_Oberon-2_compiler
| pjmlp wrote:
| Sure, that is why "Oakwood Guidelines for Oberon-2 Compiler
| Developers" eventually came to be,
|
| http://www.edm2.com/index.php/The_Oakwood_Guidelines_for_Ob
| e...
|
| My remark was more about how Niklaus Wirth saw the system
| he designed and his goals behind it.
| jhbadger wrote:
| Yes, but it is confusing because the system language of Oberon
| the OS is Oberon the language.
| Torwald wrote:
| > It's always hard to find implementations of Oberon, so thanks
| for sharing!
|
| You could make the wish to run an Oberon the perfect excuse to
| go into retro-computing:
|
| https://archive.org/details/amiga-oberon/mode/2up
| _ph_ wrote:
| Wirth is the one full stack developer in existence :)
|
| He created Oberon the language to implement Oberon the
| operation system and eventually designed a simple CPU to run
| the full stack.
| pjmlp wrote:
| Twice.
| musicale wrote:
| Well there is nand2tetris.org and probably others.
|
| Wirth and his systems are a treasure of the CS universe.
|
| I also rather like Wirth's Lola hardware language and RISC
| CPU. Great stuff.
| lproven wrote:
| Previous submission/discussion:
| https://news.ycombinator.com/item?id=10060557
| FpUser wrote:
| Comparatively to a modern Delphi/FreePascal it is just very
| limited. This might be what someone is looking for in that Pascal
| land but is not my cup of tea.
|
| Talking about language obviously. Not the whole computer system
| pjmlp wrote:
| By learning what was possible with GC enabled systems
| programming languages in 1990's hardware is how we can move
| beyond the unsafe layers of our current IT stacks.
| FpUser wrote:
| GC is very old concept. Nobody was ever prevented from using
| languages with GC. But as a whole we do not have to move. And
| frankly the dangers are overblown. My latest C++ product is
| of decent size and does not use a single explicit allocation.
| It is there though should I need it.
| pwdisswordfish8 wrote:
| How does that deal with stack-allocated data that gets
| twiddled by some other code expecting that it will be able
| to do so, where that expectation outlives the actual
| stackframe itself?
| gavinray wrote:
| People on C++ chat balked when I brought up the idea that
| garbage collectors were not inherently evil things, and that
| some languages with a (for a few of these, optional) GC --
| like D, Nim, and (written a particular way) even C#, could be
| used for systems programming or OS'es.
| pjmlp wrote:
| Asian Bing used to be powered by Midori for a while.
|
| Search Joe Duffy's keynote at one of Rustconf, towards the
| end he mentions that even proven wrong with Midori running
| in front of them, the Windows team was telling him it
| wasn't possible.
|
| By the way, F-Secure ships security keys with firmware
| written in bare metal Go.
| Rochus wrote:
| These are two different questions: should C++ have a GC,
| and is a GC language suitable for systems programming.
|
| There is actually already a GC which works well with C++
| and is also used by some of the mentioned languages:
| https://www.hboehm.info/gc/. Personally I think the C++
| specification is already far too big and complex (so why
| adding even more stuff). A lot of GC languages were more or
| less successfully used to develop operating systems (even
| Lisp, Smalltalk and Java). From my point of view Oberon is
| not particularly suited for this purpose, but obviously it
| was used to implement the Oberon system (using some dark
| corners of the SYSTEM module and undocumented language
| features).
| vidarh wrote:
| To get somewhere with these, try pressing alt/meta while pointing
| at a command, or right click on the first letter of a filename,
| and press alt on a command. E.g. right click on "Draw.Tool" and
| press alt on "System.Open" to start Draw.Tool.
| willvarfar wrote:
| I remember installing Oberon in about '97 in a quest to explore
| something esoteric and as different from Windows as I could get.
| Actually tried to use it and work through the tutorials and write
| "gadgets". Coming from a turbo pascal and then Delphi background,
| oberon was lovely!
|
| But even then it was a what-could-have-been. Now, twenty five
| years after that, it still has the mystique of a somehow more
| powerful feeling system. I stare at it and feel it is somehow
| more powerful than the mundane electron apps today, even though I
| know what simple principles and how little code underlies it, and
| how comparatively complicated and byzantine those dumb modern
| electron apps are.
| fao_ wrote:
| Honestly, simplicity is the way of the future -- eventually we
| will not be able to deal with the huge stack of abstractions,
| and it will either topple like the apocryphal tower of bable,
| or we will invent a """god""" (strong AI) to deal with it for
| us.
| butterisgood wrote:
| Also see https://en.wikibooks.org/wiki/Oberon/A2 for a more
| modern system you can run as a guest, use to build standalone
| applications for your host, or run natively as an OS.
|
| It's fun to explore and play around with, has a Zooming UI with a
| virtually infinite (I think) desktop.
|
| It's not a "pure" Oberon system as it has some extensions, but
| they provide async/await (and seemingly a long time before that
| caught on as a generally good idea! It's the basis of "active
| objects")
|
| The language report was updated 2 years ago (http://cas.inf.ethz.
| ch/projects/a2/repository/raw/trunk/Lang...), and the repository
| is fairly active given the relative obscurity of the system.
| pjmlp wrote:
| That is my favourite language version, although the original
| was fun to use, I never liked Wirth's quest for language
| minimalism.
| [deleted]
| lboasso wrote:
| If you want to try out only the Oberon language, there are
| several Oberon implementations for different platforms, including
| embedded systems, native windows executables, and the Java
| virtual machine: http://oberon07.com/compilers.xhtml
___________________________________________________________________
(page generated 2021-07-07 23:01 UTC)