News for hackers. Stuff that matters.
Re:Lies we tell ourselves to keep using Golang by unethical_ban on Friday April 29, 2022 @10:31AM (#31205653)
> Why does the Go compiler suddenly care if we provide explicit values now? If the language was self-consistent, it would let me omit both parameters, and just default to zero.

Without analyzing the rest of the post (which I read without having the skill to fully comprehend), this stuck out to me.

Perhaps the language behaves one way and not another by design? It's abstraction. By using a Struct, I'm telling the function "don't worry what is in this one box of data, just take it and process it as best you can" while defining two inputs to a function says "I demand that two pieces of data be present".

I don't think it's an inconsistency to see this behavior.

Re:Lies we tell ourselves to keep using Golang by fasterthanlime on Friday April 29, 2022 @10:49AM (#31205889)
It is a very minor point and could easily be removed from the article, but I had that realization while writing those samples and it stuck with me.

I really think that if we follow the "zero values by default" philosophy, it wouldn't be shocking for Go to accept omitting function arguments and just zero them.

The fact that it doesn't, and insists on you passing the right number of arguments, makes the point that you can't in fact, just afford to zero out everything that isn't explicitly specified.

Re:Lies we tell ourselves to keep using Golang by arccy on Friday April 29, 2022 @12:16PM (#31207130)
that's a trade-off with catching user errors, are you more likely to forget to pass an argument or need to pass a zero value?
Re:Lies we tell ourselves to keep using Golang by myrrlyn on Friday April 29, 2022 @01:18PM (#31208012)
why isn't it inconsistent to allow creation of a record with missing components but to deny creation of a stack frame with missing components