4 ms·
There's really no such thing. You might be using pure functions from your perspective, but someone is handling all that backing layer data and mutable informati
by andrewmcwatters 6y ago
There's really no such thing. You might be using pure functions from your perspective, but someone is handling all that backing layer data and mutable information.
- lmm 6y agoThere's no such thing as structured programming, at the assembly level it always just compiles down to conditional jumps. There's no such thing as a digital circuit, because real-world voltages are always analogue. Etc.
- oblio 6y agoYeah, but some abstractions are leakier than others. I have never hit a real-world voltage bug or conditional jump bug, as far as I remember.
- lmm 6y agoHave you ever hit a bug in the implementation of immutable data? I haven't. (And I have seen a miscompiled loop, though I agree they're very rare).
- oblio 6y agoWell, now that I think about it, I have seen a compiler bug in an IBM Java compiler where an if condition would never be hit, despite the code being fine and the Sun Java compiler working as expected.
- andrewmcwatters 6y agoWhich is all dealing with retained, mutable data. Period. I'm not making the comment for the sake of pointing out _levels_ of abstraction. I made the comment because such an abstraction doesn't at all map to reality.
- lmm 6y ago> Which is all dealing with retained, mutable data. Period. Only if you choose to model your system that way. You can push the same paradigm all the way through: immutable events, and pure functions that transform an event and a previous (immutable) state into a new state.
- andrewmcwatters 6y agoNo, you really can’t, and that’s what all the functional/immutable evangelists don’t get: you can’t. You’re going to recreate framebuffers and font atlases and invalidate your entire UI every single time? Good joke.
- lmm 6y agoSo much for "not pointing out levels of abstraction". Maybe somewhere in the guts of the low-level runtime a mutable framebuffer is being used for now, sure, but I don't care about that any more than I care about whether my processor is jumping vs doing a conditional move.