{eval=Array;=+count(Array);}
去年,我在網(wǎng)絡(luò)上讀過這樣一段文字:“代碼其實是存儲在存儲器(內(nèi)存、硬盤或者閃存等)中有序電壓高低,編譯出的結(jié)果還是電腦中存儲的有序電壓高低。從代碼的編輯到最后對電路的控制都是電壓在起作用,只是為了方便而給我們展現(xiàn)的形式不一樣,本質(zhì)其實一樣的。世界上本沒有軟件,軟件只是對硬件的一種反映,就像意識是對客觀世界的反映一樣的?!?/p>
同樣是在去年里,IEEE Spectrum雜志向人們發(fā)布了2017年度編程語言排行榜。并且,IEEE Spectrum是在獲取了Stack Overflow、Twitter、Reddit、IEEE Xplore、GitHub、CareerBuilder等10個重要的數(shù)據(jù)源之后,再對48種編程語言進行排序的。
不難發(fā)現(xiàn),單從各語言的應(yīng)用范圍和流行度來看,C、C++、JavaScript、Java、Python,便是優(yōu)秀的程序員最應(yīng)該精通的語言。另外,我的建議是,初學(xué)者首先就應(yīng)該從最難的C/C++學(xué)起,并學(xué)精。每個程序員不可能去學(xué)完世界上所有的編程語言,在精通了C/C++、JavaScript、Java、Python等語言后,根據(jù)個人的志向以及工作的需要,再選擇性地學(xué)會幾門語言,是完全值得肯定的做法。在我看來,一個優(yōu)秀的程序員,應(yīng)該能完全精通2到5門的語言,同時會個10門左右的語言,都是很正常的。況且,現(xiàn)在很多的公司在外面招程序員時,也更喜歡那種T型人才(一專多能型)。一個程序員會更多門的語言,往往體現(xiàn)著這個人的大腦聰明,以及有著愛鉆研,不怕吃苦,學(xué)習(xí)能力強等品質(zhì)。再則,一個程序員在精通了幾門的編程語言這個基礎(chǔ)上,還會更多門的語言,在工作時解決問題的能力往往會更強(思路更開闊),工作起來的效率也更高,當(dāng)然也更得老板的喜歡。
C語言是一種通用的命令式編程語言,于上個世紀(jì)70年代中問世??梢哉f,C既是最老的語言,又是應(yīng)用范圍最廣的語言。C語言為其他語言如JavaScript、Java、Python、C#等提供了構(gòu)建模塊,且被人們廣泛地應(yīng)用于不同的操作系統(tǒng)和應(yīng)用中。由于C語言為其他語言提供了基礎(chǔ),所以初學(xué)者最好先是從C/C++入手。
C++的應(yīng)用范圍非常廣,起初是作為C的增強版而問世的。C++是一種靜態(tài)數(shù)據(jù)類型檢查的,支持多重編程范式的語言。C++支持過程化程序設(shè)計、數(shù)據(jù)抽象、面向?qū)ο蟪绦蛟O(shè)計和泛型程序設(shè)計等多種程序設(shè)計風(fēng)格,C++已被應(yīng)用在FireFox、Adobe Programs等知名軟件中。C++可被用來開發(fā)系統(tǒng)軟件、應(yīng)用軟件、客戶端應(yīng)用程序和視頻游戲等。
JavaScript是一種基于對象和事件驅(qū)動并具有相對安全性的客戶端腳本語言,同時也被廣泛用于客戶端Web的開發(fā),常被用來給HTML網(wǎng)頁添加動態(tài)功能。JavaScript還可用于開發(fā)游戲和桌面應(yīng)用等。
Java是基于類的面向?qū)ο蟮恼Z言,具有跨平臺、面向?qū)ο蟆⒎盒途幊痰奶攸c,被廣泛用于企業(yè)級Web應(yīng)用和移動應(yīng)用的開發(fā)。最初Java的名字叫Oak。上個世紀(jì)90年代,互聯(lián)網(wǎng)興起并發(fā)展,Sun公司預(yù)見到了Oak在互聯(lián)網(wǎng)行業(yè)中的應(yīng)用前景,便改造了Oak,并于1995年5月正式對外發(fā)布Java。之后,Java一路伴隨著互聯(lián)網(wǎng)發(fā)展至今,逐漸成為了重要的網(wǎng)絡(luò)編程語言之一。Java是為跨多個軟件平臺而設(shè)計,一個在Mac OS X上開發(fā)出來的程序同樣能在Windows上運行。
Python是一種高級的服務(wù)器端腳本語言,適用于網(wǎng)站和移動應(yīng)用的開發(fā)。對初學(xué)者而言,Python確實是簡單易學(xué)。其他如C#、PHP、SQL、Objective-C、Ruby等語言,這里就不一一介紹了。順便補充一下,去年網(wǎng)絡(luò)上有過一篇文章,標(biāo)題是《2017中國程序員生存報告》。該報告中就有一組數(shù)據(jù)顯示,C、C++、JavaScript、Java、Python,PHP等語言相對占主流。
說到編程語言,一個重要的參考就是TIOBE排行榜, 該榜單是根據(jù)互聯(lián)網(wǎng)上有經(jīng)驗的程序員、課程和第三方廠商的數(shù)量,并使用搜索引擎(如Google、Bing、Yahoo!)以及Wikipedia、Amazon、YouTube等統(tǒng)計出排名數(shù)據(jù),以此反映某個編程語言的熱門程度。
下圖是今年四月份前20排名的編程語言榜單:
從此榜我們可以看出排名前三甲的分別是Java,C和Python,說明這三種編程語言的熱度最高。當(dāng)然,除了看每個月的榜單外,還應(yīng)該關(guān)注編程語言熱度的長期變化,以此來分析某種編程語法發(fā)展的趨勢。
從這個圖中可以看出,C與Java長期占據(jù)榜單的前兩名,C++曾經(jīng)也輝煌過,但是熱度有明顯的下降趨勢,而Python則相反,處于上升的趨勢。所以從數(shù)據(jù)來看,最流行的應(yīng)該是Java。
TIOBE只是反映語言的熱度,并不能說明一門編程語言的好壞,或者一門語言編寫代碼的數(shù)量多少。學(xué)習(xí)編程語言還是要根據(jù)個人的興趣愛好和行業(yè)要求進行選擇。
編程語言都有哪些
編程語言分為四大類,分別是匯編語言、腳本語言、機器語言和高級語言。
匯編語言的實質(zhì)和機器語言是相同的,都是直接對硬件操作,只不過指令采用了英文縮寫的標(biāo)識符,更容易識別和記憶。
腳本語言是為了縮短傳統(tǒng)的編寫-編譯-鏈接-運行(edit-compile-link-run)過程而創(chuàng)建的計算機編程語言。
由于計算機內(nèi)部只能接受二進制代碼,因此,用二進制代碼0和1描述的指令稱為機器指令,全部機器指令的集合構(gòu)成計算機的機器語言,用機器語言編程的程序稱為目標(biāo)程序。
高級語言是大多數(shù)編程者的選擇。和匯編語言相比,它不但將許多相關(guān)的機器指令合成為單條指令,并且去掉了與具體操作有關(guān)但與完成工作無關(guān)的細(xì)節(jié),同時,由于省略了很多細(xì)節(jié),編程者也就不需要有太多的專業(yè)知識。
常見的編程語言包括C#、Basic、Pascal、C語言、C++、JAVA、AAuto、易語言、SQL。
2如何挑選編程語言
計算機軟件開發(fā)的過程中,程序員要對多種編程語言進行綜合考慮。具體考慮包括軟件將要安裝的硬件環(huán)境、軟件的平臺支持性、開發(fā)設(shè)計成本和效率、選擇相對熟練的計算機編程語言和客戶對軟件的使用要求。
Python 的優(yōu)勢在于容易上手,適合作為初學(xué)者的第一門編程語言。常用于爬取數(shù)據(jù)、數(shù)據(jù)挖掘、人工智能、機器學(xué)習(xí)、網(wǎng)站搭建。
C 語言是國內(nèi)計算機專業(yè)學(xué)習(xí)的第一門編程語言。常用于操作系統(tǒng)開發(fā)、硬件開發(fā)等。
一個非常好的問題。計算機編程語言已經(jīng)發(fā)展近100年了,中間經(jīng)歷了多次迭代進化,出現(xiàn)了很多種編程語言。
根據(jù)最新2020年4月份TIOBE編程語言指數(shù)排行榜,排名前3的分別是Java、C、Python。其中C是最古老的編程語言之一,現(xiàn)在依然使用廣泛。
TIOBE編程排行榜根據(jù)全球工程師、課程和搜索引擎數(shù)量為指數(shù)得出,在一定程度上反映了編程語言的發(fā)展趨勢。
最常見的編程語言在不同軟件開發(fā)領(lǐng)域會有差別,要看題主從事的行業(yè)了。整體來看,Java、H5/JavaScript、Python和C當(dāng)前最為常用。
在企業(yè)應(yīng)用開發(fā)中Java最被青睞,尤其是電商系統(tǒng)、企業(yè)信息管理、各種應(yīng)用系統(tǒng),Java語言+ Spring Boot框架組合處于絕對的壟斷地位,豐富的組件和易用的功能,使得學(xué)習(xí)起來比較容易。
根據(jù)IDC的統(tǒng)計數(shù)字,Java程序員市場需求量占到了所有軟件開發(fā)類人才的60%~70%。
隨著移動互聯(lián)網(wǎng)的發(fā)展,大前端開發(fā)逐漸成為重點,這時的H5前端已經(jīng)成為跨平臺應(yīng)用開發(fā)。作為H5 Hybrid架構(gòu)三劍客之一的JavaScript,是一種解釋型的腳本語言,由解釋器加載執(zhí)行,用在網(wǎng)頁前端動態(tài)展示、調(diào)用服務(wù)后端交互等場景中。
Python在AI算法研究和開發(fā)中使用最為普遍,語法靈活,支持面向功能、面向?qū)ο蠛兔嫦蜻^程的開發(fā)方式,簡單易學(xué),有豐富的第三方庫和框架,并且對AI算法的動態(tài)適用性非常好。結(jié)合Jupyter Notebook交互式筆記本,基本是標(biāo)配。
眾多的Python技術(shù)社區(qū)非?;钴S,推動整個語言生態(tài)健康發(fā)展。
隨著物聯(lián)網(wǎng)技術(shù)快速發(fā)展,C語言再次得到關(guān)注和使用,主要開發(fā)領(lǐng)域是底層模塊驅(qū)動程序和嵌入式應(yīng)用。
C語言具有很好的可移植性和很高的運行效率,運行時環(huán)境占用資源少,幾乎與所有系統(tǒng)兼容,常用于操作系統(tǒng)和嵌入式系統(tǒng)開發(fā)。
我是工作多年的Web應(yīng)用架構(gòu)師,陸續(xù)發(fā)布關(guān)于軟件開發(fā)方面的文章,歡迎關(guān)注我,了解更多IT專業(yè)知識。
5
回答1
回答0
回答0
回答3
回答0
回答0
回答4
回答0
回答0
回答