Tulip / asyncIO: Warum sind nicht alle Anrufe asynchron und geben an, wann die Dinge synchron sein sollen?

Ich bin zum SF Python-Treffen gegangen, als Guidoredete über Tulip, die zukünftige asyncIO-Bibliothek für asynchrone Operationen in Python.

Der Vorteil ist, dass Sie das verwenden können, wenn etwas asynchron ausgeführt werden soll"yield from" + expression und ein paar dekorateure, die angeben, dass der aufruf nach was kommtyield from sollte asynchron ausgeführt werden. Das Schöne daran ist, dass Sie die Anweisungen in dieser Funktion normal lesen können (als ob sie synchron wären) und sich so verhalten, als ob sie synchron bezüglich der Ausführung dieser Funktion wären (Rückgabewerte und Fehler- / Ausnahmeausbreitung und -behandlung) ).

Meine Frage ist: warum nicht das gegenteilige Verhalten haben, nämlich alle Funktionsaufrufe standardmäßig asynchron (und ohne dieyield from) und eine andere explizite Syntax haben, wenn Sie etwas synchron ausführen möchten?

(außer der Notwendigkeit einer anderen Schlüsselwort- / Syntaxspezifikation)

Antworten auf die Frage(2)

Ihre Antwort auf die Frage