You are viewing a single thread.
View all comments
22 points

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

permalink
report
reply
14 points

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.

permalink
report
parent
reply
3 points

anything that supports your language’s language server protocol

permalink
report
parent
reply
2 points
*

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

permalink
report
parent
reply
0 points

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

permalink
report
parent
reply
6 points
*

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.

permalink
report
parent
reply
3 points

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.

permalink
report
parent
reply
1 point
*

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.

permalink
report
parent
reply
1 point

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

Fixed

permalink
report
parent
reply

Programming Languages

!programming_languages@programming.dev

Create post

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:

  • “Check out this new language I’ve been working on!”
  • “Here’s a blog post on how I implemented static type checking into this compiler”
  • “I want to write a compiler, where do I start?”
  • “How does the Java compiler work? How does it handle forward declarations/imports/targeting multiple platforms/<other tricky feature>?”
  • “How should I test my compiler? How are other compilers and interpreters like gcc, Java, and python tested?”
  • “What are the pros/cons of <language feature>?”
  • “Compare and contrast <language feature> vs. <other feature>”
  • “Confused about the semantics of this language”
  • “Proceedings from PLDI / OOPSLA / ICFP / <other large programming conference>”

See /r/ProgrammingLanguages for specific examples

Related online communities

Community stats

  • 2

    Monthly active users

  • 272

    Posts

  • 327

    Comments