Just realised I didn't get to the point w.r.t. the OP's question and Onex.
My approach is layered in the sense that Onex can easily become an operating system (it's being written in C for that reason).
It's built from four components - Object Network Format, Protocol, Rules and Types:
- 'ONF': really the core mechanism that handles my 'objects' and their observation, notification and persistence
- 'ONP': a P2P distribution protocol that allows objects to observe over the net
- 'ONR': the Onex programming language
- 'ONT': the i/o, the types, of objects (an object has a broad type but dynamically not statically)
ONF and ONP can replace or be built into the operating system, providing an API on which to build ONR and the ONT application and i/o types.
The programming model is so 'inside out' relative to conventional approaches, that it does actualy make sense to rebuild the whole stack, ground up. I guess IP networking can stay, though!
Realistically, it'll never replace current approaches, so my OS ambitions are limited to IoT devices (which probably won't even need IP :-) .
I like the idea of "C++ in a C style" - I do like some of the benefits of C++ but I ended up hating it when I was a C++ contractor. C is a simple, honest language.
I'll put my first slice of code up on GitHub as soon as it's vaguely coherent.. :-)
Oh well it's a bit early days to share code .. the fullest implementation of the core ideas is in 'NetMash' in Java. The C version (Onex) is really a re-implementation, along with lessons learned and an outside-in, UI-first approach - to get early feedback (from my core demographic: my family - wife and two daughters!!)
I'm building it in … C ! :-)
Well, the core in C, the outside bits for Android, etc, in C++.
I'm currently playing with Vulkan for the render, which gives me an easy route into 3D when I'm ready for that.
Nice to see some activity here!
My own language is aimed at non-coders - at least at the level of those comfortable with spreadsheet programming. Like spreadsheets, it works well via a 2D 'visual' interface.
Its 'style' could be described as graph rewriting or state transformation. There isn't really a known 'paradigm' it falls under. I call it 'Functional Observer': linked data objects set their state as a function of their own current state plus the state of peer objects observed 'through' those links.