1. 程式人生 > >Swift語言和其他計算機語言的比較

Swift語言和其他計算機語言的比較

Swift集成了傳統面向物件程式語言的特性,同時又具備函數語言程式設計的一些特徵。如果你曾經學過C#,Python,Ruby或者JavaScript,那麼會發現Swift有很多相似之處,很容易上手。
在2014年WWDC之前,用來開發iOS應用的語言被稱為Objective-C,它是標準C語言的擴充套件。使用Objective-C可以完成C語言所能完成的任何工作。同時它還添加了很多有用的特性,比如最重要的面向物件程式設計(Objective-Oriented)。Objective-C在前些年可謂門庭冷落,無人問津,除了鐵桿的Mac粉絲,幾乎瀕臨滅絕。但隨著2007年那一次偉大的iPhone產品釋出後之後,幾乎要被歷史遺忘的Objective-C語言再次進入人們的視線,甚至成為今的主流開發語言。Objective-C是2012和2013年的年度程式語言No.1。
目前仍然有大量的iOS專案使用Objective-C開發,畢竟一個新的程式語言普及需要幾年甚至更長的時間,不過iOS開發的未來顯然是屬於Swift的。
這裡不得不提到C++語言,事實上C++和Objective-C語言幾乎是同時出現的。和Objective-C語言的簡潔不同,C++語言幾乎包含了所有可能的特性。作為一門程式語言,它非常強大,且執行效率超高。事實上,所有的作業系統,以及大量的網路遊戲,主機遊戲和PC遊戲,遊戲引擎都會使用C++來開發。C++的問題在於,對於一個新手來說,它異常複雜,包括了基本語言結構,面向物件開發和模板、標準庫等諸多內容。學習C++還是頗有難度的,僅次於組合語言。不過C++11(2011年的新標準)這一C++的最新版本在很多方面做了大的改進,相信會讓這門“古老”而又強大的程式語言更加褶褶生輝。
在進行iOS應用或遊戲開發的時候,我們可以混合使用C,C++和Objective-C(簡稱為Objective-C++)。此外,在WWDC 2013中,官方還特別介紹瞭如何在原生應用中嵌入Javascript。
而在實際的iOS中,我們很可能會用到Objective-C和Swift的混合程式設計,當然初學者先不要考慮這個問題了~
總之,對於iPhone應用開發來說,最主要接觸的語言是Objective-C或者是Swift,偶爾也會用到C++和C,以及javascript等指令碼語言。
對於iPhone遊戲開發來說,由於Cocos2d-x引擎的迅速普及,C++的使用頻率也大大增加。如果是使用Unity引擎的話,那麼會經常接觸C#和javascript。如果使用Unreal引擎的話,也會經常使用C++。
考慮到本教程的很多讀者從未接觸過任何程式語言,這裡對其它幾個主流語言的特點和作用稍微說明一下:
1.Java語言是當今最普遍使用的開發語言,它簡單易學(相對C++,C和Objective-C),且跨平臺性非常強,對網路開發的支援令人稱讚。很多企業使用Java語言來開發商業相關的網路應用。此外,Java語言也是開發Android應用的必備工具。
2.C語言是幾個主流開發語言(Java,C++,C#,Objective-C)的根基所在。常有人說,學好C語言,其它的語言就會一通百通。因此對硬體底層效能的支援超強,它的主要應用領域是嵌入式開發、遊戲引擎開發等偏底層的部分。
3.PHP語言主要用於開發網路應用(特別是web伺服器端,也就是使用者不可見的部分,如結合MySQL進行後臺資料傳輸處理等),相對其它幾門語言,它非常容易上手。但它的侷限性在於除了web應用,對其它應用的開發力不從心。
4.Javascript語言主要用於開發Web前端(也就是使用者可見的部分),隨著HTML5技術的興起,Javascript語言必將是未來三到五年的主流Web開發工具。
5.C#語言是微軟為了對抗Java語言的強勢而自行開發的一種程式語言。它和Java一樣簡單易學(同樣是相對的),但只能支援微軟的平臺。聞名業界的.NET就是C#語言的最佳搭配。關於C#有個更新點,目前最火爆的移動平臺3D遊戲開發引擎Unity3D主要支援C#和javascript開發,而windows手機平臺的捲土重來也讓C#有了新的機會。但隨著微軟在移動網際網路領域的式微,C#的地位和前幾年比起來大有下降。
6.Python,Ruby,Perl同PHP語言的作用類似,屬於指令碼語言,對於開發網路應用非常高效。其中Python和另一種指令碼語言Lua還常在遊戲中作為指令碼語言使用。
7.Go語言,一門全新的系統級語言,由Google開發,於2009年釋出。雖然它的歷史非常短暫,但根據目前的發展來看,Go語言有望在未來十年成為一款成功的系統級語言。Go語言功能強大,可以替代C++
8.Basic(Visual Basic)語言,曾經風騷一時,若干年前很多程式設計入門課程必教的開發語言。其學習曲線非常平緩,易於上手,但實際專案中用到的不是很多。
9.SQL語言,這是目前最重要的關係資料庫操作語言,其影響已經超出資料庫領域,在很多其它領域得到採用,比如人工智慧領域的資料檢索,軟體開發工具中嵌入SQL的語言等。SQL語言是一種互動式查詢語言,允許使用者直接查詢儲存資料,但它並不是完整的程式語言,沒有DO或FOR類似的迴圈語句,但可以嵌入到另一種語言中,通過介面傳送到資料庫管理系統。
10.組合語言,雖然現在是高階程式語言的天下,但效能超強的直接面向硬體的組合語言仍然在嵌入式開發領域佔據著一席之地。只是組合語言和硬體本身的關聯很大,所以普及性一般。
11.LISP語言,一種相對冷門的函數語言程式設計語言,其長處在於超強的運算能力。如今在人工智慧領域和CAD繪圖軟體中仍有大量的支持者。
12.Erlang語言,一個結構化,動態型別程式語言,內建平行計算支援。起初是由愛立信專門為通訊應用設計的,比如控制交換機或變換協議等,非常適合於構建分散式平行計算系統。
其它語言相對來說比較冷僻,或者曾經熱門但如今使用的人很少,用不到的時候可以不管。