[Async-sig] SansIO (Was: PEP: asynchronous generators)

Glyph Lefkowitz glyph at twistedmatrix.com
Mon Aug 8 06:53:05 EDT 2016


> On Aug 8, 2016, at 2:45 AM, Cory Benfield <cory at lukasa.co.uk> wrote:
> 
>> On 8 Aug 2016, at 07:56, Yarko Tymciurak <yarkot1 at gmail.com <mailto:yarkot1 at gmail.com>> wrote:
>> 
>> Question: isn't SansIO / Corey's work just a specific instance of Bob Martin's "Clean Architecture"?  It sounds familiar to me, when thinking of Brandon Rhode's 2014 PyOhio talk, and his recast of the topic in Warsaw in 2015.  It seems like it...  If so, then perhaps async aspects are just a second aspect.
> 
> 
> Yeah, so this is worth highlighting more clearly. =) I apologise to the list in advance for this, but this is going to be something of a digression, so I have re-titled the thread.
> 
> I have invented and pioneered *nothing* here. Designing protocol implementations this way is not new in the world of software development. No-one is going to give me a medal or name a design pattern after me, and I don’t even think that pushing for this design pattern will help me move up my employer’s technical career path the way spending time on writing RFCs would have.

I wouldn't be so sure about that - I have definitely been referring to the principle that one should design an I/O free layer in every system as "Benfield's Law" in recent conversations ;-).

> That said, I’d love to have Brandon weigh in on this too. I do feel a bit bad that I am re-treading ground that others have covered before, but…hell, we can’t all be top-tier programmers! If all I say is that I have repackaged an idea my intellectual betters have previously made such that it’s more appealing to the masses, I think I can call myself happy with that.

I really don't think you should feel even a bit bad here.  I'm one of the people who has been trying to tell people to do this for the last decade or so, and frankly, I'd been expressing myself poorly.  There's also a "do as I say, not as I do" problem here: I learned this lesson _after_ I had implemented a bunch of protocols the wrong way (stacks and stacks of inheritance, tight I/O coupling), and then decided I'd surely do the _next_ one right.  But of course then I was buried under the crushing maintenance burden of the existing stuff and I still have not managed to crawl my way out.  Certainly, none of the popular code I've written works this way.

As a result, I feel tremendously grateful that you have managed to noticeably increase the popularity of this concept, and as far as I'm concerned, you deserve quite a bit of credit.  Given the number of people publicly associated with it now, clearly it's something we all thought was important to advocate for (and did successfully, to the extent that some people have learned those lessons!), but nevertheless nobody that I'm aware of, especially in the Python community, has managed as impactful a presentation as you have.  This is not entirely an accident of history - it was a very good talk that was deceptively simple-looking but belied a lot of deep expertise.  So don't sell yourself short: you may not have invented the concept, but I know I could not have given that talk in quite that way; I'm not sure any of the giants whose shoulders you stand upon could have either.

-glyph

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/async-sig/attachments/20160808/709ee170/attachment-0001.html>


More information about the Async-sig mailing list