3 ms·
It's an interesting paradigm. I would be very intrigued to see this implemented at scale, with all sorts of cross cutting concerns (logging, persistence, multip
by thom 2y ago
It's an interesting paradigm. I would be very intrigued to see this implemented at scale, with all sorts of cross cutting concerns (logging, persistence, multiplayer and auth, displaying an error message when you try an illegal move or confirming when you win etc). Feels like a lot of COMEFROM-style code if you're not careful. That said, I am fascinated by the idea of append-only codebases - what would it look like if we performed less surgery inside our codebases, and instead merely added to them or overrode bits of them as time passed? I think most people would recoil in horror at the thought, but in a way a lot of long-term architectural decisions are made to support that kind of change in a system. How could we make that more natural? The behavioural programming approach certainly lends itself to more agility via extension rather than rewriting.
- refset 2y agoAgreed, I would love to see a large scale implementation and experience report. I also wonder about combining the Bthreads model with the notion of 'durable execution', as demonstrated by the folks at DBOS: https://www.dbos.dev/blog/what-is-lightweight-durable-execution https://www.dbos.dev/blog/what-is-lightweight-durable-execut...
- regularfry 2y ago"Append-only" was the original intent behind "closed for modification, open for extension": this exact idea goes as far back as Eiffel, at least, which used implementation inheritance for it.
- thom 2y agoOn the tactical level, absolutely. But the poster child at a more system-wide strategic level is the classic bogeyman of a Java codebase ruled by XML config and dependency injection of overly-abstract components. And many parts of our codebases remain rigidly hierarchical, like trees of UI components. What would it take for us to be able to deliver new features as a completely independent vertical slice? Micro frontends get some of the way there, perhaps?