It’s really a matter of experience. Most OOP developers have come to expect the contractual guarantees that object instances will behave in some given fashion. They’ve come to expect the application-wide taxonomies that classes provide. I do, however, recognize the advantages of prototype objects and they are arguably a better form of OOP. The problem is one of practicality: class-based OOP dominates the IT industry. JavaScript stands alone in using prototype objects. Even within the JavaScript community, prototype OOP is poorly utilized, as Eric Elliott and Douglas Crockford and others freely admit. That’s why they have to constantly beat the prototype drum. They’ve seen too much abuse in JavaScript code. This “re-education” of the IT community is an uphill battle. Until more mainstream languages use prototype objects, I’m afraid the transition will be glacially slow. Maybe Lua will be the next to dominate. Maybe.

Speaking of which, even if I agree that we should all use prototype OOP, why use it in a pathological language like JavaScript? We should create a new, better language to do this. Or use Lua.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store