3 ms·
The thing is, CPUs are designed to execute imperative programs. A stream of instructions is imperative. Until we see real hardware that executes object-oriented
by gagege 11y ago
The thing is, CPUs are designed to execute imperative programs. A stream of instructions is imperative. Until we see real hardware that executes object-oriented programs, OOP will always be somehow treated as a second-class citizen in the computing world.
Everything we do is an abstraction.
- bluetomcat 11y agoAbstractions sometimes do not match well with the underlying abstractions that they depend on. The Von Neumann architecture is all about state and mutability, and yet FP tries to stay as far as it can from that. OOP is really a supplement layer over imperative programming and doesn't deny any of its underpinnings.
- Retra 11y agoAbstractions necessarily do not match the underlying infrastructure. That's why they are called abstractions. That's also why we use them: because we don't want to be bound by underlying infrastructure. PS: Computers are not inherently digital, either.
- dragonwriter 11y ago> The Von Neumann architecture is all about state and mutability, and yet FP tries to stay as far as it can from that. As I understand it, real world FP isn't about "staying away from" state and mutability, its about providing tools for managing state and mutability as a means to manage the complexity of reasoning about programs using it. E.g., Haskell's monadic approach essentially makes every Haskell program one that produces (as the result of the main function) the imperative program that is actually executed by the runtime.