Hacker News new | ask | show | jobs
by nabla9 3163 days ago
If you want to do OO Alan Kay style, you need late binding, metaobject protocol, and messages. The difference between dot.setX(10) and dot.moveToHorizontalPos(10) may seem irrelevant, but the other messing with internal state, other asking object to do something.

Bastard-OO is widely successful in everyday programming because classes enforce modules + mandatory interface definitions. They restrain spaghetti code inside smaller entities that are easily managed. Software architect can define these entities and give them to code monkeys to fill. Static compilation can do rudimentary validation. It's not small feat and enables some scaling, but it's dirty and not really OO.