5 ms·
He probably has a point in some ways, but some of the points seem so bad they are almost impossible to rebuff - e.g. functions are functions, data is data, ther
by jwilliams 18y ago
He probably has a point in some ways, but some of the points seem so bad they are almost impossible to rebuff - e.g. functions are functions, data is data, therefore they must be separate?
Additionally, he's run up against the pitfall with OO - it actually lacks a definition. It's got lots of dimensions and facets, and each implementation interprets these in it's own way... e.g You could argue that SmallTalk's message passing metaphor was the precursor to Erlang's model.
- visitor4rmindia 18y agoActually the first line sums up the problem with this article: >When I was first introduced to the idea of OOP I was skeptical but didn't know why - it just felt "wrong". It's more a personal rant than a well thought-out article.
- access_denied 18y agoWhat is wrong with a personal rant? Does every writing needs to be a well thought-out article? Discussions. Essay. Opinions. Why not?
- silentbicycle 18y agoThe problem is when people mix them up, I think. Rants are usually written to appeal to the emotions (whether intentionally, e.g. to rally support, or just venting), and sometimes people get so caught up in them that they miss major gaps in the author's argument...and people busy cheering aren't usually in the mood to coolly debate.
- cabalamat 18y ago> Additionally, he's run up against the pitfall with OO - it actually lacks a definition I think OO is well-defined. I would define it thus: an object is something with state and behaviour. An OOPL is a PL with facilities for handling objects. These facilities must include (i) specialisation -- either through subclasses or prototypes -- and (ii) method invocation determined at run time, so that for example: someShape.drawOn(aCanvas); their are several drawOn() methods and the one that is executed is determined at run time by the class (or equivalent) of someShape and possibly also by the class of aCanvas.
- bad_user 18y agoThe second property you mention has a good name: polymorphism
- silentbicycle 18y agoOr "late binding".
- jwilliams 18y agoSomeone else posted here a good reference: http://www.paulgraham.com/reesoo.html http://www.paulgraham.com/reesoo.html The OO paradigm is a parcel of a lot of different things. When it was released, Java hit a nice sweet spot of these with the developer community.