Tulip / asyncIO: por que nem todas as chamadas são assíncronas e especificam quando as coisas devem ser síncronas?

Eu fui ao encontro do SF Python quando Guidofalou sobre o Tulip, a futura biblioteca asyncIO para operações assíncronas em Python.

A ideia é que, se você quiser que algo seja executado de forma assíncrona, você pode usar o"yield from" + expression e um casal de decoradores para especificar que a chamada para o que vem depoisyield from deve ser executado de forma assíncrona. O interessante é que você pode ler as instruções nessa função normalmente (como se fosse síncrona) e ela se comportará como se estivesse sincronizada com relação à execução dessa função (valores de retorno e propagação e manipulação de erros / exceções). ).

Minha pergunta é: por que não ter o comportamento oposto, ou seja, ter todas as chamadas de função ser por padrão async (e sem oyield from) e tem uma sintaxe explícita diferente quando você quer executar algo de forma síncrona?

(além da necessidade de outra especificação de palavra-chave / sintaxe)

questionAnswers(2)

yourAnswerToTheQuestion