摘要:回顧編程語(yǔ)言幾十年來(lái)的興衰起伏,似乎也折射了整個(gè)信息產(chǎn)業(yè)的變遷消亡,想要在技術(shù)的洪流里激流勇進(jìn),找準(zhǔn)并學(xué)精一兩門(mén)編程語(yǔ)言更加顯得至關(guān)重要。
最近,TIOBE更新了7月的編程語(yǔ)言榜單,常年霸榜的C、Java和Python依然蟬聯(lián)前三位。萬(wàn)萬(wàn)沒(méi)想到的是,R語(yǔ)言居然沖到了第八位,創(chuàng)下了史上最佳記錄。而且后續(xù)隨著業(yè)內(nèi)對(duì)數(shù)據(jù)統(tǒng)計(jì)和挖掘需求的上漲,R語(yǔ)言熱度頗有些勢(shì)不可擋的架勢(shì)。
![](http://img.jbzj.com/file_images/article/202007/2020715112616476.jpg?2020615112629)
然而作為程序員吃飯的工具,編程語(yǔ)言之間也形成了某種鄙視鏈,各大論壇里彌漫著劍拔弩張的氣氛,眾口難調(diào)。也難怪有很多初學(xué)者會(huì)有疑惑,為什么會(huì)有這么多編程語(yǔ)言,我到底應(yīng)該學(xué)什么語(yǔ)言?
回顧編程語(yǔ)言幾十年來(lái)的興衰起伏,似乎也折射了整個(gè)信息產(chǎn)業(yè)的變遷消亡,想要在技術(shù)的洪流里激流勇進(jìn),找準(zhǔn)并學(xué)精一兩門(mén)編程語(yǔ)言更加顯得至關(guān)重要。
編程語(yǔ)言的黃金時(shí)代
“有人不喜歡花括號(hào),開(kāi)發(fā)了Python;有人在一個(gè)周末設(shè)計(jì)了出了JavaScript;有人因?yàn)樯习嗵珶o(wú)聊,于是發(fā)明了C語(yǔ)言”。關(guān)于編程語(yǔ)言的八卦軼事很多,但歸根結(jié)底,一個(gè)編程語(yǔ)言的誕生一定是需求的推動(dòng)。
從面向機(jī)器的語(yǔ)言、面向過(guò)程的語(yǔ)言到面向?qū)ο蟮恼Z(yǔ)言,編程語(yǔ)言的歷史也經(jīng)歷了由繁到簡(jiǎn)。而互聯(lián)網(wǎng)崛起的90年代,無(wú)疑也是編程語(yǔ)言的黃金時(shí)代。
套用維基百科的總結(jié),“1990年代未見(jiàn)到有什么重大的創(chuàng)新,大多都是以前構(gòu)想的重組或變化?!?/p>
但就是這樣的一個(gè)時(shí)代,卻是各種編程語(yǔ)言大放異彩的開(kāi)始。
彼時(shí)最主流的編程語(yǔ)言是貝爾實(shí)驗(yàn)室兩位大佬發(fā)明的C/C++語(yǔ)言,互聯(lián)網(wǎng)的載體計(jì)算機(jī)的基礎(chǔ)設(shè)施,都是用這套語(yǔ)言來(lái)編寫(xiě)的,包括Linux操作系統(tǒng)、數(shù)據(jù)庫(kù)、編譯器等等。
這也奠定了C語(yǔ)言在IT領(lǐng)域的地位,只要有計(jì)算機(jī)的存在,C/C++肯定會(huì)有它們的一席之地。
但后來(lái)者居上的故事也隨時(shí)在發(fā)生,這里的主角是已經(jīng)落幕的昔日巨頭網(wǎng)景和Sun。
1994年,網(wǎng)景發(fā)布了一款真正的網(wǎng)絡(luò)瀏覽器Navigator,但受限于當(dāng)時(shí)的技術(shù)限制,Navigator更像是一個(gè)本地展示頁(yè)面,不具備任何交互功能。巧的是,Sun公司在1995年正式向市場(chǎng)推出他們開(kāi)發(fā)的Java(即Oak語(yǔ)言),特點(diǎn)是“一次編寫(xiě),到處運(yùn)行”,網(wǎng)景看中了這個(gè)潛力股,選擇與Sun結(jié)盟。
當(dāng)時(shí)的Java可以作為腳本嵌入到網(wǎng)頁(yè)中實(shí)現(xiàn)交互功能,即我們所熟知的Java Applet。然而,網(wǎng)景認(rèn)為Java作為網(wǎng)頁(yè)腳本還是過(guò)于復(fù)雜,程序員Brendan Eich就在10天內(nèi),集百家之長(zhǎng),開(kāi)發(fā)了Javascript,如今所有瀏覽器前端庫(kù)都需要基于JavaScript實(shí)現(xiàn)。
計(jì)算機(jī)的普及、互聯(lián)網(wǎng)的崛起,Web應(yīng)用的出現(xiàn),Ruby、PHP等語(yǔ)言也悉數(shù)登場(chǎng)。
如知乎作者“強(qiáng)哥學(xué)堂”述,“這段時(shí)間,雖然沒(méi)有創(chuàng)造編程語(yǔ)言,但是由于大量企業(yè)的參與,編程語(yǔ)言得到了空前的發(fā)展,形成了今天的編程語(yǔ)言的基本形態(tài)。也使得軟件開(kāi)發(fā)越來(lái)越標(biāo)準(zhǔn)化,規(guī)?;!?/p>
與此同時(shí),還有一些“小眾”的編程語(yǔ)言,正蓄勢(shì)待發(fā)中,等待著“爆紅”的機(jī)會(huì)。
蘋(píng)果的攪局,生態(tài)很關(guān)鍵
2010年iPhone 4問(wèn)世,喬布斯用智能手機(jī)改寫(xiě)了之后的互聯(lián)網(wǎng)發(fā)展軌跡。iOS和Android支撐起的智能手機(jī)市場(chǎng),讓移動(dòng)互聯(lián)網(wǎng)成為絕對(duì)的舞臺(tái)主角。
蘋(píng)果開(kāi)創(chuàng)了一個(gè)全新的生態(tài),作為iOS的應(yīng)用開(kāi)發(fā)語(yǔ)言,始于1984年的Objective-C從籍籍無(wú)名走向聲名大噪,依托各種iPhone、iPad應(yīng)用程序的開(kāi)發(fā),Objective-C曾一度挺進(jìn)TIOBE排行榜的Top 3。
不過(guò),蘋(píng)果在2014年的WWDC上推出了新的編程語(yǔ)言Swift,支持編寫(xiě)macOS/OS X、iOS、iPadOS、watchOS和tvOS的軟件應(yīng)用,并在第二年宣布開(kāi)源、支持Linux。
自此之后,Objective-C的市場(chǎng)份額逐年遞減,從2014年的12%下降到2016年的1%。從下圖也可以看出,新語(yǔ)言Swift從0開(kāi)始,這幾年一直處于穩(wěn)定增長(zhǎng)中,今年1月也沖進(jìn)了TIOBE榜單的第九位。
![](/d/20211017/7a0766b2e3703b1851eb66e49c2620ae.gif)
雖然一門(mén)計(jì)算機(jī)語(yǔ)言從編譯器、語(yǔ)法、基礎(chǔ)庫(kù)到在程序員的圈子中普及,并不是短時(shí)間可以一蹴而成,但蘋(píng)果仍然以一己之力將Objective-C和Swift帶入了編程語(yǔ)言的主流市場(chǎng),由此可見(jiàn),編程語(yǔ)言和一個(gè)產(chǎn)品的生態(tài)規(guī)模息息相關(guān)。
微軟和Visual Basic的關(guān)系也是如此,移動(dòng)互聯(lián)網(wǎng)時(shí)代之前,VB曾經(jīng)依靠可視化的開(kāi)發(fā)環(huán)境,成為最炙手可熱的桌面開(kāi)發(fā)工具,并一度擁有300萬(wàn)開(kāi)發(fā)者。而且借助Windows操作系統(tǒng)市場(chǎng)優(yōu)勢(shì),VB如今也一直保持著居高不下的熱度(遺憾的是,微軟表示不打算繼續(xù)演化 Visual Basic了)。
回到移動(dòng)互聯(lián)網(wǎng)時(shí)代,另一邊的Android選擇的是Java,隨著Android陣營(yíng)的越來(lái)越龐大,Java一直是TIOBE榜單上的第一,成績(jī)最差也能拿個(gè)第二。
一個(gè)編程語(yǔ)言的長(zhǎng)盛不衰,除了它本身的優(yōu)勢(shì)之外,其生態(tài)的建設(shè)也至關(guān)重要,畢竟用的人多了,也就能自成一派,這一點(diǎn)在Python的流行中體現(xiàn)的淋漓盡致。
大數(shù)據(jù)+AI時(shí)代,Python一騎絕塵
當(dāng)學(xué)Python要從娃娃抓起的口號(hào)開(kāi)始流行時(shí),編程語(yǔ)言從IT圈子進(jìn)入到大眾圈。
大數(shù)據(jù)、AI的時(shí)代,Python可以說(shuō)是一騎絕塵,從數(shù)據(jù)分析、機(jī)器學(xué)習(xí)、Web開(kāi)發(fā)到爬蟲(chóng)開(kāi)發(fā)都可以在Python的幫助下非常輕松的解決。
統(tǒng)計(jì)分析人員可以用Python解決數(shù)據(jù)爬取和分析的問(wèn)題,大學(xué)生可以用Python解決租房的問(wèn)題……
最關(guān)鍵的是,Python的學(xué)習(xí)門(mén)檻比C++,Java都要低,簡(jiǎn)潔的語(yǔ)法、成熟的第三方庫(kù),即使是非程序員群體,也能在短時(shí)間內(nèi)速成。
用于統(tǒng)計(jì)分析、繪圖、數(shù)據(jù)挖掘的R語(yǔ)言也是如此,趕上了數(shù)據(jù)應(yīng)用分析的潮流,自然能從眾多編程語(yǔ)言中脫穎而出。
針對(duì)今年7月榜單R語(yǔ)言創(chuàng)紀(jì)錄的成績(jī),TIOBE的 CEO Paul Jansen 明確表示有兩大趨勢(shì)起著關(guān)鍵作用:一是商業(yè)統(tǒng)計(jì)語(yǔ)言和軟件包(如 SAS、Stata 和 SPSS)的時(shí)代已經(jīng)結(jié)束,大學(xué)和研究機(jī)構(gòu)采用Python和R進(jìn)行統(tǒng)計(jì)分析;二是與COVID-19相關(guān)的研究需要進(jìn)行大量統(tǒng)計(jì)和數(shù)據(jù)挖掘,所以易于學(xué)習(xí)和使用的統(tǒng)計(jì)編程語(yǔ)言熱度上升。
再比如誕生于2010年,由Mozilla主導(dǎo)開(kāi)發(fā)的Rust語(yǔ)言,其更加強(qiáng)調(diào)安全性、存儲(chǔ)器配置、以及并發(fā)處理等特性。去年Facebook推出的區(qū)塊鏈項(xiàng)目Libra,就選擇了Rust語(yǔ)言來(lái)構(gòu)建,因?yàn)樗銐虬踩?/p>
Rust的排名也從2012年的200名開(kāi)外,在最新一期TIOBE榜單上沖進(jìn)了Top20。
![](/d/20211017/c3a576a39e04a8d20e2c36694ca856b7.gif)
我們以互聯(lián)網(wǎng)的崛起為分界線(xiàn),可以看到各個(gè)編程語(yǔ)言的此消彼長(zhǎng),必然伴隨著新的產(chǎn)品和技術(shù)。順應(yīng)新技術(shù)發(fā)展的編程語(yǔ)言,即便時(shí)隔幾十年,也可以重新煥發(fā)光彩。而且隨著開(kāi)源社區(qū)的壯大,一門(mén)優(yōu)秀的編程語(yǔ)言可以博采眾家之長(zhǎng),成長(zhǎng)為后起之秀。
結(jié)語(yǔ)
如果你想以編程語(yǔ)言立生,建議你先學(xué)習(xí)Java,然后是Python和C++,因?yàn)檫@三種編程語(yǔ)言,基本上可以解決我們工作中遇到的大部分問(wèn)題。
最后,如C#之父Anders Hejlsberg曾總結(jié):如果要我概括在未來(lái)十年編程語(yǔ)言會(huì)變成什么樣,首先,我認(rèn)為編程語(yǔ)言應(yīng)該變得更加“聲明式”,我們需要設(shè)法為語(yǔ)言引入一些如元編程,函數(shù)式編程的能力,同時(shí)可能也要尋找讓用戶(hù)有辦法擴(kuò)展語(yǔ)法,使他們可以構(gòu)造領(lǐng)域特定語(yǔ)言等等。不過(guò)總體來(lái)說(shuō)我想強(qiáng)調(diào)的是,對(duì)于編程語(yǔ)言,新的范式則是“多范式”編程語(yǔ)言。
本文部分內(nèi)容有參考以下文章:
1、《IT行業(yè)激蕩30年->編程語(yǔ)言變遷史》
https://zhuanlan.zhihu.com/p/106808045
2、《計(jì)算機(jī)和編程語(yǔ)言的發(fā)展歷史》
https://blog.csdn.net/abc6368765/article/details/83990756
到此這篇關(guān)于C、C++、Java到Python,編程入門(mén)學(xué)習(xí)什么語(yǔ)言比較好的文章就介紹到這了,更多相關(guān)C、C++、Java Python 學(xué)哪個(gè)語(yǔ)言好內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- 淺析Java、C/C++、JavaScript、PHP、Python分別用來(lái)開(kāi)發(fā)什么?
- C++、C語(yǔ)言和JAVA開(kāi)發(fā)的區(qū)別
- golang、python、php、c++、c、java、Nodejs性能對(duì)比
- 如何批量清理系統(tǒng)臨時(shí)文件(語(yǔ)言:C#、 C/C++、 php 、python 、java )
- C++、python和go語(yǔ)言實(shí)現(xiàn)的簡(jiǎn)單客戶(hù)端服務(wù)器代碼示例
- 馬爾可夫鏈算法(markov算法)的awk、C++、C語(yǔ)言實(shí)現(xiàn)代碼
- C++ QgraphicsScene類(lèi)案例詳解