I like that it's a daemon. You can connect to it from various clients, do stuff, disconnect, and your stuff is still there when you come back, your processes are just running in the background. Conceptually, it's no different than SSHing into your favorite remote system.
In contrast to most other image systems, that are not, routinely, just a long running generic processor.
It's not "Lisp OS", but it's Lispy-ish OSey-ish.
They have their own cool little, byte code compiled Lisp, with the mailbox, and multi-processing intrinsic, and those isolated name spaces, which is nice. There's no shared memory, just message passing. That's fun and geeky.
Mailboxes/queues are not ubiquitous on Unix systems compared to streams and pipes and sockets. The queues, while they exist, are not readily lifted in the shells and such, so they become a specialty item.
Whereas in Unix, you can craft simple services using, well, anything, and inetd, that's still different from a long running mailbox listener.
They have different purposes, and the systems that use one as their hammer vs the other, will look different. But the important thing is making those services simple to make and use.
> For example, annual jobs can be represented as a infinite looping program that sleeps for a year
Does your system actually implement true durable compute? Like I can restart my mac or stop the daemon and it's (apparently) not only smart enough to resume this process where it left off but also account for the time delay and reschedule the wakeup? Astounding if true— if you do what's your strategy for achieving it?
The project doesn't implement durable programs (yet!).
I've done some prototyping in the past, and came out of it feeling it wasn't quite the right thing to dive into yet. I mostly lacked clarity around what the concepts / syntax / ergonomics should be, because I didn't have specific use-cases in mind.
I don't see it as a "global" always-on feature, at the moment.
I loved my time there - I attended batch in-person in NYC.
Specifically:
- I enjoyed how passionate everybody was about something - and how deep they pursued their interests. Everybody was generous with their time and knowledge, and it helped me connect new concepts together in ways I couldn't have alone.
- I loved having dedicated time and space to focus on this passion project, full time. I joined with the specific goal of building a "livable" MVP during the 3 months I was at Recurse.
- It was great to be in an environment where people were performing computer stats + shenanigans purely for fun.
Agreed on `supervisor` - that's high up on my list to tick off when the occasion arrives.
On `gen_srv` - while there's room to iterate, I consider the `spawn_srv` / `bind_srv` to be a sufficient analog for me:
https://github.com/leoshimo/vrs?tab=readme-ov-file#services-...