3 ms·
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
by cdoxsey 13y ago
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.
- dbaupp 13y ago> dumping your program's stdout to /dev/null should result in an error That's not what's happening though. The invocation is: hello 1< /dev/null i.e. stdout is read-only, and it seems reasonable that that should be an error.
- markeganfuller 13y agoThis is a very strange way of 'faking' a read-only file and after testing Python, it handles real read-only files fine -rw-r--r-- 1 root root 0 Jun 10 17:28 test python hello.py > test bash: test: Permission denied echo $? 1
- talex5 13y agoThe "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).
- markeganfuller 13y agoHis example focused on the program return code which in this case is correctly 1