> On 9 Dec 2016, at 21:27, John Lee <j...@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>
_______________________________________________
python-uk mailing list
python-uk@python.org
https://mail.python.org/mailman/listinfo/python-uk

Reply via email to