Hacker News new | past | comments | ask | show | jobs | submit login

I'm a hardcore imperativist right now, so don't take this as authoritative, but here's my understanding of how that works:

Think of your data as one reality in the set of all possible realities. None of them exist or don't exist, they'll just receive human attention or they won't. Instead of an inbox with an ID and a current state, you just store events that happened and a user might say show me the end state of the timeline that started at event d79se5k. They might also ask you for the timeline starting at a different point.

There's no "current state". You're just ready to answer questions about hypothetical realities. And while some realities are more likely to be computed (and cached) that's only because they correspond to some key facts that a human is going to look up.

Put another way, imagine a soup of unrelated facts. Your code is a way to project those facts into different mathematic spaces. You never just say "what's the current state" you have to actually write out specifically what you mean as a query.

Sorry for the vagueness. I'm just putting out there my fuzzy understanding until someone else can write something better. :)

I'm really interested this approach, and I think a lot of data should be immutable. Sadly, a lot of people are treating immutability as a religion these days, which causes problems when computation is better suited to imperative structures.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: