蘋果 Swift 語言、LLVM 編譯器之父 Chris Lattner 的新動向,引起程式圈關注。
這位編譯器大神現在與 Swift 核心團隊分道揚鑣、徹底退出管理事務的消息引發了大量討論。
Lattner 在 Swift 官方論壇自曝,離開的原因是團隊文化「有毒」。其中特別點出,去年夏天一次視訊會議上他被人侮辱和大喊大叫,而且這已經不是第一次了。
此次衝突後,Lattner 漸漸退出了 Swift 的管理和開發。
反正他本人還有很多興趣和事業可忙,不如向前看,眼不見為淨。
現在他正忙著籌備新公司 Modular.ai,致力於開發AI編譯器、執行時等基礎設施。
Swift 團隊到底出了什麼問題,竟能把大神給氣走了?
「語法糖」惹的禍
Lattner 五年前就已不再是蘋果正式員工,先後做過特斯拉自動駕駛軟體VP、GoogleTensorflow 基礎設施主管、SiFive 工程總裁。
不過 Swift 這門親手研發的程式語言他一直放不下,堅持每週參加例會、參與社群討論,也親自編寫和更新了許多程式碼。
Swift 語言逐漸發展壯大,接替老的 Objective-C 成為許多公司開發新 iOS 應用的首選語言。
但這門語言發展的方向漸漸與 Lattner 的理想出現分歧,比如他的設計理念「簡單事物的有效組合」(simple things that compose)就不再流行。
有這種感覺的不止他一人,一些 Swift 忠實使用者也感到很失望。
我在 Swift 上投入了很多,2015-2019年都是社群的活躍成員,看到現在這門語言的發展方向,我有點難過。
這位老哥主要不爽的是一些語言特性的添加太過隨意和倉促,讓編譯過程不再透明。
實際上,引發 Lattner 自曝退出原因的帖子,也是在討論是否添加一個語法糖。
語法糖(Syntactic sugar)是由英國電腦科學家彼得·蘭丁發明的一個術語,指電腦語言中添加的某種語法,這種語法對語言的功能沒有影響,但是更方便程式設計師使用。 語法糖讓程式更加簡潔,有更高的可讀性。
一位開發者認為,隨意添加語法糖對語言維護者來說不算什麼,但帶來的混亂會對語言使用者影響很大。
我不是說這個特性毫無價值,但我不想它被引入成語法糖,這會「折斷語言使用者的脖子」。
隨後,他引用了 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,此前在 Google 團隊參與了 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
請注意!留言要自負法律責任,相關案例層出不窮,請慎重發文!