丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號(hào)安全和更好的產(chǎn)品體驗(yàn),強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時(shí)鏈接,僅用于文章預(yù)覽,將在時(shí)失效
專欄 正文
發(fā)私信給圖靈訪談
發(fā)送

0

擁抱Swift吧,Objective-C已經(jīng)是過(guò)去時(shí)

本文作者: 圖靈訪談 2015-09-23 18:09
導(dǎo)語(yǔ):只需要五年,Swift就會(huì)取代Objective-C了,你信嗎?

Swift是蘋(píng)果在WWDC2014發(fā)布的一門(mén)編程語(yǔ)言,用來(lái)撰寫(xiě)OS X和iOS應(yīng)用程序。2010年7月,LLVM編譯器的原作者暨蘋(píng)果開(kāi)發(fā)者工具部門(mén)總監(jiān)克里斯·拉特納(Chris Lattner)開(kāi)始著手Swift編程語(yǔ)言的工作。除此之外,還有一個(gè)dogfooding 團(tuán)隊(duì)也大力參與其中。歷時(shí)四年,Swift才得以與用戶見(jiàn)面。

蘋(píng)果宣稱,Swift編程語(yǔ)言具有“快速、現(xiàn)代、安全、互動(dòng)”的特點(diǎn),它基于C和Objective-C,而卻沒(méi)有C的一些兼容約束。Swift采用了安全的編程模式和添加現(xiàn)代的功能來(lái)使得編程更加簡(jiǎn)單、靈活和有趣,而它的界面則基于Cocoa和Cocoa Touch框架,展示了軟件開(kāi)發(fā)的新方向。

Xcode Playgrounds功能是Swift為蘋(píng)果開(kāi)發(fā)工具帶來(lái)的最大創(chuàng)新,該功能提供強(qiáng)大的互動(dòng)效果,能讓Swift源代碼在撰寫(xiě)過(guò)程中能實(shí)時(shí)顯示出其運(yùn)行結(jié)果。

擁抱Swift吧,Objective-C已經(jīng)是過(guò)去時(shí)

作為資深蘋(píng)果開(kāi)發(fā)專家的Boisy G. Pitre曾任Siri語(yǔ)音識(shí)別技術(shù)提供方Nuance公司Mac產(chǎn)品小組的資深軟件工程師,參與開(kāi)發(fā)了語(yǔ)音識(shí)別軟件Dragon Dictate。如今,他在情緒識(shí)別公司Affectiva任職移動(dòng)遠(yuǎn)景規(guī)劃師。

Boisy Pitre十分青睞Swift語(yǔ)言,他還撰寫(xiě)了一本針對(duì)初學(xué)者的《Swift基礎(chǔ)教程》,從變量、類型、函數(shù)、閉包等基本概念入手,結(jié)合Swift示例,一步步指導(dǎo)讀者使用Swift開(kāi)發(fā)App,他在書(shū)的最后還給出了一個(gè)App開(kāi)發(fā)全流程。

Swift語(yǔ)言對(duì)iOS和Android開(kāi)發(fā)的影響

當(dāng)蘋(píng)果引入Swift時(shí),我就知道這門(mén)語(yǔ)言會(huì)在幾年之內(nèi)成為計(jì)算機(jī)語(yǔ)言版圖中的重要一塊。

我很難預(yù)測(cè)作為開(kāi)源語(yǔ)言的Swift會(huì)如何影響Android開(kāi)發(fā)。Google在語(yǔ)言初創(chuàng)方面有Go語(yǔ)言,Go對(duì)于Android來(lái)說(shuō)就像是Swift之于iOS。不過(guò)我很期待會(huì)有人用Swift寫(xiě)Android應(yīng)用,這就像是有人用Go寫(xiě)iOS應(yīng)用一樣。

一種語(yǔ)言會(huì)比另一種語(yǔ)言更成功嗎?各自平臺(tái)的語(yǔ)言一定會(huì)依附在它們本來(lái)的平臺(tái)上嗎?只有時(shí)間能告訴我們。但是蘋(píng)果開(kāi)源Swift語(yǔ)言的決定肯定會(huì)讓各種變化朝更好的方向發(fā)展。

Objective-C很不錯(cuò),但它已經(jīng)過(guò)時(shí)了

所有計(jì)算機(jī)語(yǔ)言都會(huì)從其他語(yǔ)言身上借鑒一些東西。對(duì)于Swift來(lái)說(shuō)也是如此。從語(yǔ)法和存儲(chǔ)模型的角度上說(shuō),Swift上就有很多Rust的影子。此外,Swift對(duì)于安全的強(qiáng)調(diào)使其與C和C++保持了一定距離,所以它們之間的共同點(diǎn)比較少。我相信蘋(píng)果很努力想讓Swift成為自己的語(yǔ)言。

目前iOS中的很多應(yīng)用框架都還是Objective-C的,調(diào)用的方式是使用橋接頭文件,但未來(lái)會(huì)出現(xiàn)更多基于Swift的框架,今后的調(diào)用也會(huì)變?yōu)楦雍?jiǎn)潔的方式,蘋(píng)果正在努力實(shí)現(xiàn)這個(gè)艱巨的任務(wù),因?yàn)樾枰D(zhuǎn)換的框架有很多。不過(guò)很快,我們就會(huì)看到專屬于Swift的新框架,這樣的框架在Objective-C中甚至都找不到同類。這種情況的發(fā)生也會(huì)對(duì)Objective-C的后續(xù)使用造成很大的影響。

擁抱Swift吧,Objective-C已經(jīng)是過(guò)去時(shí)

我認(rèn)為Swift在未來(lái)有可能會(huì)取代Objective-C,沒(méi)有人知道這會(huì)花多長(zhǎng)時(shí)間,但是應(yīng)該是在5年之內(nèi)。不過(guò),計(jì)算機(jī)語(yǔ)言的生命很長(zhǎng),C語(yǔ)言到現(xiàn)在已經(jīng)有40歲了,所以O(shè)bjective-C也不會(huì)徹底消失,它只是將在語(yǔ)言世界中所占的份額變得非常小。

Objective-C是一門(mén)很不錯(cuò)的語(yǔ)言,但是它帶有C語(yǔ)言的遺留問(wèn)題和包袱。對(duì)于編寫(xiě)應(yīng)用來(lái)說(shuō),Objective-C在未來(lái)會(huì)變得越來(lái)越脫節(jié)。拿我自己舉例來(lái)說(shuō),我現(xiàn)在就已經(jīng)不再用Objective-C來(lái)開(kāi)啟任何一個(gè)新的iOS或OS X項(xiàng)目了,對(duì)于新項(xiàng)目來(lái)說(shuō),我只使用Swift來(lái)開(kāi)發(fā)。

如何選擇學(xué)習(xí)哪種編程語(yǔ)言?

初學(xué)者完全可以先學(xué)習(xí)Swift。Swift最讓我青睞的特性是其語(yǔ)法的清晰度。用關(guān)鍵字“l(fā)et”建立一個(gè)常量變量,和用關(guān)鍵字“var”建立一個(gè)可變變量相比,很大程度上簡(jiǎn)化了C/C++風(fēng)格的語(yǔ)法。用執(zhí)行命名參數(shù)可以清晰地寫(xiě)函數(shù)(如Objective-C),而創(chuàng)建和使用閉包也變得更簡(jiǎn)單。

而對(duì)于已經(jīng)掌握一兩門(mén)編程語(yǔ)言的程序員來(lái)說(shuō),他的選擇則要取決于“已有的一兩種語(yǔ)言”是什么。如果這兩種語(yǔ)言是Objective-C和Swift,或者C和C++,或者其中任何組合,為了挑戰(zhàn)思維,他可以去學(xué)習(xí)一種完全不同的語(yǔ)言,比如一種函數(shù)式語(yǔ)言(舉例:Scheme)。

C、C++、Objective-C以及Swift這樣的命令式語(yǔ)言都遵循著相同的模型,學(xué)習(xí)同類語(yǔ)言很簡(jiǎn)單,因此就需要讓自己多接觸不同的語(yǔ)言泛型。雖然他可能并不會(huì)用這種語(yǔ)言來(lái)寫(xiě)應(yīng)用,但這會(huì)有利于全面開(kāi)啟他對(duì)于計(jì)算機(jī)語(yǔ)言的理解。

擁抱Swift吧,Objective-C已經(jīng)是過(guò)去時(shí)

有必要掌握所有API嗎?

關(guān)于何時(shí)接觸大量的庫(kù)和API,以及是否需要學(xué)習(xí)所有API的問(wèn)題,我經(jīng)常會(huì)用木匠的工具腰帶做類比。

大家可以想象一下,一個(gè)木匠的工具腰帶中會(huì)裝有所有你能想象得到的工具嗎?結(jié)論當(dāng)然是否,他只會(huì)裝上那些經(jīng)常使用的工具。當(dāng)他需要特殊工具的時(shí)候,他會(huì)來(lái)到卡車前或者庫(kù)房里,打開(kāi)里面的大工具箱,把需要的特殊工具找出來(lái)使用,然后再把它放回去。而這種使用頻率往往在很長(zhǎng)一段時(shí)間里也只有一次到兩次。

對(duì)于編程語(yǔ)言和API來(lái)說(shuō)也是如此。雖然知道的API越多,你就越能更好地解決問(wèn)題,但是有多少人能完整地了解所有的API呢?我的建議是,先比較完整地學(xué)習(xí)一門(mén)語(yǔ)言,然后再繼續(xù)研究這種語(yǔ)言的細(xì)微之處,也就是開(kāi)始接觸這門(mén)語(yǔ)言中可以用來(lái)創(chuàng)建有用應(yīng)用的框架和API。然后可以按照一定頻率(比如每周一次,每次3-5小時(shí))去選擇一個(gè)新的API來(lái)學(xué)習(xí)它的功能。你可能并不會(huì)經(jīng)常使用這個(gè)API,但是你了解它,當(dāng)需要用到時(shí),你就會(huì)知道“從哪里把它取出來(lái)使用”。

iOS開(kāi)發(fā)專家的知識(shí)框架是什么樣的?

一個(gè)全面的iOS專家必須掌握這四樣?xùn)|西:

  1. 用來(lái)寫(xiě)應(yīng)用的語(yǔ)言(Swift / Objective-C);

  2. 對(duì)創(chuàng)建軟件的工具的控制(Xcode);

  3. 關(guān)于iOS應(yīng)用基礎(chǔ)框架和API的強(qiáng)大知識(shí)儲(chǔ)備;

  4. 鑒別好的UI設(shè)計(jì)的能力。

他可能要經(jīng)歷很多應(yīng)用和上百小時(shí)的編程才能達(dá)到這個(gè)水平,每個(gè)應(yīng)用都有自身的要求和需要的API。只要你寫(xiě)的應(yīng)用越多,就能越廣地接觸到各式蘋(píng)果框架,UI設(shè)計(jì)技巧也會(huì)越來(lái)越好。

雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。

擁抱Swift吧,Objective-C已經(jīng)是過(guò)去時(shí)

分享:
相關(guān)文章

知情人士

對(duì)話國(guó)外知名技術(shù)作者,講述國(guó)內(nèi)碼農(nóng)精彩人生。你聽(tīng)得見(jiàn)他們,他們也聽(tīng)得見(jiàn)你。
當(dāng)月熱門(mén)文章
最新文章
請(qǐng)?zhí)顚?xiě)申請(qǐng)人資料
姓名
電話
郵箱
微信號(hào)
作品鏈接
個(gè)人簡(jiǎn)介
為了您的賬戶安全,請(qǐng)驗(yàn)證郵箱
您的郵箱還未驗(yàn)證,完成可獲20積分喲!
請(qǐng)驗(yàn)證您的郵箱
立即驗(yàn)證
完善賬號(hào)信息
您的賬號(hào)已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說(shuō)