this post was submitted on 15 Nov 2024
196 points (93.8% liked)

Programmer Humor

32475 readers
1376 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] PeriodicallyPedantic@lemmy.ca 1 points 9 hours ago (1 children)

I mean, if your IDE does it for you, is it really that much better that it's shorter?

[–] ReversalHatchery@beehaw.org -1 points 9 hours ago (1 children)

not the IDE, its the compiler. this is also not some AI shit, in many cases (not all) the compiler can actually figure out how to do this, because it's not hard, it would just be a lot of boilerplate if written manually.

[–] PeriodicallyPedantic@lemmy.ca 2 points 8 hours ago (2 children)

Why did you even bring up AI? IDEs have been able to generate equality functions for decades without AI.

It's kinda neat to have this defined directly in the language so that compilers can implement it, but creating equality function is so low effort that this doesn't really seem like a big deal.

Like, you define the members in a class, then you tell your IDE to generate getters, constructor, equals, hashcode, etc all in like 5 seconds.
I like it, it's nice when the language itself defines reasonable defaults for things, but realistically you're saving yourself a few seconds of effort.

[–] shy_mia@lemmy.blahaj.zone 5 points 8 hours ago

Yeah but if the class changes you need to update everything, you got all that boilerplate taking up space for no real reason, etc...

The Rust way's just a lot cleaner imo.

[–] words_number@programming.dev 2 points 7 hours ago

Isn't it obvious? More code to skim, scroll over and maintain if something changes. If you add a struct field, your manual EQ implementation still compiles and seems to work but is wrong and will lead to bugs. Yes, solving this for 99,999% of cases with an attribute is just far superior and does make a difference (while keeping it easy to manually implement it if needed). Hash and Ord and some other traits can be implemented in a similar fashion btw..