What if you could import someone’s code as easily as you tag someone on twitter?
let x = @sam.foo(@joe.bar)
There’s a tweet I can’t find that said Twitter can be thought of as a collaborative, immutable, spreadsheet. That’s a beautiful thought, and it is indeed what makes Twitter such a generative environment.
It took me years to see how elegant Twitter’s model is. Tweets are proper first-class citizens: they can stand alone, can reply to other tweets, can be replied to, can be retweeted, or referenced. There’s a reason that you see Tweets on television: they are a proper primitive.
This sort of elegant, mutually-recursive data structure shows up in a couple of other products, namely Reddit and its predecessor Hacker News. Another example is Notion, with its infinitely-nest-able block structure. It seems obvious now, but the idea of first-class primitives and infinitely nested data structures is counter-intuitively powerful when applied to consumer products.
Yet these ideas of composable social primitives, which came from programming, haven’t reinfected programming itself.
My friend JP and I first tried building a Twitter-like coding experience directly within Twitter:
https://twittereval.com/stevekrouse/status/1523448157585039371It was fun and wacky, but not practical.
My current project is Val Town, which does allow you to import code as easily as you tag someone on twitter. Here’s a recent demo video:
https://www.loom.com/share/878294970d8e48919c819f35d0cd0da4
It's been a fun environment to build and play with. So far folks are using it for playing with APIs, exposing their own endpoints, running poll jobs, and little zapier-like glue code.