This post has some bizarre conclusions. Like this:
My theory is, if the language designers can’t write hello world safely, what hope do the rest of us have?
It's not at all obvious to me that dumping your program's stdout to /dev/null should result in an error. Getenv returns the empty string and continues. Then Go somehow manages to parse the empty string as an empty JSON list and still continues.
I don't understand this. Go's JSON methods return errors for invalid JSON. If you want to know if something wasn't set you can test for the empty string. There's no magic. Later he has the code: json.Unmarshal(json_data, &argv)
And you can see that he just chooses to ignore the error.He also knocks go for its lack of shared library support. I suppose this is controversial but this wasn't an accident.
http://harmful.cat-v.org/software/dynamic-linking/
He says for Go: These languages cannot distinguish between values and null at compile time.
This is also not true.Also I'm not sure what his performance test is testing. Just starting an empty hello world? That doesn't seem all that useful to me.