← Back to context

Comment by Traubenfuchs

3 days ago

It‘s a harmful code smell: It often obfuscates the type, forcing you to actively check for the type and should not be used.

Your IDE can do that?

  • It can. But seeing the text there is faster than having to hover to see what the type is.

    It exists. It’s fine. People obviously like it.

    Some don’t, I’m one of them. I don’t see the advantage is very big at all. I don’t think it’s worth the trouble.

    But that’s me.

  • What if I'm just looking at a pull request on GitHub? Sure I can check out the branch etc but that's just adding more friction.

    • Bingo.

      Sometimes I doubt most hacker news commentors have ever worked in big corpo environments where you have to regularly review large PR in some broken webapp like GitHub.

      1 reply →

This is what it looks like to me. If you wanted to do this, why not use a scripting language where you can use this kind of practice everywhere? In Java, I don't expect to have to look up the return type of something to discover a variable type. Graciously, I can see how you can save rewriting the Type declaration when it's a function return you want to mutate.

Generally, you save some keystrokes to let other people (or future you) figure it out when reading. It seems like bad practice altogether for non trivial projects.

  • Modern IDEs will show you the type of anything at all times. I do not understand your point unless you're doing raw text editing of Java source.

    Those keystrokes are not just saved on writing, they make the whole code more legible and easier to mentally parse. When reading I don't care if the variable is a specific type, you're mostly looking whats being done to it, knowing the type becomes important later and, again, the IDE solves that for you.

    • > Modern IDEs will show you the type of anything at all times. I do not understand your point unless you're doing raw text editing of Java source.

      The word "String" "Integer" et al. + "var" is too much real estate for being explicit. Sometimes, I'm looking at the decompiled source from some library that doesn't have a source package available.

      > Those keystrokes are not just saved on writing, they make the whole code more legible and easier to mentally parse.

      This is incorrect. Repeating it doesn't make it true. For trivial code (<10 lines) probably seems fine at the time. Lots of bad practices start with laziness.

      Changing practice because an author thinks a function is small enough when it was written, is a recipe for unclean code with no clear guidelines on what to use or expect. Maybe they rather put the onus on a future reader; this is also bad practice.