Native Oberon
progtools.org
progtools.org
Interestingly he was the Martin Oderskey's (Scala etc) PhD advisor.
Golang, a simple language in use, is basically a grab bag of concepts that implement a syntax people happen to be familiar with from ALGOL-like languages https://golang.org/ref/spec -- there's nothing particularly unifying or composable in that it just happens to work out ok.
I'd be interested in a crossover language that has the reinforcing composition of something like Scala but a standard library and common tooling like Golang that are kept simple. Spending time in Rust is on my todo list, it may not be even close to that but looks more useful than Scala long term and retains the type stricture.
I personally program often in a strict subset of JavaScript. Liberals, function declarations, and function calls only. Of course I can’t do everything in this space. But many projects are just fine. Most code, at least code that’s pretty close to human-relevant vocabulary) is just names and calls when it’s truly properly refactoreded.
Unfortunately this becomes untenable when I try to use third party packages. Almost all packages expose APIs in the most advanced sections of language syntax... promises, big rich configuration trees, weird chainable DSLs, objects, etc.
So to work with a language subset you need to be able to carve out a namespace within your package management ecosystem. Essentially a fork of the namespace, with people able to “take over” the package and port it to the subset.
In your case this would mean a subset of Scala with strict controls on composeability with the existing primitives.
And you’d port at least high level scala packages to that API space.
From the article:
>Any Oberon procedure can be made available to the user as system command, provided certain conventions are followed. They are known as Tools. [..]
>It is possible to allow such Tools to act on user interface elements selected by the user.
This is a way more flexible UX/UI paradigm than any OS out there provides.
Symbolics Genera also adopted this approach. Here are some good posts about it on alt.os.multics from Dan Weinreb:
https://groups.google.com/forum/#!search/multics$20commands$...
https://groups.google.com/forum/#!search/multics$20commands$...
You can read the Project Oberon 1992's book, sections 3.3 and 3.4 as starting point.
http://www.ethoberon.ethz.ch/WirthPubl/ProjectOberon.pdf
Then you can follow up with the 2003's edition.
https://www.inf.ethz.ch/personal/wirth/ProjectOberon/index.h...
With a stop in the last pure Oberon iteration, Oberon System 3 Gadgets.
http://www.ethoberon.ethz.ch/ethoberon/tutorial/
Oberon Companion describes gadgets and tools
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.472...
The existing PDF book has a couple of rendering issues, but if you install BlueBottle, it has Oberon System 3 as demo application, with the original book in Oberon rich text format (not to mix with RTF).
https://www.youtube.com/watch?v=t6NMJh0noDk&index=35&list=WL...
Which by the way, also describes the Tools on its manual, A2 User Guide and Application Description
http://www.ocp.inf.ethz.ch/wiki/Documentation/Front
The surviving ISO images
His name should be pronounced something like "veert", but universally in the US he is called "worth".
Wirth said something like: In Europe, I am called by name, but in the US I am called by value.