Chris Lattner 訪談錄(下)

Chris Lattner 訪談錄(下)

話題

  • Swift 在 Server 和操作系統(tǒng)方面有著怎樣的雄心抱負(fù)?
  • Swift 與 Objective-C 的愛恨情仇勉痴?
  • Swift 之父對于 RxSwift 和 ARC 有什么獨(dú)到的見解睬愤?
  • 隨著 Swift 之父的出走待榔,這門語言還會繼續(xù)高歌猛進(jìn)嗎屁使?

訪談實(shí)錄

Swift 在系統(tǒng)减细、服務(wù)器匆瓜、網(wǎng)頁端的發(fā)展

16. Swift 在服務(wù)器,或者 Linux 上可以說運(yùn)行得不錯(cuò)未蝌。你們是一開始就計(jì)劃在服務(wù)器或者系統(tǒng)端運(yùn)行 Swift驮吱,還是說你們更希望 Swift 專注于 iOS 開發(fā),而不是去與 python 或 Rails 競爭萧吠?

你如果去看蘋果官方的 Swift 書左冬,里面有這樣一句:“Swift 的目標(biāo)是,上能寫應(yīng)用程序纸型,下能寫操作系統(tǒng)(Swift was designed to scale from hello world to an entire operating system)”拇砰。所以我們一開始梅忌,就是要將它創(chuàng)作成為一門一統(tǒng)天下的語言

這也許有點(diǎn)癡人說夢除破,但是大家等著牧氮,過幾年就知道了。無論是我還是蘋果的其他人瑰枫,都把 Swift 當(dāng)成是未來世界的主流語言來看的踱葛,它將會超越 Python,甚至有一天取代 C光坝。那么我們是怎么實(shí)現(xiàn)這一步的呢尸诽?

開源是重要的一環(huán)。你不開源教馆,別的平臺就不大想用這個(gè)語言逊谋。當(dāng)各種各樣的開發(fā)都采用 Swift ,Swift 一統(tǒng)天下的目標(biāo)也就越來越現(xiàn)實(shí)⊥疗蹋現(xiàn)在很多學(xué)校的計(jì)算機(jī)基礎(chǔ)教育就在教 Swift胶滋,它越來越流行了。

所以嘛悲敷,第一步我們就是讓這個(gè)語言流行起來究恤,讓大家使用它。我對“流行”的定義是后德,Swift 必須要有一個(gè)殺手級的產(chǎn)品部宿,這樣大家就會知道 Swift 有多好,大家都會使用它∑芭龋現(xiàn)在 iOS 平臺和 Mac OS 平臺有很多非常棒的 Swift 應(yīng)用理张。這樣我們開始第二步,開源绵患。第三步雾叭,我們要走得更遠(yuǎn)。

什么叫走得更遠(yuǎn)落蝙?我覺得現(xiàn)在我們要做的就是把 Swift 應(yīng)用到服務(wù)器端织狐。其實(shí)服務(wù)器和移動應(yīng)用開發(fā)頗有類似,比如架構(gòu)設(shè)計(jì)和函數(shù)庫調(diào)用上筏勒。但是移迫,唯一的麻煩就是我們得讓 Swift 能在 Lunix 上流暢運(yùn)行。同時(shí)構(gòu)建大量服務(wù)器端的庫函數(shù)」苄校現(xiàn)在 Swift.org 上已經(jīng)有專門的版塊討論服務(wù)器端上的開發(fā)了厨埋,大家集思廣益的感覺非常好。

再接下來捐顷,Swift 要取代 Java揽咕,無論是腳本語言還是底層的系統(tǒng)設(shè)計(jì)悲酷,Swift 最終都應(yīng)該能應(yīng)付自如。

腳本語言上亲善,開源社區(qū)和我們蘋果內(nèi)部都在嘗試將正則表達(dá)式设易、多行字符串等腳本語言的特征都加入到 Swift 當(dāng)中,雖然工作量很大蛹头,但我認(rèn)為它們最終都將成為 Swift 的一個(gè)部分顿肺。

系統(tǒng)開發(fā)方面,我覺得取代 Java 最重要的一點(diǎn)就是 Swift 一定要有自己的特色渣蜗。我覺得 Rust 是一個(gè)不錯(cuò)的語言屠尊,雖然現(xiàn)在沒多少人用。Swift 在某些頂層開發(fā)上要明顯優(yōu)于 Rust耕拷。再等過些年讼昆,當(dāng) Swift 在系統(tǒng)開發(fā)上真正流行起來之時(shí),Swift 就離一統(tǒng)天下不遠(yuǎn)了骚烧。

17. 對于 Swift 在服務(wù)器上的發(fā)展浸赫,你覺得交給開源社區(qū)去做就足夠了嗎?蘋果自己會不會推出面向服務(wù)器端的 Swift 函數(shù)庫赃绊?

首先我覺得若要成為服務(wù)器端的流行語言既峡,這幾個(gè)部分 Swift 必須具備:編碼和解碼,網(wǎng)絡(luò)傳輸協(xié)議碧查,HTTP运敢。這些部分我覺得要成為標(biāo)準(zhǔn)函數(shù)庫,因?yàn)樗鼈兪亲罨镜臇|西忠售,蘋果內(nèi)部自己來做也許更好传惠,因?yàn)槟艽_保質(zhì)量。對于具體的網(wǎng)絡(luò)應(yīng)用函數(shù)庫稻扬,我覺得短期內(nèi)沒必要涉枫。這是因?yàn)闃I(yè)界內(nèi)部對此就爭議很大,如同 Ruby on Rails 那樣的王者框架還沒有出現(xiàn)腐螟。

我覺得對開源社區(qū)而言,最重要是兩個(gè)工作困后。第一乐纸,是 Swift 的包管理器(Package Manager)。這個(gè)可以讓我們在多個(gè)平臺摇予、不同函數(shù)庫之間協(xié)同工作汽绢,大幅提高兼容性和效率;第二侧戴,是并發(fā)模型(Concurrency Model)宁昭。Go 語言之所以在服務(wù)器和云端開發(fā)這么受歡迎跌宛,就是因?yàn)椴l(fā)模型做得好。并發(fā)模型應(yīng)該會集成在 Swift 5 中积仗。

18. 現(xiàn)在 Swift 在服務(wù)器端還不是那么成熟疆拘。有人說 Swift 不過是寫 App 的一門語言。現(xiàn)在已經(jīng) 3.0 版本了寂曹,大家貌似都還只是將 Swift 用來寫寫 iOS 應(yīng)用哎迄。你怎么看?

我現(xiàn)在根本不擔(dān)心 Swift 在服務(wù)器端最后不會成功隆圆。很多人寫了幾年 Swift漱挚,自以為很懂這門語言。當(dāng) Swift 具備服務(wù)器端特性的時(shí)候渺氧,蘋果一定會跟大家說旨涝,你看 Swift 能做這個(gè)那個(gè),你用其他語言來寫就要麻煩得多侣背。

現(xiàn)在最大的問題是大家還覺得 Swift 只是蘋果自己搞出來的東西白华。他們覺得 Swift 不過是蘋果自己的玩具,只能用在蘋果自己的 iOS 系統(tǒng)和 Mac OS 系統(tǒng)上秃踩。所以我們應(yīng)該加大開源和構(gòu)建社區(qū)的力度〕挠悖現(xiàn)在外行對于 Swift 的態(tài)度還可以接受,慢慢地 Swift 就會在系統(tǒng)開發(fā)領(lǐng)域追上來憔杨。

19. 大家似乎都在期待 Swift 能在網(wǎng)頁開發(fā)上有所建樹∧窈眨現(xiàn)在網(wǎng)頁或者網(wǎng)絡(luò)程序開發(fā)方面,一般是多種語言混用消别,前端和后端可能語言邏輯完全不一樣抛蚤,你對此怎么看?

這可能要花很長時(shí)間寻狂,要是能取代 Javascript 那就簡直了∷昃現(xiàn)在 Dart 在網(wǎng)頁開發(fā)上做的不錯(cuò)。我個(gè)人看好 asm.js 和 WebAssembly蛇券,它們都是通過 LLVM 編譯的缀壤,跟 Swift 一樣。如果這兩個(gè)今后做得足夠好纠亚,也許就沒 Swift 什么事了佑女。未來之事划乖,都很難說脑奠。

而且我現(xiàn)在發(fā)現(xiàn)蜂筹,Javascript 已經(jīng)變成一門基礎(chǔ)語言了。我看很多腳本語言現(xiàn)在都直接編譯成 Javascript,Javascript 就像比特一樣成為一個(gè)最基本的表達(dá)方式蛤织。我覺得五年之后赴叹,很有可能 asm.js 會一統(tǒng)網(wǎng)頁端。雖然大家說 Javascript 不好 debug指蚜,但其實(shí)就算你寫 C 這么成熟的語言乞巧,debug 起來依然很頭疼。這也是我們?yōu)槭裁床辉?Swift 中加入宏定義姚炕,因?yàn)槟莻€(gè)給編譯和 debug 增加了難度摊欠。

Swift 語言設(shè)計(jì)

20. Swift 好像一開始就設(shè)計(jì)得簡單易懂、而同時(shí)又有很多高階的復(fù)雜操作柱宦。經(jīng)驗(yàn)豐富的程序員可以寫出漂亮的語法糖些椒,對編程一竅不通的小孩也可以玩轉(zhuǎn) Playground。你認(rèn)為 Swift 是一門將復(fù)雜和簡易融為一體的語言嗎掸刊?

Swift 在這點(diǎn)上目前做得還不錯(cuò)免糕。但我擔(dān)心開源之后大量的新功能添加進(jìn)來,使得 Swift 不再簡單忧侧。我一直致力于讓 Swift 成為一門簡單易學(xué)的語言石窑,同時(shí)又足夠強(qiáng)大。你想我們?yōu)槭裁床恢С謨?nèi)聯(lián)匯編 (inline assembly support) 這樣的功能蚓炬,就是只有極少數(shù)極客會喜歡。以后我們也要秉持這個(gè)原則肯夏。

一個(gè)不會寫 Swift 的人。打開 Playground烁兰,敲下 “print("Hello World")”,旁邊就會顯示出來徊都,這點(diǎn)跟 python 很像沪斟,你不用去打"\n"這樣的換行符號暇矫。也就是說 Swift 對于新手來說非常友好,我們可以從 Hello World 開始逐步深入李根,從簡單慢慢過渡到復(fù)雜槽奕。

對于系統(tǒng)開發(fā)而言,Swift 相比 Rust朱巨,會更好的自動控制內(nèi)存分配枉长,因?yàn)槲覀兛梢越梃b開發(fā) ARC 時(shí)的經(jīng)驗(yàn)琼讽。你想內(nèi)存分配這種底層的東西洪唐,也只有少數(shù)大牛能精通。那為什么不把 ARC 引入到底層來簡化開發(fā)呢问欠?我覺得這是 Swift 開發(fā)的另一個(gè)方向粒蜈。

21. 有人說 Swift 是大雜燴,一部分借鑒 C#枯怖,一部分借鑒 Javascript,一部分借鑒 Objective-C肿轨,你是怎么看的蕊程?

Swift 確實(shí)是大雜燴。但是它并不是簡單的模仿其他語言驹暑,而是借鑒捌治,然后創(chuàng)造出一個(gè)偉大的語言。我們確實(shí)參考了大量其他的語言設(shè)計(jì)肖油。比如 Haskell 很多概念就被引入到 Swift 中。Swift 中的 Protocol视搏,就是從 Haskell 的 construct 中得到啟發(fā)的县袱。

還有其他部分長得像 Dart,亦或是借鑒了 Go 和 C#筋遭。這樣做也有另一個(gè)好處,開發(fā)者拿到 Swift 的時(shí)候會有種似曾相識的感覺漓滔,這樣大家也更愿意用 Swift 開發(fā)。

Swift vs. Objective-C

22. 給我個(gè)現(xiàn)在就學(xué)習(xí) Swift 的理由透且?

這個(gè)其實(shí)無所謂豁鲤。我個(gè)人不覺得 Objective-C 會短期內(nèi)被取代,蘋果依然支持 C 和 C++琳骡,而且放棄 Objective-C 對蘋果來說有百害而無一利。你不必一定要學(xué)習(xí) Swift棍厌,Swift 只是一門更好的語言竖席。

說到 Swift,我們給它取這個(gè)名字就意味著我們希望這門語言非常得高效束析。它本身設(shè)計(jì)的目的不是讓你短時(shí)間內(nèi)寫大量代碼憎亚,而是用最少的時(shí)間员寇、最簡潔的代碼來完成工作蝶锋。

編程其實(shí)包括方方面面什往,不僅僅是寫代碼,還有 debug别威,給各種系統(tǒng)適配,以及其他各種事情粥庄。其實(shí)開發(fā)的時(shí)間短豺妓,找 bug 的時(shí)間一般都會很長布讹。比如在 Objective-C 中训堆,你會花不少時(shí)間修 unrecognized-selector error,但是 Swift 從頂層設(shè)計(jì)中就排除了這類 bug蔫慧。

Swift 還有其他一些好處姑躲。比如可以對字符串使用 switch...case...語句盟蚣;可以使用 functional programming;可以用 enum 和 protocol屎开。Swift 其實(shí)是一門包羅萬象的語言,菜鳥和老手寫出來的 Swift 可以完全不一樣蔼两,這取決于經(jīng)驗(yàn)逞度。

我最近發(fā)現(xiàn),很多 iOS 開發(fā)者會把 Swift 當(dāng) Objective-C 來寫俊戳,邏輯結(jié)構(gòu)完全一樣馆匿,只是換個(gè)語法。其實(shí)這就意味著他們沒有意識到 Swift 的價(jià)值 -- 認(rèn)為 Swift 不過是 Objective-C 的替代品阿逃。當(dāng)開發(fā)者深究 Swift 的語法后腔稀,他們才會意識到這是一門多么高效的語言。

23. 會不會像 Objective-C 一樣淡喜,在未來 Swift 添加一些動態(tài)特性诵闭?

Swift 目前沒有加入動態(tài)特性的計(jì)劃澎嚣。很多人問為什么 Swift 不能有響應(yīng)瘟芝,reflection這些特性。甚至有人寫博客說晤郑,“遲早有一天贸宏,蘋果要重寫 Swift 的所有架構(gòu)”,我每次在 WWDC 前看到這些博客都會呵呵诫龙。很多人不明白什么叫動態(tài)性鲫咽,也不關(guān)心我們發(fā)布的 Swift 計(jì)劃表,只是不停的寫博客锦聊,預(yù)測這個(gè)吐槽那個(gè)箩绍。

我個(gè)人可以明確表示,Swift 近期內(nèi)沒有加入動態(tài)特性的計(jì)劃史飞。凡事有輕重緩急仰税,我們得先處理其他事情,比如并發(fā)模型陨簇,比如在系統(tǒng)端上的優(yōu)化河绽,比如腳本的適配。不過以后如果有時(shí)間耙饰,Swift 會加入動態(tài)特性的苟跪,前提是我們計(jì)劃表里的事情都做完了蔓涧。

24. 你不擔(dān)心沒有動態(tài)特性笋额,很多 Objective-C 的程序員會各種不適應(yīng) Swift,然后就放棄用 Swift 了嗎茉盏?

我不擔(dān)心啊枢冤。Swift 本身支持 Objective-C 上的所有特性,你只需要那部分代碼使用 Objective-C 兼容,然后把它們加入到 runtime 中即可羽峰。

雖然有很多人說梅屉,我就是想寫純粹的 Swift 代碼,但其實(shí)我不覺得這是一種倒退坯汤。你可以使用 reflection 模型惰聂,要用這個(gè)功能你用就是了,自己設(shè)計(jì)的代碼結(jié)構(gòu)自己負(fù)責(zé)搓幌。在寫代碼這事上溉愁,從來沒有非黑即白一說,我們要做最重要的事拐揭,而不是天天在推特上開聽證會堂污。Swift 核心組做的工作就是把關(guān) Swift 開發(fā),把這門語言導(dǎo)向一個(gè)正確的方向盟猖。

Swift 編程規(guī)范

25. Swift 現(xiàn)在好多語法糖。怎樣避免寫出奇怪和低效的 Swift 代碼值依?你覺得現(xiàn)在 Swift 可以稱得上成熟嗎?

現(xiàn)在正是 Swift 成熟之時(shí)颇蜡。Swift 1 和 Swift 2 的時(shí)候辆亏,確實(shí)語言的變化很大,大家很頭疼缤弦。但是 Swift 3.0 是一個(gè)穩(wěn)定成熟的版本彻磁,它真的不錯(cuò)。之后的工作是在 Swift 3.0 的基礎(chǔ)上增加新的函數(shù)庫或者功能累提,而不是修改現(xiàn)有的架構(gòu)磁浇。

其實(shí) Swift 開發(fā)者也在糾結(jié)語法糖太多的問題。我聽說一些人出了一些 Swift 的書籍无虚,這很好衍锚。其實(shí)我們在設(shè)計(jì) Swift 的時(shí)候,就考慮到語法糖的問題了咆爽。比如你寫代碼置森,把所有變量都用 var凫海,這時(shí)候編譯器會提醒你對常量使用 let。這說明一點(diǎn)行贪,Swift 是鼓勵 immutable 數(shù)據(jù)類型的模闲,并且 Xcode 也會自動督促你寫出更規(guī)范的代碼尸折。不過目前對于“是該用 class 還是 struct殷蛇?”這類比較困難的問題,編譯器還沒智能到能自動檢測并糾正亮航。

26. 有些語言一開始就有設(shè)定好的語法糖和規(guī)范匀们。為什么 Swift 沒有這樣,而是讓開源社區(qū)去討論重抖?你個(gè)人對 Swift 有沒有一些編程規(guī)范叼旋?

作為一個(gè)程序員沦辙,我骨子里流淌著編程規(guī)范的血液油讯。但在 Swift 的開發(fā)過程中,我還是改變了一些固有觀念陌兑。比如說兔综,我認(rèn)為所有代碼代碼段都應(yīng)該是一個(gè)地方輸入,一個(gè)地方輸出软驰。但我后來發(fā)現(xiàn)這樣設(shè)計(jì)語言很難維護(hù)锭亏,可讀性也不佳。 比如說我們設(shè)計(jì)的 guard else 語句戴已,你一定要在末尾寫上 return 之類的結(jié)束語。這就導(dǎo)致了一個(gè)函數(shù)有多個(gè)地方輸出:你在 guard else 里 return伐坏,在其他地方也 return休玩,不符合我原來的設(shè)想。但是如此設(shè)計(jì)會令安全性提高永部,因?yàn)槲覀儼岩恍┨厥馇闆r給提前處理掉了呐矾。

對于空格這種格式問題,我個(gè)人傾向于空 2 格组橄。我知道有些人喜歡空 4 格罚随,還有人喜歡 3 格(因?yàn)樗麄冇X得文件中不應(yīng)該有 tab)。這完全是蘿卜青菜各有所愛遵班,大家對此爭論不休潮改,哪一種都有一定道理汇在。所以我們最后也沒有對 Swift 提出固定的格式要求,大家寫出自己喜歡的代碼就行糕殉。但是這也造成了一定程度的混亂 -- 你寫的代碼格式會與同事的完全不同阿蝶。但是我覺得這并不會影響語言的多樣性。

Go 當(dāng)年強(qiáng)行推廣了一套編程規(guī)范魄缚,結(jié)果到現(xiàn)在仍有爭議。我們現(xiàn)在的工作不是做語法上面的規(guī)范习劫,而且我們也不希望推出一套規(guī)范后大家好不買賬嚼隘。開源的另一個(gè)好處是,大家可以自行決定什么是好的語法規(guī)范谤狡。就算有時(shí)間我個(gè)人或者 Apple 也不會去寫 Swift Style Guide卧檐。比起規(guī)范我更愿意去回答理論和語言設(shè)計(jì)上的問題。

有一件趣事我想分享捕仔,我一直擔(dān)心別人會問盈罐,為什么 Swift 的函數(shù)名叫 func盅粪?而不叫 function 或者 fn?這其實(shí)頗有爭議础浮。不過現(xiàn)在已經(jīng)是 Swift 3.0 時(shí)代了库物,大家這樣用得很順贷帮,我們也不會去更改了,所以爭論于此沒有意義民晒。

RxSwift 以及響應(yīng)式編程

27.很多開發(fā)者用 RxSwift 或者其他響應(yīng)式編程锄禽。你在開發(fā) Swift 過程中有沒有仔細(xì)研究過響應(yīng)式編程這些沃但?

我已經(jīng)開始關(guān)注 RxSwift 了。但是我自己沒用響應(yīng)式編程來開發(fā)過產(chǎn)品垂攘,所以我對它們的理解來自于博客。RxSwift 看起來很棒吱型,你可以少寫很多代碼陨仅,而且似乎開發(fā)效率也會更高。但聽說維護(hù)和測試起來也很難触徐,有優(yōu)點(diǎn)也有缺點(diǎn)饺蔑。

如果我有空寫一個(gè) App 的話,我肯定回去試試 RxSwift孔祸,然后再過來發(fā)表觀點(diǎn)发皿。我現(xiàn)在不敢說”強(qiáng)烈推薦”穴墅,或者“強(qiáng)烈不推薦”之類的話。

Garbage Collection vs. ARC

28. 我們都知道 Garbage Collection 和 ARC 各有千秋皇钞。Objective-C 有 Garbage Collection松捉,后來加入了 ARC 的機(jī)制。Swift 則是完全 ARC可柿。你能說說為什么你們那么看好 ARC 嗎丙者?

Objective-C 最開始是基于 Libauto 系統(tǒng)開發(fā)的械媒,而 Libauto 本身就有諸多限制,所以我們當(dāng)時(shí)采用了 Garbage Collection痢虹。我個(gè)人覺得 ARC 完全要優(yōu)于 Garbage Collection,因?yàn)楹笳呓?jīng)常在內(nèi)存上回收一下我們不想回收的變量编振。所以我們在 Objective-C 上采用了引用計(jì)數(shù)和 ARC臭埋。

ARC 最重要的一個(gè)優(yōu)勢就是,它很好的處理了 final 這類參數(shù)畅蹂。如果你用 Garbage Collection荣恐,比如 java 吧叠穆,final 參數(shù)就是那些不被回收一直在跑的東西,這樣展開講問題是一籮筐硼被。我舉個(gè)最簡單的例子,當(dāng)有個(gè) final 變量運(yùn)行在一個(gè)錯(cuò)誤的線程上時(shí)检访,它會多次重跑仔掸,導(dǎo)致實(shí)例被不停的創(chuàng)建。ARC 則是從根本上解決了這個(gè)問題卖氨。

目前反對 ARC 的理由主要有兩個(gè)鞋怀,一是人們覺得 ARC 引入了額外的開銷密似,因?yàn)槟阋S護(hù)引用計(jì)數(shù)嘛葫盼。另一個(gè)是 ARC 容易造成循環(huán)引用。

我個(gè)人要強(qiáng)調(diào)的是抛猫,這些毛病 Garbage Collection 也有。除此之外 Garbage Collection 還不能終止所有的線程逾滥,或者在特定的一個(gè)時(shí)間點(diǎn)終止一個(gè)線程败匹。這是因?yàn)?Garbage Collection 引入了安全指針(safepoint)掀亩,這同樣也是一筆額外的開銷。

ARC 中引用計(jì)數(shù)的開銷在實(shí)際開發(fā)中影響不大捉蚤。而且我們對對象的整個(gè)生命流程都有掌控炼七,而這是 Garbage Collection 不具備的豌拙。實(shí)際上我覺得 ARC 中有些額外開銷是必須的,那些不必須的開銷以后也會慢慢改進(jìn)的墩莫。

至于循環(huán)引用的問題逞敷。相比于你必須在具體的一行說明推捐,retain/malloc 這個(gè)變量,然后再在后面某一行說明牛柒,release/free這個(gè)變量這種麻煩事皮壁,你只需要用 strong 或者 weak 表示你對對象的所有權(quán),你省去了大量思考內(nèi)存分配的擔(dān)憂和操作虑瀑,這難道不是一個(gè)巨大的進(jìn)步嗎?

身后之事

29.把 Swift 交給 Ted 你放心嗎?

完全不用擔(dān)心痛侍。

Ted 這人實(shí)力非常強(qiáng)主届。斯坦佛的博士生畢業(yè),蘋果十年工作經(jīng)驗(yàn)誓竿,曾經(jīng)以一己之力完成了 Clang 的靜態(tài)分析器谈截。Ted 在管理方面也很優(yōu)秀簸喂。我有時(shí)候會突發(fā)奇想,讓手下一個(gè)人或者一個(gè)組去做“我認(rèn)為有意義”的項(xiàng)目扼倘。Ted 則是非常穩(wěn)健的管理者除呵,他總會領(lǐng)導(dǎo)組員去做最重要的事情,這就是我跟他的不同纠拔。

另外我們的小組也很強(qiáng)泛豪,核心團(tuán)隊(duì)的幾個(gè)人:Doug Gregor, John McCall, Joe Groff, Dave Abrahams诡曙。這幾個(gè)人都是極其優(yōu)秀的極客。Swift 其他團(tuán)隊(duì)的工程師也很給力劝萤。有他們在荠雕,沒有任何理由 Swift 不會成功炸卑。

30. 你為什么去做電動車?

首先我個(gè)人非常喜歡車嘱蛋。但我又懶得自己老是去加油啊五续、開車疙驾,我更喜歡一種更可靠的方式,最好我自己啥也不用做函荣,車子就可以把我送到目的地。我也不需要擔(dān)心維護(hù)啊什么的扳肛。我其實(shí)是特斯拉最早的一批客戶傻挂,我覺得特斯拉駕駛起來很開心。

不過我重來沒想過我會去一家汽車公司任職挖息,因?yàn)槲矣X得我是個(gè)程序員金拒,這跟汽車有啥關(guān)系?不過特斯拉讓我去做自動駕駛系統(tǒng)套腹,這個(gè)就很對我胃口了绪抛。因?yàn)檫@也是世界級的難題,我想嘗試挑戰(zhàn)一下电禀。

補(bǔ)充

Chris Lattner 提到的語言

  • Go

主頁:http://golang.org/

Google發(fā)布的開源語言。編譯速度媲美 C鞭呕,安全性有過之而無不及蛤育。學(xué)習(xí)曲線也與 Java 類似,比較簡單葫松。目前主要用于網(wǎng)絡(luò)服務(wù)器瓦糕,存儲系統(tǒng),和數(shù)據(jù)庫中腋么。

  • Dart

主頁:https://www.dartlang.org/

Google 開發(fā)的語言咕娄。基于類珊擂,只能單一繼承圣勒,風(fēng)格上偏向 C费变。目標(biāo)在于成為下一代網(wǎng)絡(luò)開發(fā)語言。目前 Google 正在嘗試用 Dart 開發(fā) Android 應(yīng)用圣贸,達(dá)到去 java 化的目標(biāo)挚歧。

  • Haskell

主頁:https://www.haskell.org/

函數(shù)式編程語言,支持惰性求值吁峻、模式匹配滑负、列表內(nèi)包、類型類和類型多態(tài)用含。用戶很少矮慕,普遍認(rèn)為難學(xué)難用。主要用于金融系統(tǒng)及安全性和性能要求拋高的產(chǎn)品啄骇。

參考鏈接

音頻:ACCIDENTAL TECH PODCAST 205

原文:PEOPLE DON'T USE THE WEIRD PARTS

Swift 3 將不包含穩(wěn)定的ABI

轉(zhuǎn)載 為什么業(yè)界很少使用 Haskell痴鳄?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市缸夹,隨后出現(xiàn)的幾起案子夏跷,更是在濱河造成了極大的恐慌,老刑警劉巖明未,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件槽华,死亡現(xiàn)場離奇詭異,居然都是意外死亡趟妥,警方通過查閱死者的電腦和手機(jī)猫态,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來披摄,“玉大人亲雪,你說我怎么就攤上這事【尾玻” “怎么了义辕?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長寓盗。 經(jīng)常有香客問我灌砖,道長,這世上最難降的妖魔是什么傀蚌? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任基显,我火速辦了婚禮,結(jié)果婚禮上善炫,老公的妹妹穿的比我還像新娘撩幽。我一直安慰自己,他們只是感情好箩艺,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布窜醉。 她就那樣靜靜地躺著宪萄,像睡著了一般。 火紅的嫁衣襯著肌膚如雪榨惰。 梳的紋絲不亂的頭發(fā)上拜英,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天,我揣著相機(jī)與錄音读串,去河邊找鬼聊记。 笑死撒妈,一個(gè)胖子當(dāng)著我的面吹牛恢暖,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播狰右,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼杰捂,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了棋蚌?” 一聲冷哼從身側(cè)響起嫁佳,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎谷暮,沒想到半個(gè)月后蒿往,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡湿弦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年瓤漏,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片颊埃。...
    茶點(diǎn)故事閱讀 40,030評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蔬充,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出班利,到底是詐尸還是另有隱情饥漫,我是刑警寧澤,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布罗标,位于F島的核電站庸队,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏闯割。R本人自食惡果不足惜皿哨,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望纽谒。 院中可真熱鬧证膨,春花似錦、人聲如沸鼓黔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至崔步,卻和暖如春稳吮,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背井濒。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工灶似, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人瑞你。 一個(gè)月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓酪惭,卻偏偏與公主長得像,于是被迫代替她去往敵國和親者甲。 傳聞我的和親對象是個(gè)殘疾皇子春感,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,976評論 2 355

推薦閱讀更多精彩內(nèi)容