Live data from Hacker News

The Case Against Python 3

learnpythonthehardway.org

131–140 of 281 posts

Re: The Case Against Python 3

#131
post #119

After careful statistical analysis I concluded that there is a 9.56% chance Zed is trolling experienced programmers. Disregarding the trolling about "Turing Completeness", there are some points he raises that are interesting. On some (most thing) items there, the train has left the station. But some are good to listen to: Better error messages. Rust has been making progress there so maybe a good place for inspiration…

Packaging and the distribution network to go with it PyPI are one of the key underpinnings of the python community, and as such deserve more love from the PSF. It is in the best interest of the PSF to actively support and push improvements to packaging, and to put community resources towards its development.

Re: The Case Against Python 3

#133
I've helped a few people learn Python. Nobody has ever gotten hung up on Unicode strings. We've even done string-y stuff such as talking to hardware via pySerial.

We've modified a couple of libraries ourselves, typically stuff that was written a long time ago and abandoned. Other than that, we've never really run into a problem where the choice of one version of Python over the other was an obstacle.

Re: The Case Against Python 3

#134
I hope we can just call Python 2.8 -> Python 4 and do a bridge to import the good things about Python 3. Agreeing or not agreeing with the author points is irrelevant, Python is slowly and unfortunately dying because of this schism.

Re: The Case Against Python 3

#135
post #77

Earlier quoted context omitted.

After 8 years the man has a point, most of his arguments are not correct though. Conclusion stands, python is shooting itself in the foot.

Can the conclusion stand if the arguments are not correct? I'm sure there are other, better arguments out there, but after reading this from top to bottom I'm getting the idea that the resistance to Python 3 is mostly irrational.

> Can the conclusion stand if the arguments are not correct?

It can; arguing it can't would be an 'argument from fallacy', itself a fallacy.

Put another way, I can make up a totally absurd, incorrect argument that the sky is blue, but the sky is still blue. I can also make up a totally absurd, incorrect argument that the sky is green, but it isn't. An argument that doesn't hold water doesn't say anything useful about the conclusion either way.

Re: The Case Against Python 3

#136
post #48

Apart from his argument that Python 3 is not turing complete, which has been torn apart in the comments, can someone evaluate the other arguments. Are the other criticisms valid? If not, why?

Alright. Point by point (although I'm considering both the beginner and "advanced" arguments for each point simultaneously):

> You Should Be Able to Run 2 and 3

That makes no sense. The whole point of versions is that they are different. Maybe he means 3 should be backwards compatible. That is potentially valid criticism. That said, AFAICT, the breaking changes are pretty reasonable [0][1]. Also, I'm not sure what world he is living in, but interop between Java and C/C++ through the JNI is not easy. As a math major I'm not sure what the "solid math" here is. I think it is ironic that the CLR is referenced here so extensively - it has made some pretty big breaking changes in the past (unlike Java, it decided to break backwards compatibility to have reified generics).

> No Working Translator

Translation is tough, _especially_ in languages like Python that don't have good static guarantees. The real problem here is probably that the code you want to produce with a translator should look as much like the original code when possible. That _is_ tough. The point is it isn't just what the program does in terms of inputs and outputs that you want to preserve. You still want it to look more or less the same.

> Difficult To Use Strings

This is not an incorrect point. I think Python 3 wanted to have both the performance of byte strings and utf8-by-default strings (finally!). The intention behind that seems reasonable. As a proponent of strong static typing, the error message he shows seems quite benign. That said, I understand how one might be unhappy about this.

> Core Libraries Not Updated

This may be the case, I'll defer to someone else. That said, this is yet another claim the author makes without much backing (this alone could be the subject of a blog post given the right backing). The quip about the Python community liking bad design seems a bit gratuitous.

[0]: https://docs.python.org/3/whatsnew/3.0.html [1]: http://sebastianraschka.com/Articles/2014_python_2_3_key_dif...

Re: The Case Against Python 3

#137

The argument is bad but the headline has a point: the value of a language is the quality of its libraries and the community that maintains it. Python 3 seems like a mistake; it fractured the community and sent people away. (to golang, to scala, probably even to ruby). If I were a library maintainer on py2 I would have felt betrayed by py3. Suddenly print is a function? 'yield from' won't be available on the py2 branc…

> Let's hope python can be saved. Can you explain why Python would need to be saved? I mean every week on r/MachineLearning there is at least one new Python deep learning framework being launched[1], I wonder if you can mention any other language which is that healthy. [1] https://www.reddit.com/r/MachineLearning/search?sort=new&res...

All stable versions of the big ML frameworks are still 2.7.

Re: The Case Against Python 3

#138
post #94

The argument is bad but the headline has a point: the value of a language is the quality of its libraries and the community that maintains it. Python 3 seems like a mistake; it fractured the community and sent people away. (to golang, to scala, probably even to ruby). If I were a library maintainer on py2 I would have felt betrayed by py3. Suddenly print is a function? 'yield from' won't be available on the py2 branc…

A language must change, or it will be left behind, and become an esoteric toy. Even C has to deal with this. The only reason C is still popular is because of it's grandfathered status in so much of our infrastructure, and in many of the popular OS choices. A language that changes will alienate people, and lose people. Perl saw this. Python is seeing this. The way to guard against this is to keep backwards compatibili…

>I doubt the Scala community worries about exactly the same things.

Why do you single out Scala as being particularly different to Python and Perl?

Re: The Case Against Python 3

#139

Earlier quoted context omitted.

> Let's hope python can be saved. Can you explain why Python would need to be saved? I mean every week on r/MachineLearning there is at least one new Python deep learning framework being launched[1], I wonder if you can mention any other language which is that healthy. [1] https://www.reddit.com/r/MachineLearning/search?sort=new&res...

All stable versions of the big ML frameworks are still 2.7.

Even if your statement was true (it's not)[1][2][3][4], how would that be a sign that Python is dying?

[1] http://www.deeplearning.net/software/theano/install.html

[2] https://www.tensorflow.org/versions/r0.11/get_started/os_set...

[3] https://keras.io/#you-have-just-found-keras

[4] https://lasagne.readthedocs.io/en/latest/user/installation.h...

Post reply on HN