Project Oberon
projectoberon.com
Project Oberon
1–10 of 72 posts
Re: Project Oberon
#2This is a classic
Re: Project Oberon
#3Re: Project Oberon
#4Re: Project Oberon
#5Clarity is easier to measure. Simplicity is harder. Take Golang for example, yes you can learn the language in a few days or weeks but then some of the external complexity ends up with boilerplate. Is that simpler in the end?
Then simplicity has many aspects. Take a software project. Simple for who? the users? the original devs? the maintainers?
We have Kolmogorov complexity for algorithms but what is the equivalent to measure whole systems?
Re: Project Oberon
#6I wish more languages/softwares/projects set this goal of simplicity and clarity. Clarity is easier to measure. Simplicity is harder. Take Golang for example, yes you can learn the language in a few days or weeks but then some of the external complexity ends up with boilerplate. Is that simpler in the end? Then simplicity has many aspects. Take a software project. Simple for who? the users? the original devs? the mai…
Theory is nice, but we don't really spend enough time systematically or empirically measure how long it takes people to learn various things, or similarly how easy they find making a change to an existing (codebase|project|language|etc). Doing so and just reporting what we learn as an industry would have a ton of value -- arguably a lot more than just coming up with a metric or proxy model of what we care about (how long something takes to learn or maintain).
Re: Project Oberon
#7https://www.youtube.com/results?search_query=The+Oberon+Chan...
While Oberon was quite cool, people should also learn about its Xerox influence,
"Eric Bier Demonstrates Cedar"
https://www.youtube.com/watch?v=z_dt7NG38V4
Also dive into what happened afterwards, Oberon-2, Active Oberon, Zonnon,...
Active Oberon could be considered quite modern, also makes the distinction between safe and unsafe pointers, which improves the experience for low level coding.
https://github.com/metacore/A2OS
One of the best things about these systems is proving what systems programming with automatic memory management were capable of.
Given Oberon-2's influence on Go, maybe improving Fyne (https://fyne.io/fynedesk/) with something like gRPC for the dynamic experience, could be a possible sucessor.
Re: Project Oberon
#8It'd be cool if we all had to use this. But nobody does.
Re: Project Oberon
#9One problem of the original implementation is that it was based on an old Xilinx Spartan 3 development board. This is not only no longer available, but it is one of the few FPGA boards that used 32 bit wide fast (12 ns IIRC) asynchronous SRAM chips. Wirth's hardware design relies heavily on this.
Some years ago, there was a compatible board, the OberonStation. However, it seems this is no longer manufactured: https://pcper.com/2015/12/meet-the-oberonstation-kid-friendl...
However, some modified designs exist that implement a cache in FPGA block RAM and an SDRAM controller. These can be used with more recent FPGA boards:
- FleaFPGA "Ohm" board with a Lattice ECP5 FPGA and 32 MB RAM (https://fleasystems.com/fleaFPGA_Ohm.html) - https://github.com/Basman74/Oberon_SDRAM
- Radiona ulx3s, another ECP5 in an open source design (https://github.com/emard/oberon) - https://github.com/emard/oberon
- PapilioPro using a Xilinx Spartan 6 LX, another open source PCB design (https://papilio.cc/index.php?n=Papilio.PapilioPro) - https://opencores.org/projects/oberon_sdram
Shameless plug: my student Rikke's port of Project Oberon to RV32I (this is a real RISC-V), however, we still need to find some time to build an FPGA-based SoC. Currently, it runs in emulation: https://github.com/solbjorg/oberon-riscv
Re: Project Oberon
#10The Oberon channel has several videos of Oberon in action, https://www.youtube.com/results?search_query=The+Oberon+Chan... While Oberon was quite cool, people should also learn about its Xerox influence, "Eric Bier Demonstrates Cedar" https://www.youtube.com/watch?v=z_dt7NG38V4 Also dive into what happened afterwards, Oberon-2, Active Oberon, Zonnon,... Active Oberon could be considered quite modern, also makes the d…
I think the emulator linked at the bottom left side is a better way to check out Oberon in action as you can easily (well, after you figure out how things get compiled, etc :-P) see it in practice and how a few individually simple (if not outright primitive) things can be combined to create something nice. For example i always found it amusing that the "menu bar" in each window is really just a regular text area and the commands shown are really methods that are called when you (IIRC) middle click them, like any other text in a window (so the main "GUI" for a program can really by just a text file with methods to click on - and of course since it is editable you can simply customize the GUI by editing the text file).