this post was submitted on 14 Aug 2023
1414 points (98.0% liked)

Programmer Humor

19623 readers
1120 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 1 year ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[โ€“] CoderKat@lemm.ee 5 points 1 year ago* (last edited 1 year ago) (1 children)

Let's not pretend people acknowledge warnings, though. It's a popular meme that projects will have hundreds of warnings and that devs will ignore them all.

There's a perfectly valid use case for opinionated languages that don't let you get away with that. It's also similar to how go has gofmt to enforce a consistent formatting.

Honestly, I've been using Go for years and this unused variable error rarely comes up. When it does, it's trivial to resolve. But the error has saved me from bugs more often than it has wasted my time. Most commonly when you declare a new variable in a narrower scope when you intended to assign to the variable of the same name (since Go has separate declare vs assign operators).

[โ€“] ennemi@hexbear.net 3 points 1 year ago* (last edited 1 year ago)

You can, if you want, opt into warnings causing your build to fail. This is commonly done in larger projects. If your merge request builds with warnings, it does not get merged.

In other words, it's not a bad idea to want to flag unused variables and prevent them from ending up in source control. It's a bad idea for the compiler to also pretend it's a linter, and for this behaviour to be forced on, which ironically breaks the Unix philosophy principle of doing one thing and doing it well.

Mind you, this is an extremely minor pain point, but frankly this is like most Go design choices wherein the idea isn't bad, but there exists a much better way to solve the problem.