I am in rest mode, watched another of Maxime video and it got me in a pensive mood. So i want to try to get the learned lesson down to the bare minimum. And also seperate the important from the nice.
The overwhelingly most import thing i learned is that objects have type and types represent a class at a certain time. Classes are mutable, but types not. This adds the oo dynamic properties, but builds on the lower level typed language (and the ealth of experience and toolong there).
Calling conventions that rely on stacks are very easy to implement and very very difficult to understand. Really they are a hack, encoding all kinds of wrong or old assumptions. Especially on modern computers where any register can be used to offset data. Also, it forever encodes that a method has to return to the caller (ie no closures). Linked lists of Messages (or activation frames) are the way to go.
The heading says it really, system calls are interupts not calls, ie more akin to a mouse moving or a key-press. We would not need the libc, but off course it is easier. And thus every language uses it and with it inherits possibly tooling and a really inconsistent api.
Those last two points may sound like a bit like a rant, but i really believe that we have been held back by outdated mental models. Which for me was and is a good part of the motivation to work on this.
But after years, i have to admit that those two are just not essential. There is a finnish saying, "only the medicine you take, helps", and for me that translates to fringe research does not change the world, the way "we" program.
One has to get down to essentials, and that is speed, leaving nice ideas behind. And speed of a know, ideally used, language. Once basic points are proven, one can move on/back to nice.
This means either ruby and zjit, or som in go. Zjit, as a reboot of Yjit, is very close to what i think. The only minuses are the quirkiness of mri and using rust (which is a great effort, just suffers from not being ruby), on the plus it is (beloved) ruby. Som has the advantage ot clear performance measures and more freedom of choice, but no direct impact. It's very much a 6 vs half a dozen atm.