Post

It's still very early days. I started the project beginning of this year, and have been full time on it since August. There is a lot to do. To fulfill the promise of personal computing, we have to question everything down to the OS layer. Radiant won't be based on any pre-existing OS or kernel.

We've got a long journey ahead, but I'm hoping to find people along the way who believe in this future, and want to help us build it. In the meantime, you can follow our progress on @radiant.computer or write us. 🌅

cant wait until there is web support! waiting patiently for humans to be able to connect with each other—humans chose the web!

I do think some sort of capabilities is the obvious next step for computing. Personally if I was doing this I would use inferred contextual parameters instead of global variables, that would make it easy to manage functions with lots of capabilities. paper.wf/binarycat/in...

paper.wfinferred implicit parameters for ergonomic object capabilitiesa system that elegantly provides the security benefits of an effect system and ocaps, while also being convenient to use. inspired by sc...

Interesting read, thanks. I think we need to strike a balance: having it to automated means that we stop paying attention and just pass on all capabilities down, always. Having it too manual will lead to the same situation..

yeah, so my approach would be to have everything be inferred internally, but then at your public API boundary, you make all your entrypoints have explicitly annotated capabilities. that way if you want to add a capability, you only need to change the inner and out function, not the stuff between

syntax and language primitives as content addressed data like unison would be amazing Even better if syntax is just data so you can use any desired notation like isomorf did

Yes, high-level PLs should be similar to Unison (compile-time type checks) or FunctionalScript (run-time type checks). For a low-level/system PL, we can take object lifetime tracking from Rust and comptime from Zig, and add content-addressable types (types are equal if they have the same shape).