Howdy HackerNews!<p>I'm interested in HackerNews feedback and feature requests for Python. I am posing this question to the garrulous HN crowd, so I'm excited about it, and I'm sure this will be interesting!<p>Please include in your replies the following bullets:
- HEADLINE: 1-line description of the request<p>- DESCRIPTION: A lengthier description of the feature. Bonus points for constructive criticism ;-)<p>We're super interested in your feedback!<p>Thanks, HN!
Real threads.<p>For better or for worse, Python is the language of deep learning. We're going through all sorts of contortions to make it scale to large datasets, and the biggest problem is that Python is single-threaded for practical purposes.<p>I know all about the GIL and how difficult it is, but as a user, I don't care about any of that. The moment a similarly usable language comes along that does have working threads, I'll use it. I hope that language is also Python.
- More explanation/docs of the concepts & structures in asyncio<p>- Some descriptions & examples of the constructs in the asyncio module, and what kind of problems you'd use each construct for would go a long way. IMO the API docs are too detailed to be able to learn from vs reference[0]. Perhaps a HOWTO is the kind of level I'd be looking for[1]. Or maybe this already exists but I'm using bad search terms.<p>[0] <a href="https://docs.python.org/3/library/asyncio.html" rel="nofollow">https://docs.python.org/3/library/asyncio.html</a>
[1] <a href="https://docs.python.org/3/howto/index.html" rel="nofollow">https://docs.python.org/3/howto/index.html</a>
Another LTS release would be cool. Toward the end of 2011[1], it was announced that python 2.7 that would be supported until 2020[2]. With 8 years of support, this effectively made 2.7 into an LTS release. It would help 2->3 migration efforts if there was a python 3.x LTS release.<p>[1] <a href="https://www.python.org/dev/peps/pep-0404/" rel="nofollow">https://www.python.org/dev/peps/pep-0404/</a>
[2] <a href="http://legacy.python.org/dev/peps/pep-0373/#update" rel="nofollow">http://legacy.python.org/dev/peps/pep-0373/#update</a>
My main pain points with python currently are distribution and GUI. PyInstaller is working <i>fairly</i> well at the former, but is by no means perfect. For GUI, there are a lot of options, but they all come with suboptimal trade-offs (licensing, non-native look, dated look, etc).<p>The recent features that have been added have been amazing, though. The new Windows installer, type hinting, asyncio, and f-strings have all made my life easier.
1. Type safety!<p>Run time type hint checks in the standard library, small performance impact allowed.<p>2. Compilation/optimisation using your hints<p>Like cython but using python's own type hints so you can give the compiler type information without leaving valid python.
As a python aficionado, I am really concerned that Python might eventually become the new Perl. Golang has pretty much replaced python for most of infra level projects.<p>1. Python needs to get JIT support (interfaces to dynamically JIT), beyond PyPy.<p>2. Type Safety.
Type hinting is a good start. I love the direction projects like mypy is going. Allow programmers to mention types for functions which can be then JITed.
Python has just about everything it can have without breaking compatibility. Also believe 3.7 is in feature freeze.<p>The remaining hurdle appears to be performance. Perhaps bundling cython or pypi is doable?