this post was submitted on 14 Nov 2024
89 points (95.9% liked)

Programmer Humor

19557 readers
729 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 1 year ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 14 points 18 hours ago (2 children)

If you used good objects, you'll only have to make the change in one place

IMO that's generally a retroactive statement because in practice have to be lucky for that to be true. An abstraction along one dimension -- even a good one, will limit flexibility in some other dimension.

Occasionally, everything comes into alignment and an opportunity appears to reliably-ish predict the correct abstraction the future will need.

Most every other time, you're better off avoiding the possibility of the really costly bad abstraction by resisting the urge to abstract preemptively.

[–] [email protected] 1 points 55 minutes ago

Generally true, but if the professor in this context was not a moron, he probably mentioned at the start of the class that he would be forcing a change to requirements part way through the course. Ideally, he would've specified what kind of changes this would be, in order for the students to account for that in their design. I think it's likely this happened, but the student was lacking so much experience he didn't understand that hint or what he needed to do in the design in order to later swap parameters more easily. I'm going to withhold judgement on this professor having only heard a biased account. It could've been a very good assignment, now being told from the perspective of a mediocre student.

[–] [email protected] 1 points 8 hours ago

That's a fair assessment. It's kind of like the rule for premature optimization: don't.

With experience you might get some intuition about when it's good to lean into inheritance. We were definitely lacking experience at that point though.

OOP is a pretty powerful paradigm, which means it's also easy to provide enough rope to hang yourself with. See also just about any other meme here about OOP