[python-uk] What trends should we watch Python during 2017..?

Cory Benfield (Lukasa) lukasaoz at gmail.com
Sat Dec 10 10:07:14 EST 2016

> On 9 Dec 2016, at 21:27, John Lee <jjl at pobox.com> wrote:
> When you say "investigating new methods", do you mean new-to-the-world, or new-to-practitioners (or to some subset of practitioners, or some ecosystem)?  If the former, do you have citations?  I don't think of Python as a CS research language exactly -- except that pseudocode is often Python, or Python-flavoured -- nor am I aware of what async things had their start in Python -- even as far as 'pragmatics' goes.

“New to the world” is a high bar, and as I’m not a computer scientist I’d be very reluctant to want to make the claim that any idea met that bar. I know they do, but I know enough to know that I don’t know enough to make that judgement.

In this context, I mostly mean testing the boundaries of certain tools for managing asynchrony. The example I’m thinking of mostly here is the “async/await” keywords added in Python 3.5, which were added as a very literal mechanism for enabling the kind of event-loop parallelism that asyncio uses, with its explicit event loops and non-blocking I/O APIs and Futures. This is the model of async/await that is used most commonly in high-level dynamic languages like Python and Javascript (in no small part, I suspect, due to the success of Javascript).

However, students of programming languages will note that the async/await keywords grew out of C#, which doesn’t use event-loops directly but instead uses “task-based concurrency” with an implicit task runner. Thanks to the very general specification of async/await as language tools in Python, and thanks to the fact that they are fully accessible from Python code, it has been possible to investigate non-event-loop-based models for using these keywords. One such example would be Dave Beazley’s curio project[0], which is not entirely unlike the C# task-based concurrency model retrofitted on top of the Python standard library using the async/await keywords.

This is of course a facet of a more general truth, which is that Python’s relative accessibility means that features that find their way into Python often get extended in interesting and surprising ways. They’re not necessarily groundbreaking, but they are evolved and played with much more (ask the PyPy team!).

[0]: https://github.com/dabeaz/curio <https://github.com/dabeaz/curio>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-uk/attachments/20161210/6b03d7b9/attachment.html>

More information about the python-uk mailing list