- Function definitions stored in a content-addressed database.
- Dependency management handled the same way the Nix handles it.
- Some kind of object storage system that uses content-addressable structures as the schema.
- Hyperlinked codebase.
- Human-readable function names as (essentially) git tags.
These ideas are all pretty nice. A dedicated IDE for this language would be a lot of fun to work with. The debugging story likewise seems like it will be pretty solid. I'm not sold on the zero config storage layer: basic object retrieval is different than schema prepared for query performance. I'd like to learn more about the concurrency and synchronization story.
I think that content addressability works really well for code, at the bottom layer. But in order to be practical, you typically need:
Naming and resolvers, in order to be human friendly. This isn't easy to get right, but we have a lot of prior art in dependency management systems.
Persistence layers with GC, like cache and db. You're gonna want to fetch and prefetch in ways that are quite advanced. You don't want to be be blocked in a critical section by network fetching the leftpad function.
- Dependency management handled the same way the Nix handles it.
- Some kind of object storage system that uses content-addressable structures as the schema.
- Hyperlinked codebase.
- Human-readable function names as (essentially) git tags.
These ideas are all pretty nice. A dedicated IDE for this language would be a lot of fun to work with. The debugging story likewise seems like it will be pretty solid. I'm not sold on the zero config storage layer: basic object retrieval is different than schema prepared for query performance. I'd like to learn more about the concurrency and synchronization story.