Urbit reminds me of a programming language that was featured a while back on Hacker News. It was a purely functional language and each function and data structure was addressed by its cryptographic hash. Functions and data structures did have convenient labels, but linking was done by the hash. So you can have as many different versions of a function as you like. Your code is never broken by updates. You can apply updates at your convenience.