3 ms·
Have you actually talked to educators about this? I've asked a few why OO is the first thing you learn - and the reasoning was two fold: 1) People that start
by optforfon 10y ago
Have you actually talked to educators about this?
I've asked a few why OO is the first thing you learn - and the reasoning was two fold:
1) People that start off by learn imperative programming end up writing really really shitty OO code. They're they type of people that end up copy and pasting stuff everywhere. It's really hard to get students to not take the "short cut" of copy paste to think in objects when you have homework deadlines and other things to worry about (and the teacher never actually spend time to teach you how to use programming toolchains...)
2) it's conceptually one of the biggest stumbling blocks for people. A lot of people have trouble wrapping their heads around OO. So sure you could teach it later, but it'll never sick or sink in.
- jacquesm 10y agoNothing stops OO code from being imperative.
- 9182391231 10y agoPeople have trouble understanding OO because usually it is presented informally with insufferable dog/cat/mouse examples. Moreover, the fact that "subclassing==subtyping is unsound" is swept under the rug. A lot of people actually grasp the latter at an intuitive level, that's why they're never comfortable with objects. OO should be taught as abstractly as possible (I recommend Didier Remy's writings). After grasping the concepts, many people will conclude that they'll be better off with FP and modules.
- AnimalMuppet 10y ago> subclassing==subtyping is unsound Could you explain what you mean by that, and why you think it's true?