A Biologically Inspired Programming Language
Source: Dev.to
Motivation
I’ve always cringed at the people that said “I’m making a programming language”. I guess it’s more about the arrogance behind statements like “… that’ll be better than C!” While I don’t think I’ll make anything better than C, I am making a programming language. It won’t be polished, it won’t solve problems I don’t find interesting, but it might solve something for me, and maybe others will think it’s as neat as I do.
Problems with Traditional Microservices
I’ve worked on a lot of different software projects—from front‑end web applications to native mobile apps and backend microservices. Back‑end development specifically appealed to me, yet I kept encountering recurring issues.
- Size and deployment overhead – Microservices are often either too bloated or too small. Deploying a microservice can be more time‑intensive than writing the change itself. In large‑scale applications, scope creep across microservices or optimistic architecture decisions become problematic. Container orchestration and the myriad dependencies required just to test a local change add further headaches.
- Data logistics – I like being able to see where data starts and where it ends, how it flows and transforms through an application. Microservices introduce many barriers and contracts that must be fulfilled. Tracing a piece of data for its entire lifecycle becomes extremely difficult, especially when message‑streaming platforms are involved. Once data leaves your hands and enters a nebulous message broker, insight into its flow is lost, even if it’s just heading to another microservice.
The Mycelium VMN and Spore Language
Mycelium is a biologically inspired Virtual Machine Network (VMN) that runs a purely functional language called Spore—or at least that’s the plan.
- Each Spore function will be deployed as a stand‑alone unit in the VM and distributed through the network, effectively acting as “nano‑services”.
- Because each function is pure, we gain benefits typical of functional languages: memoization, async safety, modularity, scalability, etc.
- Functions will be semantically hashed, so only true function changes trigger a redeployment (reordering statements, adding comments, etc., will not).
- The network will automatically distribute functions—optimally, based on usage and available resources. The idea is that “microservices” will form and reform automatically according to actual usage patterns, not just optimistic assumptions made before requirements change. Code that fires together wires together!
- The VM network itself will reorganize according to usage and resource availability, handling everything from individual node failures to catastrophic data‑center outages. This self‑restructuring is inspired by how mycelium networks organize themselves in nature (hence the name).
Current Status
At the time of writing, Spore is nothing more than a hastily (and only partially—but functional!) built bytecode interpreter. Mycelium consists of experiments to test the ideas that will make the full system possible.
Future Plans
I’ve been floating these ideas around in my head for several years. It’s finally time to put them out into the world. I plan to build out the language and VMN during my spare time, documenting ideas and processes along the way in this blog. I think some of the solutions I have to the problems outlined in the prelude are pretty interesting!
If you’re interested in seeing the progress or suggesting contributions, you can check it out on my GitHub.