梦晨 发自 凹非寺 量子位 | 公众号 QbitAI 苹果Swift语言、LLVM编译器之父Chris Lattner 的新动向 ,引起程序员圈关注。 这位编译器大神现在与Swift核心团队分道扬镳、彻底退出管理事务的消息引发了大量讨论。 Lattner在Swift官方论坛自曝,离开的原因是团队文化"有毒"。 其中特别点出,去年夏天一次视频会议上他被人侮辱 和大喊大叫,而且这已经不是第一次了。 此次冲突后,Lattner渐渐退出了Swift的管理和开发。 反正他本人还有很多兴趣和事业可忙,不如向前看,眼不见为净。 现在他正忙着筹备新公司Modular.ai ,致力于开发AI编译器、运行时等基础设施。 啊这,Swift团队具体出了什么问题,竟能把大神给气走了?"语法糖"惹的祸 Lattner五年前就已不再是苹果正式员工,先后做过特斯拉自动驾驶软件VP、谷歌Tensorflow基础设施主管、SiFive工程总裁。 不过Swift这门亲手研发的编程语言他心里一直放不下,坚持每周参加例会、参与社区讨论,也亲自编写和迭代了许多代码。 Swift语言逐渐发展壮大,接替老的Objective-C成为许多公司开发新iOS应用的首选语言。 但这门语言发展的方向渐渐与Lattner的理想出现分歧,比如他的设计理念"简单事物的有效组合"(simple things that compose) 就不再流行。 有这种感觉的不止他一人,一些Swift忠实用户也感到很失望。 我在Swift上投入了很多,2015-2019年都是社区的活跃成员,看到现在这门语言的发展方向,我有点难过。 这位老哥主要不爽的是一些语言特性的添加太过随意和仓促,让编译过程不再透明。 实际上,引发Lattner自曝退出原因的帖子,也是在讨论是否添加一个语法糖 。 一位开发者认为,随意添加语法糖对语言维护者来说不算什么,但带来的混乱会对语言使用者影响很大。 我不是说这个特性毫无价值,但我不想它被引入成语法糖,这会"折断语言使用者的脖子"。 随后,他引用了Lattner本人很早以前就发表的一段关于语法糖的思考。 Lattner认为一门编程语言的主要功能相当于盖房子时的"砖 ",语法糖相当于填砖缝的"灰浆 "。 如果房子主体都盖好了去填缝没啥问题。 如果砖还没摆全就先抹了大量的浆,那整个房子成了用浆盖起来的,结构不会牢固,以后再想摆砖头也找不到合适的地放了。 看来这种分歧在Swift社区由来已久,直到去年夏天那场视频会议,冲突集中爆发。 Lattner会议上被人骂了以后休息了一段时间,后来找到团队管理层谈话。 他认为管理层逃避问题、找借口,并明确表示不打算对此采取任何措施。 后来大神决定暂时离开每周会议,只参与论坛讨论,反正还有很多别的事业可忙。 不过他发表的意见越来越被核心团队忽视,觉得再这样下去就是浪费时间了,最终彻底离开。 现在,Swift管理团队正在尝试推出新的社区治理机制来解决问题。 他们打算参考其他编程语言和开源项目的成功经验,重新成立一个专注于语言本身演进迭代的大型工作组,并让更多社区成员能参与决策。 对于编程语言社区究竟应该如何治理,也有网友发表了自己的观点。 有人觉得Python之父 这种"仁慈的终生独裁者 "模式(BDFL, Benevolent Dictator For Life) 才是王道。 Python之父会听取社区意见,但是最终自己拍板决定。 这位老哥认为所有不采用BDFL模式的编程语言都会因特性太多变得冗杂。 因为开发团队每个成员都想把自己的想要的特性添加进去,特性之间的交互带来平方级的复杂度,这样用户就难受了。 其他网友觉得也有一个例外,Go语言 不是由仁慈的独裁者管理,但团队始终坚持简洁的设计理念。 Go语言每个新功能提案都会被仔细权衡和讨论,有些用户觉得更新速度慢的像冰川移动,但我个人挺欣赏这点。 Lattner本人则在Swift官方论坛对此留下了最后一段建议和祝福。我认为Swift是一种现象级的语言,有成功和长久的前景,但它肯定不应该是一种社区共同设计的语言,这在立项之初就写进了章程。 新的机制听起来有些希望……一个健康和包容的社区有益于Swift的设计和发展。现在创业AI基础设施 最后再来介绍一下Lattner现在去忙的新事业。 Modular.ai,致力于为全世界重构AI基础设施。 包括编译器、运行时环境,为异构计算设计、边缘和数据中心并重,并专注于可用性。 最终构建出模块化、可组合和分层架构的人工智能。 公司的共同创始人及首席产品官Tim Davis ,此前在谷歌团队参与了TF Lite、 Android ML、NNAPI等项目的编译器开发。 新公司正在全球范围内招聘大量编译器、运行时、ML Ops和框架方向的开发者,以及产品经理和云计算工程师。 参考链接: [1]https://forums.swift.org/t/core-team-to-form-language-workgroup/55455/6 [2]https://news.ycombinator.com/item?id=30416070 [3]https://forums.swift.org/t/pitch-2-light-weight-same-type-requirement-syntax/55081/126 [4]https://www.modular.ai/careers — 完 — 量子位 QbitAI · 头条号签约 关注我们,第一时间获知前沿科技动态