3 ms·
I suspect the debate about Python3 will never end. My thoughts on this are: - Python2 seemed to enjoy some success because of its simplicity - Python3's break
by cletus 10y ago
I suspect the debate about Python3 will never end. My thoughts on this are:
- Python2 seemed to enjoy some success because of its simplicity
- Python3's breaking changes seemed ill thought out. As an example, PEP-414 [1], which reintroduced explicit Unicode string literals to ease porting Python2 to Python3. The fact that it was removed in the first place suggests there was a lack of thought about or concern for the effects of breaking changes. It's almost like once the decision was made to make breaking changes then considerations about porting and libraries maintaining compatibility between the two were of no concern.
- IMHO there has been a shift away from dynamic languages that came at a rather bad time with the schism in Python land.
- Non-backwards compatible changes have often gone badly. Perl5 to Perl6. PHP 6. Python 3. I mean gone badly in the sense that it seemed to hurt adoption, at least for awhile.
- It seems like statically typed languages have somewhat supplanted some of the use cases for these languages. I'm thinking of Go as one specific example. The way I like to put it is that dynamic languages force you to have unit tests for spelling mistakes and typos.
If you compare the Python3 async stuff with Go's I honestly think Go is more elegant here.
- Lastly of course there's the GIL. I think this is increasingly becoming a problem in a multi-core/multi-threaded world.
The GIL design really does simplify writing C extensions. This makes Python pretty convenient and well-suited for certain tasks. I'm thinking specifically of things using Numpy.
Anyway I'm not saying you can't write, say, high-performance Web servers in Python with AsyncIO/gevent loops and the like. It's just not as... elegant and simple as things seemed back in the days when Python 2.7 was state of the art.
[1] https://www.python.org/dev/peps/pep-0414/ https://www.python.org/dev/peps/pep-0414/