无止境的进阶之路
这本书非常好,是深入理解Python最好的两本书之一,另一本可能是《500 Lines or Less》。
之前看到一个友邻说,这本是Python程序员的进阶书。看了一部分之后,感觉对Python协程确实有了更深入的认识——直到偶遇了下面这本书:
才明白,《Fluent Python》中,对很多东西的介绍也只是点到为止。而《500》则深入解释了很多问题,比如协程的具体实现,为什么要引入Task,甚至到Python解释器的对yield from语句的执行方法。
而《500》的编者,把《500》也称作入门书:
If you are a junior developer, and want to learn how your more experienced colleagues think, these books are the place to start.
都说Python容易入门,可学了三四年,我可能连个junior developer都算不上……
用两周的时间,看完了本书的第四部分【Control Flow】。之前,我对asyncio的印象就很不好,看完这本书,对asyncio有了一些了解之后,印象就更不好了。
比如,yield from这个关键词的设计,非常容易让人产生误解,虽然后来又设计了await,但是坏影响已经形成了,社区文档已经变得混乱不堪。
其次,GvR最初设计Python时,优先考虑的是语法——所以Python拥有最美的语法;但是,对异步和并发的支持不够。当GvR试图去补救这一切时,似乎已经太晚了——我们得到了asyncio这个包,但历史遗留问题太多了,需要重写的包太多了。而且,这个包的语法也很不友好,需要写很多很多重复的代码,让我觉得自己在写Java;协程调用的逻辑并不清晰;需要做很多额外的工作,体验都比不上gevent的monkey patch……
或许我应该尝试一下Go.
有关键情节透露