> 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