苹果Swift语言和LLVM编译器之父ChrisLattner的新动向引起了程序员的关注。编译器大师现已与Swift核心团队分道扬镳并完全脱离管理层的消息引发了很多讨论。拉特纳在斯威夫特官方论坛上透露,离职原因是“有毒”的团队文化。尤其是去年夏天他在视频会议上被侮辱和呵斥,这已经不是第一次了。冲突过后,拉特纳逐渐退出了Swift的管理和开发工作。反正他自己还有很多兴趣和事业要忙,还是往前看,眼不见为净。现在他正忙于筹备新公司Modular.ai,该公司致力于开发AI编译器和运行时等基础设施。啊,斯威夫特小队到底出了什么问题,居然能把师父赶走?“语法糖”导致拉特纳在五年前不再是苹果的正式员工。曾任特斯拉自动驾驶软件副总裁、谷歌Tensorflow基础架构总监、SiFive工程总裁。但是,他一直放不下自己开发的编程语言Swift。他坚持每周参加例会,参与社区讨论,自己编写和迭代大量代码。Swift语言逐渐发展壮大,取代旧的Objective-C成为许多公司开发新iOS应用程序的首选语言。然而,这种语言的发展方向逐渐偏离了拉特纳的理想。比如他的“simplethingsthatcompose”(简单的东西组合)的设计理念就不再流行了。他不是唯一有这种感觉的人,一些Swift的忠实拥护者也感到失望。从2015年到2019年,我对Swift投入了大量资金,并且是社区的活跃成员,看到这门语言现在的发展方向我有点难过。老哥主要是不爽,有些语言特性加的太随意太仓促,导致编译过程不再透明。事实上,导致Lattner透露退出原因的帖子,也是在讨论要不要加个语法糖。一位开发者认为,随意添加语法糖对语言维护者来说无所谓,但它带来的困惑却对语言使用者影响很大。我并不是说这个功能毫无价值,但我不希望它被当作“打断语言用户的脖子”的句法糖引入。接着,他引用了拉特纳本人很久以前发表的一篇关于句法糖的思考。拉特纳认为,编程语言的主要功能相当于盖房子的“砖头”,而语法糖相当于填补砖块缝隙的“灰浆”。如果房子的主体是建好的,填缝的,是没有问题的。如果在砌砖之前大量涂抹砂浆,整个房子就会被砂浆覆盖,结构不牢固。以后要放砖头,就找不到合适的地方放了。似乎这种分歧在Swift社区存在已久,直到去年夏天的视频会议,冲突才爆发。在会上被骂完之后,拉特纳休息了一下,后来又找到了球队管理层谈话。他看到管理层在回避这个问题,找借口,并明确表示不打算对此采取任何行动。后来大师决定暂时离开周会,只参与论坛讨论。反正还有很多事情要忙。然而,他的意见越来越被核心团队忽视,觉得再这样下去太浪费时间,最终彻底离开。现在,Swift管理团队正试图引入一种新的社区治理机制来解决这个问题。他们打算参考其他编程语言和开源项目的成功经验,重新建立一个专注于语言本身演进和迭代的大型工作组,让更多的社区成员参与决策。对于编程语言社区应该如何治理,也有网友发表了自己的看法。有人认为Python之父的“终身仁慈的独裁者”模式(BDFL,BenevolentDictatorForLife)才是王道。Python之父听取了社区的意见,但最终做出了自己的决定。这位老哥认为,所有不使用BDFL模型的编程语言都会因为特性太多而变得多余。因为开发团队的每个成员都想添加自己想要的特性,特性之间的交互带来了二次方的复杂度,让用户感觉不舒服。其他网友则觉得有异常。Go语言并非由仁慈的独裁者管理,但团队始终坚持简单的设计理念。Go语言的每一个新的功能提案都会被仔细权衡和讨论。有些用户觉得更新速度慢得像冰川一样,但我个人对此表示赞赏。Lattner本人在Swift官方论坛上留下了最后一段忠告和祝福。我认为Swift是一种现象级的语言,具有成功和长期的前景,但它当然不应该是一种社区设计的语言,它在项目开始时就写入了章程。新机制听起来很有希望……一个健康和包容的社区有利于Swift的设计和开发。现在开始业务AI基础设施最后,让我介绍一下Lattner目前正在忙的新业务。Modular.ai致力于为世界重构AI基础设施。包括编译器、运行时环境,专为边缘和数据中心的异构计算而设计,并专注于可用性。结果是一个模块化、可组合和分层的AI。公司联合创始人兼首席产品官蒂姆·戴维斯此前在谷歌团队参与了TFLite、AndroidML、NNAPI等项目的编译器开发。新公司正在全球招聘大量编译器、运行时、MLOps和框架开发人员,以及产品经理和云计算工程师。
