this post was submitted on 20 Dec 2024
973 points (97.1% liked)

Programmer Humor

33705 readers
352 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
[–] masterspace -3 points 2 months ago (21 children)

Lol name one outside of it's well known equality rules that linters check for.

Also, name the language you think is better.

Because for those of us who have coded in languages that are actually bad, hearing people complain about triple equals signs for the millionth time seems pretty lame.

[–] [email protected] 6 points 2 months ago (3 children)

Recently I encountered an issue with “casting”. I had a class “foo” and a class “bar” that extended class foo. I made a list of class “foo” and added “bar” objects to the list. But when I tried use objects from “foo” list and cast them to bar and attempted to use a “bar” member function I got a runtime error saying it didn’t exists maybe this was user error but it doesn’t align with what I come to expect from languages.

I just feel like instead of slapping some silly abstraction on a language we should actually work on integrating a proper type safe language in its stead.

[–] masterspace 2 points 2 months ago* (last edited 2 months ago) (2 children)

I think that might be user error as I can't recreate that:

[–] [email protected] 1 points 2 months ago (1 children)

Yeah, you would get a runtime error calling that member without checking that it exists.

[–] masterspace 1 points 2 months ago* (last edited 2 months ago)

Because that object is of a type where that member may or may not exist. That is literally the exact same behaviour as Java or C#.

If I cast or type check it to make sure it's of type Bar rather than checking for the member explicitly it still works:

And when I cast it to Foo it throws a compile time error, not a runtime error:

I think your issues may just like in the semantics of how Type checking works in JavaScript / Typescript.

load more comments (17 replies)