Could somebody explain in more detail what the goal of this is?
Not 100% sure but I can take a shot:
We’re using bash to simulate a true Alan Kay style network of autonomous objects that communicate exclusively via messages.
Could this be the basis for Poor Man’s translators? https://www.gnu.org/software/hurd/hurd/translator.html
It looks funny :-)
But to make it at least somehow useful, you would need to map the numbers (PID, FD) to meaningful names. Probably using symlinks. But then you can drop whole the process and FDs idea and use just symlinks and directories. The processes and FDs have IMHO no benefit here.
Another approach could be writing a virtual FUSE file system, which would not store the objects/methods/properties on the disk but in the RAM – and you will have a single process that would manage your object world and then you could easily add some dynamism (add and remove objects, change behavior etc.). You can use also extended attributes for metadata and introspection.
Everything is a file!
Yes! That is the main idea behind this whole ordeal. I am pretty much aware that it is completely unusable as it is. I intend to prototype something more robust using 9P.
I like that example, though, mostly because it summarizes most of my ideas on how object orientation should work in ways that I can’t even express in natural language. And if you look at it closely, there are a few takeaways that present interesting challenges to work on in the future. Here are some of them:
I expect to have the time and energy to have this pseudo-research come to fruition.
If you’re going to create an object system with bash, associative arrays and functions seem like a more likely basis.