梦晨 发自 凹非寺
量子位 | 公众号 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

Swift团队把Swift之父气跑了,网友:Python之父的仁慈独裁者模式才是王道相关推荐

  1. 大数据之父_大新闻!Python 之父重新出山,加入微软开发部

    2019 年 11 月,DropBox 官博发布了一篇<感谢你,Guido>的文章,透露出龟叔(Guido van Rossum)要离职退休的消息.后来龟叔自己也在推特证实了. 时隔一年, ...

  2. Python之父重回决策层,未来如何发展?

    作者 | 豌豆花下猫 来源 | Python猫(ID:python_cat) 春节假期结束了,大家陆续地重回到原来的生活轨道上.假期是一个很好的休息与调节的机会,同时,春节还有辞旧迎新的本意,它是新的 ...

  3. Python之父重回决策层,社区未来如何发展?

    春节假期结束了,大家陆续地重回到原来的生活轨道上.假期是一个很好的休息与调节的机会,同时,春节还有辞旧迎新的本意,它是新的轮回的开端. 在 Python 社区里,刚发生了一件大事,同样有开启新纪元的意 ...

  4. Python 之父重回决策层,未来如何发展?

    作者 | 豌豆花下猫 责编 | 胡巍巍 春节假期结束了,大家陆续地重回到原来的生活轨道上. 假期是一个很好的休息与调节的机会,同时,春节还有辞旧迎新的本意,它是新的轮回的开端. 在 Python 社区 ...

  5. 中国python之父是谁-别了!Python之父!

    原标题:别了!Python之父! 前段时间,Python之父退出了Python,这个创造出了世界上最令人欢迎的编程语言之一Python(胶水语言)的技术界大牛终于不用再为运营的事情苦恼了! 有人说:耿 ...

  6. Python 之父 Guido 发推称加入微软搞开源

    目录 1 Python 之父加入微软搞开源 2 Guido 个人年表 3 其他信息 1 Python 之父加入微软搞开源 Python 之父 Guido van Rossum 称退休太无聊,正式加入微 ...

  7. Python之父强烈推荐,Python3网络爬虫开发实战,爬虫入门必看书籍,豆瓣评分9.2

    实操性很强的一本工具书,由浅入深,深入浅出.前面从环境配置到爬虫原理.基本库和解析库的使用再到数据存储,一步步把基础打好,然后再分门别类介绍了Ajax.动态页.验证码.App的爬取.识别等,还讲解了代 ...

  8. Linux 之父拒绝 996,Swift、Python 之父痴迷深夜编程,程序员之神的 24 小时!

    [CSDN编者按]程序员大佬们都是什么时候敲代码呢?熬夜到天明吗?下面这篇文章是关于各个程序员大佬们的代码提交时间图表.让我们一睹为快吧. 作者 | Ivan Bessarabov 译者 | 胡雪蕊, ...

  9. Swift团队逼走创始人?本人回应表示团队“有毒”

    整理 | 郭露 出品 | CSDN(ID:CSDNnews) Chris Lattner作为苹果新编程语言Swift的创造人,在Swift上可谓是花尽了心思.自2014年推出以来,Lattner坚持参 ...

最新文章

  1. Oracle发布开源的轻量级 Java 微服务框架 Helidon
  2. sklearn查看版本 windows_解密windows系统版本和版本号,深入了解一组简单数字背后的故事...
  3. IAR新建stm32工程,完美移植stm32标准库(附源码)
  4. Eclipse 上安装STS (springsource-tool-suite)
  5. VL53L0x TOF激光测距的 stm32 HAL库驱动代码
  6. c语言入门敲打,C语言基础三(敲打键盘、寻找资料,循环语句)
  7. 测控技术与仪器是计算机相关的,测控技术与仪器专业
  8. python tkinter frame滚动条_如何在Tkinter中创建带有滚动条的LabelFrame?
  9. 蓝桥杯2019年第十届C/C++省赛B组第八题-等差数列
  10. docker 容器启动顺序_Docker高手进阶 - Docker Compose到底是什么
  11. 第一次写oracle SQL 两个表链接查询
  12. matlab的课程,matlab简介(中科大MATLAB课程).ppt
  13. 深度探索C++对象模型(一):关于对象
  14. 男人也离不开维生素(转)
  15. Mac电脑搭建wordpress教程
  16. Intellij IDear关闭页面浏览器显示图标
  17. 个人如何打破部门墙_做事要有霸气
  18. OBS Studio(obs录屏软件)官方中文版V27.2.4 | 最新obs中文版百度云下载
  19. 程序员成长系列--应该读的通用技术书籍列表
  20. android cpu调度6,关于安卓系统的手机CPU频率和I/O调度器的设置,如何设置才能让手机更流畅,求解释。...

热门文章

  1. 解决JS在url中传递参数时参数包含中文乱码的问题
  2. LNMP - Warning: require(): open_basedir restriction in effect错误解决方法
  3. tensorflow 使用CPU而不使用GPU的问题解决
  4. eclipse中生成的html存在中文乱码问题的解决方法
  5. 如何避免APK文件的反向工程?
  6. C ++中的POD类型是什么?
  7. #研发解决方案#智慧的太空桥管理智慧设备
  8. 适合自己的vim配置文件
  9. 【RAC】使用一条“ps”命令获取Linux环境下全部RAC集群进程信息
  10. 【降维解法:最大字段和-最大子矩阵和-最终版最大子长方体和】【UVA10755】Garbage Heap...