自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

《連線》:為什么蘋(píng)果Swift語(yǔ)言將會(huì)迅速普及

移動(dòng)開(kāi)發(fā) Android
《連線》雜志日前撰文解析了蘋(píng)果新編程語(yǔ)言Swift的諸多優(yōu)勢(shì)。文章表示,由于這門(mén)語(yǔ)言易于上手,吸收了編譯型語(yǔ)言與解釋型語(yǔ)言的長(zhǎng)處,而且有諸多蘋(píng)果產(chǎn)品為依托,Swift的普及速度會(huì)讓其他語(yǔ)言望塵莫及。以下為《連線》“蘋(píng)果Swift將很快改變編程的三大理由”一文

克里斯·拉特納(Chris Lattner)花了一年半時(shí)間打造了一套新的編程語(yǔ)言。他沒(méi)有向任何人提起這件事,甚至連他最親密的朋友和同事也不知道。

他利用晚上和周末的時(shí)間進(jìn)行這項(xiàng)工作,從2010年夏天開(kāi)始一直干到第二年年末,將這門(mén)編程語(yǔ)言的骨架搭建完畢,然后向公司高管透露了自己的秘密。 這個(gè)項(xiàng)目得到了高管們的重視,數(shù)名資深工程師加入了進(jìn)來(lái)。18個(gè)月之后,該項(xiàng)目成為了公司主要關(guān)注的對(duì)象,項(xiàng)目團(tuán)隊(duì)規(guī)模擴(kuò)大了不少。

拉特納工作的公司,就是蘋(píng)果。

這門(mén)語(yǔ)言叫做“Swift”。蘋(píng)果認(rèn)為這是一個(gè)更快速、更有效開(kāi)發(fā)iPhone、iPad以及Mac電腦軟件應(yīng)用的工具。今年6月2日,蘋(píng)果向公司 外部的程序員發(fā)布了一個(gè)測(cè)試版本。即便是在這個(gè)時(shí)候,也就是在拉特納首次設(shè)想這門(mén)語(yǔ)言4年之后,它也只是在蘋(píng)果內(nèi)部圈子里產(chǎn)生了影響。拉特納在伊利諾伊大 學(xué)香檳分校的研究生導(dǎo)師維克拉姆·艾德福(Vikram Adve)幫助他完善了Swift語(yǔ)言的基礎(chǔ)。和其他人一樣,艾德福對(duì)自己的學(xué)生花了這么長(zhǎng)的時(shí)間打造一門(mén)新的編程語(yǔ)言這件事也感到吃驚。“蘋(píng)果公司口風(fēng) 很緊,克里斯真是貫徹了這一點(diǎn),”艾德福笑著說(shuō)。“我知道他在一個(gè)項(xiàng)目上花了很多時(shí)間,僅此而已。”

通常來(lái)說(shuō),像這樣面世的一款新編程語(yǔ)言,通常需要多年時(shí)間才能獲得大規(guī)模采用——即便有蘋(píng)果這種規(guī)模的科技巨頭支持也不例外。谷歌在2009年推出過(guò)一門(mén)名叫“Go”的語(yǔ)言。雖然這門(mén)語(yǔ)言的設(shè)計(jì)者在業(yè)內(nèi)鼎鼎有名,但它仍然沒(méi)有在全球范圍內(nèi)成為主流。

不過(guò)Swift就是另一回事了。等到今年秋天正式發(fā)布時(shí),它可能會(huì)以前所未見(jiàn)的速度很快獲得程序員的青睞,甚至有可能超越Sun的Java語(yǔ)言,以及微軟的C#語(yǔ)言在20世紀(jì)90年代末與21世紀(jì)初的風(fēng)頭。

Swift的部分優(yōu)勢(shì)在于,它是為普通程序員打造的。這門(mén)語(yǔ)言設(shè)計(jì)用來(lái)編寫(xiě)最簡(jiǎn)單的手機(jī)應(yīng)用,而且配有一個(gè)被蘋(píng)果稱之為“操場(chǎng)”(Playground)的智能工具。該工具提供了一種相當(dāng)有效的“自學(xué)”編程方式。

此外,Swift之所以可能風(fēng)靡起來(lái),還有一個(gè)更直接的理由。在今天,成千上萬(wàn)的開(kāi)發(fā)者使用一種名叫“Objective-C”的語(yǔ)言,為 iPhone和iPad打造應(yīng)用,考慮到蘋(píng)果設(shè)備的普及程度,這些程序員會(huì)一直開(kāi)發(fā)此類(lèi)應(yīng)用。而和Objective-C相比,Swift在很多方面提供 了重大的改進(jìn),這意味著龐大的蘋(píng)果開(kāi)發(fā)者社區(qū)肯定會(huì)在未來(lái)數(shù)月接受這種新語(yǔ)言。

Tiobe指數(shù)(這是一個(gè)用來(lái)衡量編程語(yǔ)言流行程度的指標(biāo))的編纂者、關(guān)注編程語(yǔ)言發(fā)展近15年的保羅·詹森(Paul Jansen)表示:“就谷歌Go來(lái)說(shuō),沒(méi)有什么真正的激勵(lì)因素來(lái)使用它。相比之下Swift可以提供這樣的激勵(lì)。”

到目前為止,即便使用的人數(shù)非常有限,在流行的編程網(wǎng)站GitHub上,與Swift相關(guān)的項(xiàng)目也超過(guò)了2400個(gè)。而且在本月,Swift在 Tiobe全球編程語(yǔ)言熱門(mén)排行榜上排名第16。谷歌Go在2009年發(fā)布時(shí)的情況與之類(lèi)似,不過(guò)在之后排名便下降了很多。但就Swift來(lái)說(shuō),詹森口中 的激勵(lì)因素只會(huì)推高其排名。

Facebook的開(kāi)發(fā)元老安德雷·亞歷山德雷斯庫(kù)(Andrei Alexandrescu)指出,考慮到Swift在蘋(píng)果產(chǎn)業(yè)鏈中獨(dú)一無(wú)二的核心地位,“只要不胡搞”肯定就不會(huì)失敗。何況這門(mén)語(yǔ)言的學(xué)習(xí)門(mén)檻非常低。 “人們會(huì)搶著學(xué)習(xí)這門(mén)新語(yǔ)言,因?yàn)橛盟兂珊苋菀祝?rdquo;詹森表示。“程序員可以用Objective-C,也可以用Swift,大部分人都將轉(zhuǎn)向 Swift。”

不只是一門(mén)語(yǔ)言

拉特納負(fù)責(zé)監(jiān)督蘋(píng)果所有的開(kāi)發(fā)工具——正是這些工具讓蘋(píng)果的工程師和外部的程序員為這家公司的電腦、筆記本、智能手機(jī)與平板電腦開(kāi)發(fā)軟件。在艾德福 的指導(dǎo)下,這位伊利諾伊大學(xué)香檳分校的研究生曾設(shè)計(jì)過(guò)一套名為L(zhǎng)LVM的元編程工具。該工具是蘋(píng)果軟件開(kāi)發(fā)主要工具Xcode的基礎(chǔ),后者最新版本的下載 次數(shù)已經(jīng)超過(guò)了1400萬(wàn)。簡(jiǎn)單說(shuō),LLVM是生成并運(yùn)行新應(yīng)用的一種方式,可以和所有編程語(yǔ)言配套使用。

拉特納在2005年加入蘋(píng)果。這之后蘋(píng)果用LLVM重塑了開(kāi)發(fā)者使用Objective-C開(kāi)發(fā)應(yīng)用的方式。5年后,拉特納又把LLVM作為 Swift的基礎(chǔ)。拉特納拒絕了媒體的采訪,但在他的個(gè)人主頁(yè)上有對(duì)Swift演化過(guò)程的簡(jiǎn)要介紹。不管這個(gè)長(zhǎng)期項(xiàng)目多么與眾不同,實(shí)際上Swift還是 要與蘋(píng)果現(xiàn)有的開(kāi)發(fā)工具共同工作——雖說(shuō)它提供了一種替代Objective-C的選擇。

換言之,Swift不光是一門(mén)編程語(yǔ)言。它與開(kāi)發(fā)人員打造軟件所需要的所有東西都緊密地結(jié)合在一起。這里不光是指集成開(kāi)發(fā)環(huán)境(IDE),也包括調(diào) 試器這樣的其他工具。這些工具大多被蘋(píng)果開(kāi)發(fā)者所熟悉。換言之,對(duì)成千上萬(wàn)為iPhone、iPad以及Mac電腦開(kāi)發(fā)應(yīng)用的程序員來(lái)說(shuō),Swift很容 易上手。

還是要有充分的理由才能讓程序員從Objective-C轉(zhuǎn)投Swift,畢竟他們過(guò)去從未用過(guò)Swift。“我是第一個(gè),也是唯一一個(gè)具備4年 Swift編程經(jīng)驗(yàn)的人,”拉特納在Twitter上寫(xiě)到。學(xué)習(xí)這樣一門(mén)語(yǔ)言是需要犧牲一定時(shí)間的,這通常是個(gè)大障礙。為蘋(píng)果硬件開(kāi)發(fā)了15年軟件產(chǎn)品的 麥克·艾什(Mike Ash)說(shuō)道:“只有很少一些語(yǔ)言能獲得足夠關(guān)注,大部分語(yǔ)言吸引使用者的時(shí)間都很長(zhǎng)。”艾什現(xiàn)在正在鉆研公司的這門(mén)新語(yǔ)言。

好在拉特納和蘋(píng)果已經(jīng)給出了充分的理由。就其本身來(lái)說(shuō),Swift和C#、Ruby、Python等編程語(yǔ)言比起來(lái)沒(méi)有太多吸引力,但與 Objective-C相比有很大的進(jìn)步。后者的歷史可以追溯到上世紀(jì)80年代中期,平心而論不如更現(xiàn)代的編程語(yǔ)言易用。艾什表示:“許多人因?yàn)?Objective-C和它那不常見(jiàn)的語(yǔ)法放棄了。Swift的語(yǔ)法更標(biāo)準(zhǔn)、更常見(jiàn),這有助于吸引感興趣的人。”

對(duì)現(xiàn)在的程序員來(lái)說(shuō),Swift不僅更熟悉——它有“泛型”這樣的設(shè)計(jì),也就是可以重復(fù)使用的基礎(chǔ)模組——而且還有用來(lái)避免程序員出錯(cuò)的工具。它能 提供一種叫做“推測(cè)輸入”的功能,憑借這種功能程序員就不用花費(fèi)太多時(shí)間來(lái)定義所用變量的類(lèi)型。艾什表示:“它可以提供很多幫助,可以更好地理解你在做什 么,也能讓電腦幫助你把事情想得更清楚。它能讓程序員更有效率,用更短的時(shí)間完成更多的事情。”

還有就是“Playground”,包括艾德福在內(nèi)的很多人都認(rèn)為,這是該語(yǔ)言中最有趣的地方。

Playground

按照拉特納個(gè)人主頁(yè)上的說(shuō)法,“操場(chǎng)”是要讓編程“更具交互性更直觀。”他解釋稱,“操場(chǎng)”在很大程度上受到了蘋(píng)果設(shè)計(jì)師布雷特·維克多(Bret Victor)以及一個(gè)叫做Light Table的交互編程系統(tǒng)的影響。和Light Table類(lèi)似,Swift的“操場(chǎng)”可以讓用戶在屏幕一側(cè)寫(xiě)代碼,在另一側(cè)看到運(yùn)行的效果。

在6月初蘋(píng)果開(kāi)發(fā)者大會(huì)上介紹Swift的時(shí)候,拉特納演示了如何用“操場(chǎng)”實(shí)時(shí)修改一款游戲。簡(jiǎn)單說(shuō),該工具可以向軟件中加入新代碼,而不用重新 編譯或讓整個(gè)程序重啟。Light Table的創(chuàng)建者克里斯·格朗閣(Chris Granger)表示:“它可以把修改的東西注入到一個(gè)正在運(yùn)行的進(jìn)程中——放到正在運(yùn)行的程序中。”

這做不僅是讓編程更容易,而且提供了一種更好的學(xué)習(xí)編程的方法——讓人人都學(xué)會(huì)這種技能。“希望更直觀有趣的編程工作可以吸引下一代程序員,并重新定義計(jì)算機(jī)科學(xué)的教學(xué)方式,”拉特納寫(xiě)到。

Light Table做的事情和這差不多——而且可以用多種語(yǔ)言實(shí)現(xiàn)這一點(diǎn),例如Python、Clojure和Javascript。但對(duì)格朗閣來(lái)說(shuō),“操場(chǎng)”更 為實(shí)用,因?yàn)镾wift為此進(jìn)行了專(zhuān)門(mén)的優(yōu)化。他說(shuō):“因?yàn)樗麄兛刂屏苏Z(yǔ)言——這是他們創(chuàng)建的語(yǔ)言——他們的目標(biāo)就是做到這一點(diǎn)。他們能做那些我們用其他 語(yǔ)言無(wú)法做到的事情。”

這也是一個(gè)立竿見(jiàn)影的激勵(lì)因素。妨礙編程語(yǔ)言普及的一大因素就是程序員沒(méi)有時(shí)間去學(xué)習(xí)。“操場(chǎng)”則具有減少學(xué)習(xí)時(shí)間的能力。按照艾什的說(shuō)法,“操 場(chǎng)”現(xiàn)在還有些bug,但具備了讓編程更流暢的潛力。“一般來(lái)說(shuō),編程工作很耗時(shí)——要花時(shí)間看反饋——弄明白自己在做什么。但‘操場(chǎng)’提供的反饋是實(shí)時(shí) 的,這可以吸引很多新人。”

速度

“操場(chǎng)”體現(xiàn)出了Swift的另一個(gè)優(yōu)勢(shì),那就是反應(yīng)迅速。它編譯起來(lái)很快,這意味著從源代碼到可執(zhí)行應(yīng)用的轉(zhuǎn)變時(shí)間很短;編譯后出爐的應(yīng)用執(zhí)行起來(lái)也很快,這意味著程序可以在手機(jī)或平板電腦上高速運(yùn)行。這也是Swift與其他編程語(yǔ)言不同的地方。

過(guò)去,像Objective-C和C++這樣的編譯型語(yǔ)言與Python、Ruby以及PHP這樣的解釋型語(yǔ)言兩者間存在區(qū)別。編譯型語(yǔ)言在寫(xiě)完代 碼之后,必須要等待編譯器將其轉(zhuǎn)化為可執(zhí)行的軟件。不過(guò)一旦這一工作完成,可執(zhí)行的軟件運(yùn)行的速度很快。解釋型語(yǔ)言則可以幾乎實(shí)時(shí)地測(cè)試程序,但成品的運(yùn) 行速度沒(méi)有那么快。

Swift取長(zhǎng)補(bǔ)短。這種新語(yǔ)言在開(kāi)發(fā)和運(yùn)行時(shí)不會(huì)犧牲速度。正如艾什指出的那樣,Swift“既對(duì)程序員友好,也對(duì)機(jī)器友好”。他表示:“具體的運(yùn)行效果如何還要再看,不過(guò)到目前為止看上去還不錯(cuò)。”

這一領(lǐng)域并非只有蘋(píng)果。Facebook也在通過(guò)“Hack”語(yǔ)言和“D”語(yǔ)言做類(lèi)似的嘗試,谷歌則是“Go”語(yǔ)言,火狐瀏覽器的開(kāi)發(fā)商 Mozilla用的是“Rust”。從某些方面看,這些語(yǔ)言的發(fā)展都要快過(guò)Swift。Facebook已經(jīng)在使用“Hack”重建自己的大型網(wǎng)絡(luò)服務(wù), 谷歌則使用“Go”改進(jìn)內(nèi)部業(yè)務(wù)。

更重要的是,這些語(yǔ)言大多數(shù)都是開(kāi)源的。這意味著它們背后的代碼可以被全世界免費(fèi)使用。從理論上說(shuō),它們可以更輕松地在其他公司的設(shè)備或服務(wù)上運(yùn) 行。Swift并不開(kāi)源——至少現(xiàn)在還不是——而且考慮到蘋(píng)果緊緊控制自己軟硬件產(chǎn)品的歷史,自然會(huì)有這家公司是否會(huì)限制該語(yǔ)言發(fā)展的擔(dān)憂。艾什表示: “有人擔(dān)心蘋(píng)果會(huì)限制該語(yǔ)言發(fā)展的方向——也就是能否撰寫(xiě)跨平臺(tái)的代碼以及類(lèi)似的事情。”

即便如此,Swift的普及速度恐怕也是其他語(yǔ)言無(wú)法企及的。艾什相信,蘋(píng)果最終會(huì)將Swift開(kāi)源,而且他也相信該語(yǔ)言會(huì)在蘋(píng)果的控制之外發(fā)展壯 大——因?yàn)樵撜Z(yǔ)言的開(kāi)發(fā)者拉特納有著很深的開(kāi)源情節(jié)。“有他在掌舵,我覺(jué)得他會(huì)做出正確的選擇”。在開(kāi)發(fā)Swift之前,拉特納曾打造過(guò)一個(gè)叫做 “Clang”的編譯程序。“Clang”就是開(kāi)源的,現(xiàn)在被包括谷歌在內(nèi)的很多公司使用。

就算Swift被蘋(píng)果牢牢控制,它的影響可能也會(huì)超過(guò)近年來(lái)涌現(xiàn)的其他語(yǔ)言,而且它的普及速度可能也會(huì)快過(guò)現(xiàn)代歷史上所有的語(yǔ)言。這就是擁有iPhone、iPad以及Mac電腦的優(yōu)勢(shì)。

的確,Swift能做的事情,其他許多軟件也能做——有些甚至做得更好。Light Table甚至就有“操場(chǎng)”的替代品。

但Swift是獨(dú)一無(wú)二的。

本文鏈接:http://www.cocoachina.com/applenews/apple/2014/0716/9150.html

責(zé)任編輯:chenqingxiang 來(lái)源: cocoachina
相關(guān)推薦

2011-11-08 09:18:42

云計(jì)算開(kāi)源OpenStack

2015-12-16 09:34:53

蘋(píng)果swift編程

2011-07-25 09:15:21

蘋(píng)果微軟喬布斯

2012-06-11 09:07:39

Windows 8微軟

2021-04-14 14:07:36

云計(jì)算云原生SaaS

2014-06-03 10:44:20

Swift開(kāi)發(fā)語(yǔ)言

2015-01-12 13:04:39

Swift開(kāi)源項(xiàng)目匯總

2014-06-04 10:52:56

Swift蘋(píng)果iOS

2015-11-10 09:55:30

Swift調(diào)查期待

2021-04-12 22:19:54

大數(shù)據(jù)計(jì)算機(jī)互聯(lián)網(wǎng)

2011-04-25 09:37:03

2014-07-16 09:41:12

Swift傳統(tǒng)編程

2015-12-04 10:05:09

蘋(píng)果編程開(kāi)源

2015-04-14 14:23:38

蘋(píng)果Swift編程語(yǔ)言

2009-11-06 10:48:14

函數(shù)式編程Scala

2014-06-06 09:13:28

SwiftSwift編程

2014-06-04 10:42:34

Swift蘋(píng)果iOS

2020-02-26 11:31:51

遠(yuǎn)程辦公視頻會(huì)議網(wǎng)絡(luò)

2024-07-02 13:27:38

2014-03-05 14:58:00

蘋(píng)果CarPlayiOS
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)