I am not sure why he tried something as subjective as code in each language, as ultimately if you don't use each of the languages equally, you will have a natural bias.
For instance, as someone who spends too much time in C#, his C# example is just hideous.
Not to mention the instant judgement that the language framework is poor if you don't get an exception. That is more the debate as to null/empty vs exception.
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.
The "Permission Denied" message you see here is from your shell, not Python.
But note the test isn't about whether you can open the file successfully, but about detecting writes to an open file failing (e.g. because the disk becomes full during writing).
9 comments
[ 2.9 ms ] story [ 29.1 ms ] threadRooting for Rust.
I was already disappointed with Go lang but this post have shown that Go can do worst.
For instance, as someone who spends too much time in C#, his C# example is just hideous.
Not to mention the instant judgement that the language framework is poor if you don't get an exception. That is more the debate as to null/empty vs exception.
He also knocks go for its lack of shared library support. I suppose this is controversial but this wasn't an accident.
He says for Go: 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.
That's not what's happening though. The invocation is:
i.e. stdout is read-only, and it seems reasonable that that should be an error.But note the test isn't about whether you can open the file successfully, but about detecting writes to an open file failing (e.g. because the disk becomes full during writing).