引子:
2013 年的 Python Conference China 珠海场,我做了一个《论 Python 与设计模式》的分享。今天组织者知名的社区大妈 ZoomQuiet 给我分享了一篇文章,讨论由这篇文章而起。后觉得这个讨论对我来说是很有意思的,所以整理了聊天记录,征得 ZQ 同意后发布到这里,当作是我思想的印迹保存下来,非为分享,觉得有帮助有启发可以留言感谢,觉得要说服我、教育我,可以省点力气多陪一下家人朋友了。
========================
ZQ@zh#奶爸 10:02:26
On object-oriented programming #是也乎# ZoomQuiet.io http://blog.zoomquiet.io/imho/131224-yw-on-oop.html#-PyCon2013China 上赖总的分享,对比这文章,中枪无数哪,,,目测很多大牛也都是为了 OOP 形象而宣传,平时写代码,尽可能不折腾 的,,,gz赖勇浩 10:09:31还好吧,不算冲突。我上次的分享,讲的主要也是利用 python 的特性地实现 pythonic 的设计模式,也就是说,让设计模式的神在 python 代码中传播,而不是照搬来自 C++/Java 示例中的“形”。比如我分享的装饰器模式就是以 first-class function 为技术基础的,里面主要是利用了闭包是“带状态的函数”这一个特点。ZQ@zh#奶爸 10:11:27对的 Guido 也是基于市场宣传的压力,宣称 Python 中的 OO 特性,其实, 分析了源代码大家都知道 OO 在Python 中并不是主导地位gz赖勇浩 10:11:36程序语言设计,王大神比我高明许多;但讲到写普通的业务代码,他倒是未必比我高明的。ZQ@zh#奶爸 10:12:25也看什么业务代码,他给 Google 写的业务代码可是每天在跑的,,,ZQ@zh#奶爸 10:13:05当然我们平常接触的 ARUD 式业务,实在不算真正的业务了,,,ZQ@zh#奶爸 10:13:20只是数据的搬动而已,gz赖勇浩 10:14:53大妈这就是妄自菲薄了。设计小蛮腰是业务,在小蛮腰上烧电焊也是业务,一个电焊工可不会在一个建筑师面前这么自卑。ZQ@zh#奶爸 10:15:49当然,工作没有高低,俺只是说其中包含的智力消耗完全不同级别而已,,,ZQ@zh#奶爸 10:16:14我们拼的是手速,高阶业务,可真心拼的是思维了,,,gz赖勇浩 10:17:02我的意思就是不同意“智力消耗完全不同级别”的说法。烧好电焊,需要的学习和修炼,未必比学习建筑设计要少。gz赖勇浩 10:18:18larry & page 当年用 java 写出 google,难道他们遇到的挑战比设计 java 程序语言要低得多?gz赖勇浩 10:18:54用 C 语言写出 linux 内核,难道比设计 C 语言遇到的挑战要低得多?gz赖勇浩 10:19:30用 C++ 写出 WPS,你觉得真的比开发 C++ 要难得多么?ZQ@zh#奶爸 10:20:01这个只有当事人知道了,,,因为 Google 的爆发不是只有两人时开始的,那时 Google 已经有上千名员工了,工程管理的困难比纯粹技术突破要复杂的多,但是,涉及的思维层级,就不好说了,,,,gz赖勇浩 10:20:22java 爆发的时候,也是发布到 1.4 版本了。ZQ@zh#奶爸 10:21:07"烧好电焊"是种肌肉记忆的训练,练到极致是拼装备了,,,所以,现在顶级 电焊都是依靠编程,自动进行的了,,,gz赖勇浩 10:22:02王珢在他所擅长的领域有未经验证的“专长”而已,就算以后发布出经得起考验的产品,也还是普通人,没必要把他当成神罢。ZQ@zh#奶爸 10:22:07智力消耗,这个点,俺可能描述不清,严格来讲,应该说是 反日常思维程度的级别不同?gz赖勇浩 10:23:01设计一个编程语言,不是非常难的事,在金山至少可以挑出 50 个人在 1 个月内每个人都造出一门有其特色的编程语言。ZQ@zh#奶爸 10:23:02这个放心,他自个儿也放了话:我和权威的故事 http://www.yinwang.org/blog-cn/2014/01/04/authority/"""...我深深地知道接受错误想法的危害性,所以我也希望大家都具有批判的思维,不要盲目的接受我说的话。我不喜欢“大神”或者“牛人”这种称呼。"""gz赖勇浩 10:23:57我相信,就是这一秒,金山内部也有不少于 3 个自主研发领域特定语言(DSL)正用在生产中。ZQ@zh#奶爸 10:23:59俺主要敬佩他坚持自个儿的追求,一直不盲从,只是口气臭些,,,,ZQ@zh#奶爸 10:24:50设计一个编程语言,的确不难,在 王珢 的文章中,给出过35行一个DSL 编译器的源代码,但是,设计一个真正好用的编程语言,可就是完全不同的领域了,,,ZQ@zh#奶爸 10:25:59俺其实在以往也不自主的发明了各种局部 DSL ,包括 UliWeb 自个儿发明的模板语言,但是,整个世界为毛没有变成大家都在使用自个儿的DSL 来完成自个儿的工程?gz赖勇浩 10:27:17设计一个真正好用的编程语言========这个王珢自己就没办到,又何须觉得他真的在这一块是一个神呢?ZQ@zh#奶爸 10:27:21当然,这其中市场营销,大师忽悠,培训市场等等,都在博弈,但是,语言本身的设计思想,是个决定因素ZQ@zh#奶爸 10:28:01"又何须觉得他真的在这一块是一个神呢"...这个断言,不适合俺吧,,,俺也从来没有吼过珢神的说,ZQ@zh#奶爸 10:30:06只是,对于编程语言, 这一专门的研究领域,王珢 是这个前沿领域的专业研究人员,不同其它各种公司的语言设计组成员,他没有任何市场功利因素,只是进行科学研究,所以,俺愿意相信他的一些论断,以及论据,但是,远没有达到可以作为代言来进行布道的水平,,,gz赖勇浩 10:31:01王珢 是这个前沿领域的专业研究人员,========已经不是了,他离开研究领域很久了,他现在是“该领域技术的应用人员,正在开发相关的产品”。ZQ@zh#奶爸 10:31:02真正好用的编程语言,这事儿,他也给出了结论:为什么一种程序语言是不够用的 http://www.yinwang.org/blog-cn/2013/06/23/one-lang-not-enough/承认当年自个儿也是图样图森破gz赖勇浩 10:32:15他没有任何市场功利因素,只是进行科学研究,=========有。他最近的很多文章,其实都算是他创业产品的小软文。ZQ@zh#奶爸 10:32:21也没有很久,就两年,而且从他的经历看,PL 领域也是各种宗教战争的主场,他离开,实践自个儿的技能,不代表不继续研究那,,,ZQ@zh#奶爸 10:32:47研究的经历是在校时的经历,这个没有问题吧ZQ@zh#奶爸 10:33:45嗯嗯嗯,其实,中文的blog 只是他思想表述的很小一部分,认为天朝人应该接受的了,他的E文 blog 更加丰富的,,,gz赖勇浩 10:40:32好吧,结题一下:1、我觉得他对设计模式的看法跟我没有太大差别,如果我理解没有错误,那就是“不要照搬教科书 C++/Java 的设计模式示例代码,而是要将设计模式的思想与编程语言自身中特性结合起来,做到 Within a few hours I found a mapping from all the weird names it introduced to the programming techniques I had been using all the time. ”,大概就是要做到“神似而形不似(教科书的示例代码)”。2、我觉得设计、实现编程语言不是“火箭科技”,大部分高级程序员都可以轻松做到“设计、实现领域特定语言”,但我相信王珢在这一块“技能树点得比较满”,比我厉害,但不见得我(或其他编写业务逻辑代码的程序员)写的代码比他烂(或者说,坏味道)。ZQ@zh#奶爸 10:41:55赖总的结论都无法同意更多...俺抄送链接,也是为了给赖总追加信心,王珢 这种人物想的跟你也没有什么不同gz赖勇浩 10:42:23 谢谢大妈。 gz赖勇浩 10:42:31谢谢大家,我工作去了。