在即將于周一舉行的全球開發(fā)者大會(WWDC)上,蘋果公司即將分享一個鮮為人知的成功故事。大約1年前,蘋果曾推出新的編程語言Swift,宣稱其可幫助開發(fā)者更輕松地開發(fā)iPhone和Mac應用。開發(fā)者們?yōu)榇藲g呼不已。
這種編程語言被稱為Swift名副其實。蘋果承諾Swift將令編程速度更快,應用也能更快地投入實際應用中。這種應用已經(jīng)在許多開發(fā)者中引發(fā)共鳴,他們在Topcoder網(wǎng)站上舉行Swift編程挑戰(zhàn)賽,目前對Swift感興趣的開發(fā)者已經(jīng)達到3700人,并有望于今年年底達到2萬人。
全球最大問答網(wǎng)站之一Stack Exchange對全球頂級開發(fā)者進行調查顯示,Swift是開發(fā)者們最感興趣的編程語言之一。去年11月份,一名男子通過教授其他人如何使用Swift,一個月凈賺了6.6萬美元。
但是蘋果并非第一家推出自己編程語言的科技巨頭。早在1991年,微軟就已經(jīng)推出可視化程序設計語言Visual Basic,它以Basic編程語言為基礎,是圖形用戶界面最早、最受歡迎的編程語言。大約2009年,谷歌也推出了其自己的編程語言Go。
對于眾多開發(fā)者來說,編程語言非常重要。而對蘋果、谷歌甚至微軟來說,每當發(fā)布新的編程語言時,都意味著對開發(fā)者們的習慣發(fā)起艱難挑戰(zhàn)。因此,企業(yè)肯定會謹慎考慮,對嗎?蘋果和谷歌也必定從中賺取利益,對吧?
開發(fā)編程語言好處多
然而,事實并非如此。蘋果與谷歌的編程語言有很多共同之處。谷歌的Go與蘋果的Swift旨在解決開發(fā)者在舊版編程語言中遇到的問題。
Swift很像Objective-C,后者主導iOS編碼,開發(fā)者很快就采用它。事實上,它與Objective-C如此相似,以至于Swift代碼甚至可被用于同一種應用中。但是Objective-C已經(jīng)誕生30多年了,而Swift則是一種現(xiàn)代化努力,確保應用開發(fā)更容易,運行速度更快。
與Swift類似,Go的目標也是幫助更輕松地建立復雜系統(tǒng)。而網(wǎng)絡軟件編程行業(yè)中的昔日老大C++與Python,已經(jīng)無法滿足谷歌要求。Go FAQ發(fā)言人稱:“Go是在開發(fā)者對現(xiàn)有系統(tǒng)編程語言和環(huán)境感到失望的情況下應運而生的。”
自從Go誕生以來,編碼者使用它更為輕松,但在我們稱之為“云”的大數(shù)據(jù)中心時代,它依然存在很多編程語言在速度和性能方面的問題。作為一個開源項目,全世界的開發(fā)者都為Go的發(fā)展做出貢獻,令其越來越好。
對于谷歌和蘋果來說,推出自己的編程語言有助于他們更輕松地招募相關人才。比如,自從使用Go建立自己的服務器應用后,谷歌更容易招募到精通Go語言的開發(fā)者,他們只需要更少的培訓即可承擔重任。
此外,公司外部的開發(fā)者利用Swift或Go解決的任何問題,蘋果與谷歌都可以應用到自己的業(yè)務中。但是最重要的部分是,這些語言被公開后,其唯一目的就是幫助開發(fā)者開發(fā)出更好的軟件。
Swift快速崛起
云端應用監(jiān)測與管理平臺New Reli的高級軟件工程經(jīng)理喬納森·卡隆(Jonathan Karon)說:“當然,Swift的承諾是讓軟件變得更加穩(wěn)定。”更為穩(wěn)定的軟件意味著更好的應用體驗,而更好的應用體驗令蘋果開發(fā)者感覺更好,iPhone看起來也更棒。
Swift已經(jīng)取得早期成功,但是其依然需要不斷改進,畢竟其誕生僅僅1年時間。Swift的高標準要求意味著它很難被用于在低端Macbook上寫代碼,并且還缺少很多功能。開發(fā)者中間也存在爭議,Swift是否真的比Objective-C更快。
但是開發(fā)者們對Swift的未來發(fā)展非常看好。卡隆稱,從企業(yè)角度來看,他發(fā)現(xiàn)New Reli客戶大多保持他們現(xiàn)有的后端軟件,但是他們正使用Swift開發(fā)人們在智能手機上常用的應用。
而對于消費應用來說,語言學習應用Duolingo是Swift的早期采用者,正利用Swift建立自己的Test Center應用。Lyft也是如此,正利用Swift開發(fā)其打車應用。流視頻直播應用Meerkat同樣是Swift的超級粉絲,該公司CEO本·魯賓(Ben Rubin)表示:“我們喜歡Swift,我們知道它依然是一種新興技術,有許多空白有待填補,為此我們期待其在開發(fā)體驗方面的改進。”
但是有些網(wǎng)絡評論家質疑稱,Swift的存在可能是因為蘋果正嘗試為iPhone和iPad建立一種編程語言,令其應用更難用于安卓設備。但這可能只是部分原因。蘋果精心塑造起公共形象,蘋果工程師就像硅谷工程師一樣,對解決問題感到興奮不已,該公司的開發(fā)者們很可能抓住機會,向全球公布被他們視為更好的解決方案。
如果你依然習慣于使用Objective-C,蘋果不會阻止你,它只是將Swift當作一種選擇。為iPhone和Apple Watch開發(fā)健身應用的BodBot公司創(chuàng)始人塞爾吉奧·普拉多(Sergio Prado)說:“在文檔中,他們平等對待Objective-C和Swift,他們從未想過使用Swift。”
這也就是說,BodBot的應用目前并未使用Swift,因為這不是他想要體驗的。但普拉多說,他正關注著編程語言的發(fā)展。蘋果有望在WWDC主題演講中宣布Swift的更新方向。
谷歌語言Go前景不明
谷歌Go不像Swift那樣呈現(xiàn)爆發(fā)式增長,這不僅僅是因為其針對更復雜、被稱為“系統(tǒng)水平”的編程。Go項目描述自己為“由谷歌設計,幫助解決谷歌難題,谷歌有大問題。”你當然可以利用Go開發(fā)移動應用,但那并非其最擅長的領域。
熱門應用容器引擎Docker、云托管服務平臺DigitalOcean都在使用Go啟動其內(nèi)部項目。如果Swift是為開發(fā)iPhone應用而生,那么Go的使命就是幫助開發(fā)容納應用數(shù)據(jù)的服務器應用。DigitalOcean軟件工程師布萊恩·萊爾斯(Brian Liles)說:“在我們看來,Go很容易使用,為此我們將繼續(xù)探索其可能性。”
但是總的來說,Go還沒有成功起飛。幫助商家在云端開發(fā)應用的平臺Apprenda戰(zhàn)略研究部資深主管丹·特肯科普夫(Dan Turkenkopf)說:“到現(xiàn)在為止,我們還沒有看到有太多企業(yè)客戶使用Go,除了實驗室的某些早期試驗外。”
卡隆表示,主要原因是谷歌有很多懸而未決的編程項目。谷歌有Google Dart,這是另一種不太熱門的編程語言。谷歌還在為安卓應用試驗新的軟件編譯器,其代號為“Jack and Jill”,據(jù)說其有可能改變開發(fā)者開發(fā)應用的方式。換句話說,谷歌“空中有很多球”,開發(fā)者發(fā)現(xiàn)這些“球”的方向卻都不同。
總之,谷歌與蘋果都已經(jīng)推出各自的編程語言,因為新技術的進步往往都是現(xiàn)有編程語言和技術存在不足所驅動。這也是他們推動自己議程的有趣方式之一,即使只為讓更多人對谷歌和蘋果正在做的事情發(fā)生興趣。
但是正如卡隆指出的那樣,更快、更少漏洞的代碼不會自動讓你的應用變得值得使用。像Swift和Go這樣的編程語言并非“銀彈”,即令應用變得更有用或使用起來更有趣。你同樣需要更好的設計、更好的功能。