白青海
(1.內(nèi)蒙古民族大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,內(nèi)蒙古 通遼 028043;2.內(nèi)蒙古民族大學(xué) 計(jì)算機(jī)應(yīng)用技術(shù)研究所,內(nèi)蒙古 通遼 028043)
當(dāng)前,計(jì)算機(jī)語言層出不窮,五花八門,各自都有自己的應(yīng)用領(lǐng)域,各自都有自己的特點(diǎn)和優(yōu)缺點(diǎn).文章通過九種計(jì)算機(jī)語言,包括Python、Java、C、C++、JavaScript、C#、Ruby、PHP 以及Objective-C 的對(duì)比研究,對(duì)于每種編程語言,從由它打造的頂級(jí)應(yīng)用成果、相關(guān)職位的平均薪酬(美國(guó))以及該語言的優(yōu)勢(shì)與弊端等方面給出這幾種語言的對(duì)比研究,為今后從事計(jì)算機(jī)編程的人員可以提供一些參考.
(1)Java:Java無疑是目前市場(chǎng)需求量最大的語言.它的用途非常廣泛,可以用來開發(fā)Android&iOS應(yīng)用、視頻游戲開發(fā)、桌面GUIs開發(fā)等.它的缺點(diǎn)是:占用內(nèi)存高于C++、學(xué)習(xí)曲線不是很友好,應(yīng)用啟動(dòng)時(shí)間較長(zhǎng)等.盡管如此,依然無法阻擋java前進(jìn)的腳步,Java工程師的需求量也是遠(yuǎn)遠(yuǎn)大于其他語言.
(2)Python:近年來隨著人工智能AI的普及[1],Python的熱度不斷增長(zhǎng).它學(xué)習(xí)起來相對(duì)簡(jiǎn)單,上手難度低,擁有很廣泛的工具及功能庫.它可以用于web 開發(fā)、視頻游戲開發(fā)、桌面GUIs 和軟件開發(fā)等.目前Rasp-berry Pi等新興平臺(tái)已經(jīng)將其作為開發(fā)基礎(chǔ).同樣,Python的缺點(diǎn)也很多:比如速度慢、移動(dòng)領(lǐng)域表現(xiàn)糟糕.由于是動(dòng)態(tài)語言,因此需要進(jìn)行更多測(cè)試,并且會(huì)帶來某些只在特定運(yùn)行中出現(xiàn)的錯(cuò)誤.不過,Python還將隨著物聯(lián)網(wǎng)技術(shù)的普及進(jìn)一步發(fā)展.
(3)C語言:C語言作為多數(shù)程序員入門接觸的第一種語言,目前來看表現(xiàn)只能算一般[2,3].C語言是一種通用型命令式計(jì)算機(jī)編程語言,你可以用它開發(fā)操作系統(tǒng)、開發(fā)軟件和硬件設(shè)備[4,5].它的優(yōu)勢(shì)很多:比如可移植性強(qiáng),體型小巧,幾乎所有的現(xiàn)代編程語言都脫胎于C語言,也就是說,如果你了解了C語言,你會(huì)很容易掌握其他類語言.它的缺點(diǎn)是:沒有OOPs概念,不提供命名空間功能.
(4)C++:C++是一種面向?qū)ο蟮木幊陶Z言,被廣泛視為最出色的大規(guī)模應(yīng)用構(gòu)建語言[6].它可以用來開發(fā)軟件、搜索引擎、操作系統(tǒng)、視頻游戲等.跟Java比較起來,C++的編程過程并不友好,但它很靈活.缺點(diǎn)是,C++的學(xué)習(xí)難度較大[7-8].
(5)C#:C#是一種強(qiáng)大而靈活的編程語言,事實(shí)上C#的功能僅限于我們的想象力.它可以用來開發(fā)windows應(yīng)用、企業(yè)級(jí)業(yè)務(wù)應(yīng)用、軟件開發(fā)等[9].C#全面集成了.net庫,可轉(zhuǎn)換性強(qiáng),需求也極其旺盛.它的缺點(diǎn)是學(xué)習(xí)曲線很陡峭,不具備跨平臺(tái)的能力,因此不大適合新手學(xué)習(xí).
(6)JavaScript:移動(dòng)時(shí)代的到來,使得JavaScript的需求量增加了很多.它可以做很多事情:網(wǎng)站前端、分析、功能控件、web交互.JavaScript的速度很快、容易學(xué)習(xí),它還可以與其它多種語言協(xié)作.缺點(diǎn)是JavaScript沒有名稱空間,很難模塊化,不太適合開發(fā)大型程序.
(7)Ruby:Ruby 是屬于面向?qū)ο蟮耐ㄓ眯驼Z言,可以用來開發(fā)桌面GUIs、web 應(yīng)用和開發(fā)等.Ruby 的庫和工具很多,社區(qū)也很龐大.但Ruby也有很多問題,比如運(yùn)行速度慢、缺乏說明文檔等.
(8)PHP:PHP 有很多用途,比如WordPress 插件、web開發(fā)、創(chuàng)建包含數(shù)據(jù)庫功能的頁面等.它易于上手、社區(qū)龐大、數(shù)據(jù)庫豐富.但是由于學(xué)習(xí)門檻過低,導(dǎo)致項(xiàng)目中存在大量的經(jīng)驗(yàn)不足的開發(fā)者,某些開源代碼甚至已經(jīng)存在十余年之久.目前市場(chǎng)對(duì)PHP的需求量也不及其他語言.
(9)Objective-C:Objective-C是一款通用型面向?qū)ο缶幊陶Z言[10],其本質(zhì)上是將Smalltalk類消息的收發(fā)機(jī)制添加到C 語言當(dāng)中.其目前為蘋果公司在OSX 及iOS 操作系統(tǒng)上的主要編程語言,并配合各自的API.如果希望以iOS或者OSX應(yīng)用為開發(fā)方向,可以選擇該語言.人才市場(chǎng):a.崗位聚集城市:紐約、芝加哥及舊金山.b.薪資:平均年薪為11萬美元.c.崗位數(shù)量:崗位數(shù)量約為21 000個(gè).圖1為采用計(jì)算機(jī)語言從事相關(guān)工作的平均薪資,圖2為采用計(jì)算機(jī)語言從事相關(guān)工作的崗位數(shù)量.
圖1 采用計(jì)算機(jī)語言從事相關(guān)工作的平均薪資Fig. 1 Average salary for related work in computer language
圖2 采用計(jì)算機(jī)語言從事相關(guān)工作的崗位數(shù)量Fig. 2 Number of jobs using computer language to engage in related jobs
當(dāng)下計(jì)算機(jī)編程語言總數(shù)達(dá)到幾萬種,但是最流行、最受歡迎的編程語言大致有十幾種.文章通過對(duì)這些最流行、最受歡迎的計(jì)算機(jī)語言的對(duì)比,給出它們各自的特性.從計(jì)算機(jī)語言的優(yōu)勢(shì)與弊端等方面給出這幾種語言的對(duì)比分析,為今后從事計(jì)算機(jī)編程的人員提供一些參考.