3 ms·
what is strange is that everyone seems to be using Python 2.7 in some form. There is all this new work being done in Python 3 asyncio but there is nothing that
by sandGorgon 11y ago
what is strange is that everyone seems to be using Python 2.7 in some form. There is all this new work being done in Python 3 asyncio but there is nothing that is being used... and this is from a guy who pretty is a core developer in several python projects.
I look at Ruby or Go... or even Java and every new language feature has a much more rapider adoption curve.
is this a pretty solid statement that the entire Python 3 + asyncio path is a dead end ?
- windlep 11y agoWe used Python 2.7 for pypy compatibility. I really dig the new async/await primitives added to Python 3.5 and think the asyncio path is the best path forward. I hope the work to get all the latest asyncio stuff working on PyPy picks up some steam.
- sandGorgon 11y agohey - thanks for replying. if Pypy + asyncio was available, would you have built everything using that stack ? There have been all these benchmarks that asyncio is so much slower than threads [1] How would you compare that with Go ? [1] http://techspot.zzzeek.org/2015/02/15/asynchronous-python-and-databases/ http://techspot.zzzeek.org/2015/02/15/asynchronous-python-an...
- kintamanimatt 11y agoFor certain things that they probably shouldn't be used for, not across the board.
- bpicolo 11y agoThe main issue with asyncio is it is incompatible with some of the best packages in the ecosystem atm, e.g sqlalchemy
- broodbucket 11y agoThe difference is that Python 3 is far more backwards incompatible than an update to Ruby, Go or Java. If there's any component of your Python project that was written for Python 2 and it hasn't been ported, your project as a whole is probably staying in Python 2. I certainly wouldn't call the Python 3 path "dead", as starting a new project you'd be silly not to use Python 3. It's just a very slow process. Also, porting from 2 to 3 isn't even that hard (there's a script that does 95% of it for you).
- sandGorgon 11y agoI understand this in its abstract sense - but I think (IMHO) the fundamental problem is that every framework out there is using Python 2.7.... which means nobody is using it. I'm not sure if you have worked in the Ruby or Go ecosystem... but if you are starting a new project, you are using latest Ruby+latest Rails. this is not the case in Python. I asked a question here and on the /r/python forums. What framework should one use to build an API using asyncio+postgresql. Nobody seems to be doing it. the answers I got mentioned using Tornado with Python 3 code on top of it. People have compared asyncio with goroutines - but even for a project that is a migration from Go -> Python by a fairly advanced developer ... Py 2.7 is being used.
- Too 11y ago> every framework out there is using Python 2.7.... That's just FUD, it might have been true many years ago but not any longer. http://python3wos.appspot.com/ http://python3wos.appspot.com/, there are a few red holes but from what I could tell some of those have substitutes that in many cases are better even. It might also be true for in house libraries but at least there you have the chance to upgrade yourself.
- sandGorgon 11y agoI know that. But I'm hard pressed to find anyone who is using this stuff in production. the ecosystem is still running 2.7. I cant wait to switch to Py3.
- azazel75 11y agoWe use ayncio and async/await coroutines of Python 3.5 on each of our packages. I hope that PyPy will have a Py3.5 compatible interpreter someday, but CPython is good enough for now.