> Is "Hello world" actually the expected output?
Isn't that the definition of helloworld?
> Also, what makes the status code handling special compared to, say, - assuming the english language is the preferred language instead of asking the OS for the user's preference - assuming that the output has to be ASCII (or compatible) instead of something like UTF-16
True. But by any definition printing nothing is a failure. If failing to print anything isn't a failure, what is?
> There seems to be a weird obsession with the program's status code over anything else in this whole comment section
It's because it's the only structured way to indicate success. And "not printing" is clearly a failure of "print 'hello world'".
> supporting the latter is hard and therefore assumed to be less important.
No, but printing nothing is clearly a failure. Printing the wrong language is not obviously a failure of helloworld, and absolutely not something helloworld can know on its own.
helloworld can know it failed to print what it intended to print. It cannot confirm that its intentions are correct, even in principle.
It cannot know whether some Lennartware has decided that anything built before yesterday (e.g. LANG envs and friends) can be ignored, and that in Lennart land all programs should write a request for the language to the blockchain, and wait for a reply transaction before printing anything.
Just because you can come up with examples of errors helloworld cannot check, doesn't mean that it should not do error handling for the things that it can.
`tar` cannot check that the user actually intended the particular file format flavor that it implements, but it can know that failing to write it should cause it to report an error.