掃二維碼與項(xiàng)目經(jīng)理溝通
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
蘋(píng)果公司表示其將把swift語(yǔ)言打造為開(kāi)源項(xiàng)目,但在軟件自由度的問(wèn)題方面仍然有所保留。

那么對(duì)于一款編程語(yǔ)言來(lái)說(shuō),開(kāi)源機(jī)制的介入到底意味著什么?這個(gè)話題說(shuō)起來(lái)就有些復(fù)雜了,而且也關(guān)系到開(kāi)源命題的核心所在。具體來(lái)說(shuō),其編譯器可能是開(kāi)源的、整套工具鏈可能是開(kāi)源的、而語(yǔ)言本身也可能由開(kāi)源IDE負(fù)責(zé)支持。這里提到的每一項(xiàng)都可以算作是一種語(yǔ)言走向開(kāi)源的必要元素。
接下來(lái)要提出的問(wèn)題則是:?jiǎn)螒{獨(dú)立開(kāi)發(fā)者之力,能否實(shí)現(xiàn)語(yǔ)言的開(kāi)源轉(zhuǎn)化?這個(gè)問(wèn)題同樣復(fù)雜。就以甲骨文公司為例,雖然其切實(shí)將Java推向了開(kāi)源,但卻無(wú)法容忍Java替代性方案的出現(xiàn)——正如谷歌所發(fā)現(xiàn)。因此,我們必須等待蘋(píng)果公司最終拿出的實(shí)際許可,并借此了解其到底是真正為我們帶來(lái)代表著開(kāi)放的大門(mén)、抑或僅僅是像甲骨文那樣通過(guò)玩弄專利與版權(quán)來(lái)刺激與項(xiàng)目相關(guān)的創(chuàng)新活動(dòng)。
不過(guò)值得關(guān)注的內(nèi)容還不止于此。當(dāng)前最值得大家認(rèn)真考慮的問(wèn)題在于,這款編程工具是否會(huì)帶來(lái)軟件自由。要回答這個(gè)問(wèn)題,單純關(guān)注語(yǔ)法、工具鏈甚至是獨(dú)立實(shí)現(xiàn)的可能性都還遠(yuǎn)遠(yuǎn)不夠。
一種編程語(yǔ)言絕不僅僅是將多套SDK——即API加上代碼庫(kù)——拼合起來(lái)所形成的產(chǎn)物。從自身角度出發(fā),編程語(yǔ)言能做的并不多。但真正重要的是對(duì)應(yīng)平臺(tái)擁有可資利用的開(kāi)源SDK外加用戶能夠切實(shí)獲得的API,特別是對(duì)于那些以軟件自由性為核心訴求的編程語(yǔ)言而言。
Swift語(yǔ)言的設(shè)計(jì)主旨是為了給蘋(píng)果公司旗下受到嚴(yán)格保護(hù)的移動(dòng)系統(tǒng)平臺(tái)開(kāi)發(fā)安全性更高且開(kāi)發(fā)過(guò)程較Objective-C更簡(jiǎn)潔的編程成果。蘋(píng)果公司指出,其“計(jì)劃面向OS X、iOS以及Linux”,但三者事實(shí)上存在著巨大差異。其中iOS與OS X功能集的最大特征在于“匯聚”,相比之下Linux則擁有面向一系列系統(tǒng)方案的“松散”特征——具體來(lái)講,單單是通用型窗口管理器就分為GNOME與KDE兩大陣營(yíng),其下還各自包含多種分支版本。
盡管Swift將為iOS系統(tǒng)開(kāi)發(fā)工作帶來(lái)更出色的類型與內(nèi)存安全效果,但在我們看來(lái),利用Swift為iOS及OS X編寫(xiě)的應(yīng)用程序恐怕很難被移植到其它系統(tǒng)之上——除了應(yīng)用中的通用“引擎”代碼之外。也許那些采取嚴(yán)格MVC方法的應(yīng)用能夠更輕松地與Swift的控制器機(jī)制相對(duì)接,但我們?nèi)匀缓茈y相信這足以帶來(lái)可順暢移植的視圖代碼。
那么蘋(píng)果公司的Swift編程語(yǔ)言到底是否會(huì)走向“開(kāi)源”?除非親眼看到該工具鏈當(dāng)中的具體許可及治理?xiàng)l款,否則我們沒(méi)辦法給出確切答案,不過(guò)蘋(píng)果方面給出的答復(fù)是肯定的(包括OSI核準(zhǔn)許可、接受代碼貢獻(xiàn)等等)。而且即使開(kāi)源成為現(xiàn)實(shí),如果我們無(wú)法利用Swift語(yǔ)言開(kāi)發(fā)出開(kāi)源應(yīng)用,那么這一切仍然毫無(wú)意義——這絕不是什么學(xué)術(shù)問(wèn)題。
編程語(yǔ)言本身并不是問(wèn)題的關(guān)鍵所在;它們所使用的SDK才是真正核心。當(dāng)蘋(píng)果公司公布能夠與Swift并行協(xié)作的SDK方案時(shí),這些方案幾乎不可能會(huì)以無(wú)縫化方式作用于Android或者其它任何基于Linux的開(kāi)源平臺(tái)之上(更不用提Windows了)。
Swift也許能夠?yàn)楝F(xiàn)代開(kāi)發(fā)人員提供口頭上的開(kāi)源承諾與對(duì)自身有利的輿論籌碼,但我個(gè)人對(duì)此并不抱太大希望——特別是考慮到蘋(píng)果公司對(duì)于自身專利技術(shù)儲(chǔ)備所抱持的一貫保護(hù)態(tài)度。

我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流