3 ms·
My point of view regarding this topic is that Students tend to understand objects better, because it's how we perceive the world (I often work with art students
by rspoerri 2y ago
My point of view regarding this topic is that Students tend to understand objects better, because it's how we perceive the world (I often work with art students in game design). If they'd have to find data related to each object in a list, they'd fully overwhelmed.
Functional programming on the other hand is better the closer we are to the hardware. It can be more efficient, and in some areas other ways just don't make any sense.
Both are important, and knowing only one structure is definitely bad. But still talking about an object-oriented mania feels like somebody hasn't gotten over the conflicts of 30 years ago.
- Patient0 2y ago"Students tend to understand objects better" -> I actually a disagree. A problem is mutability. Consider: "Is-a list of triangles a list of shapes?". Most inexperienced people, using their intuition, would answer "Yes!", and try to design a "ShapeList" base class of "TriangleList", "CircleList", "SquareList"... and then puzzle over where to put the method "void add(Shape s)". So you end up picking a subset of OO in which you take away inheritance, or mutability ("state"). But take those away and you don't really have OO any more (IMO)... Even Eiffel got this wrong, fwiw. (https://staffwww.dcs.shef.ac.uk/people/A.Simons/research/papers/eiffeltype.pdf https://staffwww.dcs.shef.ac.uk/people/A.Simons/research/pap...)
- Y_Y 2y agoI know I'm not typical, but my experience was the opposite. The first language I formally learned was Java about twenty years ago. I remember asking gaijin teacher hundreds of questions because I just didn't "get it". I had a better time with random old-school languages I stumbled across, like batch scripts, php, and actionscript but nothing really clicked. A couple of years later I was using bash and C on Ubuntu from a CD someone handed me on Stephen's Green. Still better, but no click. C++ and Python ditto. Friends tried to get me into Ruby or Visual Basic but like the other languages they all felt like they were deliberately perverse. Like they knew how thoughts were turned into CPU instructions but wanted you to take the long way around. The eureka moment for me was reading Learn You a Haskell. I don't code much in Haskell day-to-day, but I think in Haskell constantly now. Strongly-typed functional thinking maps pretty well onto lots of things I use nowadays like Tensorflow. I knew some guys who took a course on Haskell in the final year of their CS undergrad and they found it inscrutable. All that to say, I really don't like OOP-mania, though of course sometimes a problem is well-suited to an object oriented solution. Learning functional programming from Haskell really open-end my mind, I wonder how much time I might have saved by learning that first.
- dagw 2y agoMy university taught Haskell in their intro programming class at the mathematics departments, and the students that were new to programming had on the whole no problem with it. The ones that struggled were the ones that knew a bit of programming and had to relearn a bunch of what they thought they 'knew' about programming. The problem was that all the students who had just been introduced to programming via Haskell where completely lost when they took the next intermediate programming class, which used Java.