Why Arc Isn’t Especially Object-Oriented
Paul Graham’s essay Why Arc Isn’t Especially Object-Oriented argues that OOP isn’t necessary for all programs.
Five Reasons for OOP’s Popularity
Graham identifies reasons, judging three-and-a-half as problematic:
-
Workaround for limited languages: OOP compensates for languages lacking closures or macros
-
Corporate structure alignment: Large companies favor OOP because it prevents “any one of them from doing too much damage”
-
Artificial busyness: OOP “generates a lot of what looks like work”
-
Language extensibility: Offering OOP concepts “a la carte” might work better
-
Domain-specific appropriateness: OOP works well for simulations and CAD systems
Personal Position
Graham has never needed OOP abstractions, despite Common Lisp’s powerful object system.
My Takeaway
Design languages based on actual programming needs rather than theoretical ideals. Don’t include features “you’ve never needed because it’s thought to be a good idea.”
What’s your take on OOP? I’d love to hear at persdre@gmail.com.