Oddbean new post about | logout
 My only familiarity with BDD is the testing strategy (TDD/BDD, etc.) is that what you mean?

I'm very happy to explain these things to you, but want to make sure we're meeting in the right place.

You can think of a supercombinator as a function with no free variables - no external state or necessary context. Everything you need to get a reproduceable result when running a function with certain arguments is all bundled up in one place with no dependencies. Your mention of a "Semantic Closure" struck me as extremely overlapping with our use of closures and it seemed like a good starting place to see where we might be able to help each other.

At the risk of going too far too soon: The open source system we're building can be thought of as a kind of Turing complete programming environment + Virtual Machine. It's a single, portable binary with no external dependencies necessary on the host system. You run this one binary, and the entire VM/OS is running. All data and code (user data, programs, etc.) is collapsed into a single value - one enormous number (thus it, too, is highly portable. you can turn off a running machine, send the entire "single value" over the network, turn it back on on the other end and it picks up right where it left off - it doesn't even know it turned off.)

Data and functions are content-addressable within the machine no matter where it is, similar to IPFS content addressing. The machine was over here, providing data or a function result at content-addressed-endpoint-X earlier? then you "moved the logical machine to a different physical machine" and turned it back on? your data or function is still available at the same content-addressed-endpoint-X as before.

This is highly valuable for Nostr relays, DVMs, static content hosting, chat backend, you name it. Anything that would benefit from an always-on, always-available "server-like" process that you'd like to be extremely simple, dependency-free, trivial to run by a non-technical person, and durable forever.

I'll stop there because there a billion things I could say here - but the rabbit hole should be dug in the most useful direction for you - not wherever my rambling is taking me...