58
you are viewing a single comment's thread
view the rest of the comments
[-] pixxelkick@lemmy.world 22 points 7 months ago

You know what really sucks?

When I have a method that returns a Foo and like 300 places it gets called.

And then I change it to return an ever so slightly different Bar

Ah, now I need to go and update the code in 300 places cause the return type changed.

"Can't you just sed your codebase?"

Maybe, but it could cause some serious unintended dawizard

[-] sajran@lemmy.ml 14 points 7 months ago

The solution to this problem (and many others) is to use an IDE / editor which supports refactoring like that. Which is pretty much every IDE / editor unless you're using some very obscure language I think.

[-] lseif@sopuli.xyz 3 points 7 months ago

anything that supports your language's language server protocol

[-] sajran@lemmy.ml 2 points 7 months ago* (last edited 7 months ago)

Yup, that's what I meant. I really don't see why anyone wouldn't use it nowadays.

[-] sudo@programming.dev 0 points 7 months ago

I dont think external tooling should be a factor in deciding your language's definition.

[-] lseif@sopuli.xyz 1 points 7 months ago

a lot of languages these days ship with tooling.

[-] sudo@programming.dev 1 points 7 months ago

That doesnt change my point. The tooling is completely downstream of the language.

[-] okamiueru@lemmy.world 6 points 7 months ago* (last edited 7 months ago)

If it returned a "Foo", whose structure changes in such a way as to requires changes in all places it was used...

That, sounds to me like a disaster you avoided by being helped (which is the polite way to describe developers not getting away with ignoring lazy and dangerous type conversion bugs) to fix each and every usage of it.

[-] pixxelkick@lemmy.world 3 points 7 months ago

No, there's countless ways code could be consuming a Foo or Bar and not care which.

Literally any form of serialization won't care, for example.

Also you can change from a Foo to a Bar in a non breaking manner, where it's name changed but the still have the same interface.

[-] okamiueru@lemmy.world 1 points 7 months ago* (last edited 7 months ago)

We're talking about type inference, right?

If you have countless examples, I'd be happy to entertain others that have to do with type inference, because 1) serialisation is not related, 2) renaming in APIs is arguably, also not. Though, I cannot remember the last time my IDE wasn't able to know, and do this for me.

[-] sudo@programming.dev 1 points 7 months ago

Ah, now I need to go and audit the code in 300 places cause the return type changed.

Fixed

this post was submitted on 06 Apr 2024
58 points (86.2% liked)

Programming Languages

1160 readers
2 users here now

Hello!

This is the current Lemmy equivalent of https://www.reddit.com/r/ProgrammingLanguages/.

The content and rules are the same here as they are over there. Taken directly from the /r/ProgrammingLanguages overview:

This community is dedicated to the theory, design and implementation of programming languages.

Be nice to each other. Flame wars and rants are not welcomed. Please also put some effort into your post.

This isn't the right place to ask questions such as "What language should I use for X", "what language should I learn", and "what's your favorite language". Such questions should be posted in /c/learn_programming or /c/programming.

This is the right place for posts like the following:

See /r/ProgrammingLanguages for specific examples

Related online communities

founded 1 year ago
MODERATORS