Thanks Cory -
I wasn't so much saying "Isn't Cory doing kinda what Brandon said" as I was saying "Isn't this kinda the more general stuff that Bob Martin talks (tries to talk about?) with Clean Architechture / Clean Coding (which Brandon - first I saw explicitly - shows a bit of examples of in the Python context in his PyOhio, and how that helps testability ... and I suppose maintainability).
So, less than my intending to point-to / assign credit (credit is due _everywhere_, honestly great stuff abounds!), I was hoping to say "hey - we've just scratched the surface - we can take this more broadly!"
For me, the interesting question (in looking at what coding errors I've seen which opened my eyes to all this, as entangled as they've been in several kinds all mixed in) - isn't async in general one of these elements with potential for "clean", for thinking about taking it further in python, in effect doing with the language sort of a similar thing which Cory has demonstrated w/ protocols? I don't know, but I am curios (pun not intended). Dave Beazley's curio (which I had the pleasure of saying "quit talking, show me running code!" early on - and then "wow!"), and other things are leading me to think our / Python community's perspective on async might (?) need a bigger shift, a bigger kick-out-of-current-ways-of-thinking. Yury's comment "you mean put async into the core, like go?" was probably spot on as far as understanding my thinking - but not to mimic, but rather to honestly explore the bigger library implications - maintenance and simplicity and performance - and the "keeping-you-out-of-trouble" effect that (hopefully) might exist for application coders. At this year's PyOhio, Dave mentioned a project moving from python to go because of this. I saw in enough (?) detail the "technical" reasons why (I think errors in managing cooperative multi-tasking, which async is - and never spotting the real problem), and I gasped, and so started some side discussions with several of you.
So - to everyone - thanks for all the discussion, and thinking, and presenting, and break-away libraries. I hope we keep kicking this ball around a bit more, into new, deeper space!
- Yarko