編者按
自由UK web顧問Craig Buckler從事多年編程語言統(tǒng)計(jì),本文統(tǒng)計(jì)了來自GitHut、RedMonk等四個(gè)來源的語言排名情況。他表示語言的選擇需根據(jù)自身的實(shí)際情況,學(xué)習(xí)一門最好可以幫你解決實(shí)際問題的語言。
RedMonk報(bào)告Swift在不到六個(gè)月的時(shí)間里上升了46個(gè)排名達(dá)到第22位。
以下為譯文:
我從事編程語言統(tǒng)計(jì)很多年了,有大量的數(shù)據(jù)來源包括代碼存儲(chǔ)庫(kù)、Q&A討論、招聘廣告、社交媒體情況、教程頁面訪問、學(xué)習(xí)視頻視圖、開發(fā)者調(diào)查等等。數(shù)據(jù)發(fā)表在不同的時(shí)間,都可以被認(rèn)為是精確的,也可以被認(rèn)為是有缺陷的,但是它們可以用于發(fā)現(xiàn)行業(yè)趨勢(shì)。
GitHut
GitHut是一個(gè)相對(duì)較新的資源,據(jù)分析目前在GitHub中有220萬活躍庫(kù),前十為:
JavaScript
Java
Python
CSS
PHP
Ruby
C++
C
Shell
C#
RedMonk
2015年RedMonk語言排名是通過對(duì)GitHub和StackOverflow活躍進(jìn)行分析,研究結(jié)果為:
JavaScript
Java
PHP
Python
C#
C++
Ruby
CSS
C
Objective-C
Jobs Tractor
Jobs Tractor語言趨勢(shì)分析了Twitter上成千上萬個(gè)工作職位,2014年9月的最新數(shù)據(jù)如下:
Java
Objective-C
PHP
SQL
Java (Android)
C#
JavaScript
Python
Ruby
C++
TIOBE Index
TIOBE Index基于熟練工程師、課程以及搜索引擎的語言排名情況:
C
Java
C++
Objective-C
C#
JavaScript
PHP
Python
VisualBasic.NET
Visual Basic
完全不科學(xué)的調(diào)查
如果我們結(jié)合上面四個(gè)排名情況,可以得出下面這個(gè)結(jié)果:
Java (all)
JavaScript
PHP
Python
C / C++
C#
Objective-C
Ruby
Visual Basic
在這里我合并了C和C++,忽略了CSS和shell腳本。CSS并不是一種編程語言。shell腳本是無論你采用什么技術(shù)都對(duì)你有用的,不過如果你只會(huì)這個(gè)你將很難找到工作。
觀測(cè)與警示
GitHut和RedMonk的結(jié)果很相似,不過這是可以預(yù)料到的。因?yàn)樗鼈兌际鞘褂肎itHub作為主要的數(shù)據(jù)來源。都是分析公共的存儲(chǔ)庫(kù),這影響了結(jié)果指向開源技術(shù)。
TIOBE受搜索引擎資源的影響,這可能就是為什么C排名靠前的原因——該語言始于1959年,擁有許多歷史文獻(xiàn)。新語言不可避免的出現(xiàn)了排名靠后的情況,例如Ruby和Go。
教育資源可能會(huì)影響結(jié)果。例如Python是常用的學(xué)校和學(xué)習(xí)編程途徑,成千上萬的學(xué)生問問題和完成項(xiàng)目。不過根據(jù)我的經(jīng)驗(yàn)來說,Python的工作相比PHP和Ruby來說是罕見的。Java也有類似的情況,因?yàn)樗诮逃?、網(wǎng)絡(luò)、桌面和移動(dòng)發(fā)展上有各種各樣的用途,所以它們的排名會(huì)相對(duì)靠前。
本地開發(fā)者的需求仍然很高,尤其是在相關(guān)工作的調(diào)查中可以看出。RedMonk報(bào)告Swift在不到六個(gè)月的時(shí)間里上升了46個(gè)排名達(dá)到第22位。然而應(yīng)用開發(fā)是一門年輕的學(xué)科。目前有更多的Web和桌面編程職位空缺著。
最后,語言使用方面也有一個(gè)影響:
一個(gè)單一Web網(wǎng)站和應(yīng)用需求大量的技術(shù),這可能引發(fā)桌面語言排名靠前的情況;
你可以通過CSS、JavaScript、PHP、Ruby、Python或shell腳本快速的創(chuàng)建幾行代碼,但是通過C、C#、Objective-C和Java這類語言卻不一定能夠完成。
趨勢(shì)
拿今天的圖表來比對(duì)2014年來自RedMonk和Jobs Tractor數(shù)據(jù),你會(huì)發(fā)現(xiàn)幾乎沒有什么改變,沒有新進(jìn)入或大飛躍進(jìn)入前十的語言。
調(diào)查不會(huì)告訴你這些
沒有最佳語言。
鮮有開發(fā)者會(huì)通過單一技術(shù)工作而富有。如果你考慮的是客戶端JavaScript,當(dāng)你沒有充分了解HTML、CSS等等,你不會(huì)走的太遠(yuǎn)。你需要的越多,學(xué)習(xí)掌握的也就越多。
所以
調(diào)查很有趣,但不要拿你的事業(yè)作為賭注。記?。?/p>
僅基于調(diào)查數(shù)據(jù)或報(bào)酬前景來選擇一門語言將會(huì)失敗。
成為一個(gè)偉大的開發(fā)者有一個(gè)秘密:
放手去創(chuàng)建東西。
首先,發(fā)現(xiàn)一個(gè)問題——特別是對(duì)你有利益或有好處的。也許就是創(chuàng)建一個(gè)簡(jiǎn)歷網(wǎng)站、組織你的財(cái)務(wù)狀況或自動(dòng)化你的家,無論是什么,確保目標(biāo)是可以實(shí)現(xiàn)的。
然后選擇一組合適的技術(shù),或許有幾個(gè)選擇。但是不要試圖去“強(qiáng)迫”某些語言:你可以在Perl中創(chuàng)建一個(gè)本地移動(dòng)應(yīng)用,但是資源是罕見的。
接下來創(chuàng)建解決方案:Google、代碼示例和同道開發(fā)者都會(huì)對(duì)你有幫助,不過別期望它們可以提供所有問題的答案。你的項(xiàng)目是(或應(yīng)該是)獨(dú)特的程序,只有一個(gè)人能教你,那就是你自己。
最后,不要期望一夜之間就變成一個(gè)編碼忍者。有些人有一種天然的能力,但也是花了很多很多時(shí)間來磨練他們的技能,不斷的學(xué)習(xí)新的技術(shù)和技巧。
總之,學(xué)習(xí)一門最好可以幫你解決實(shí)際問題的語言。不要在意技術(shù)的過時(shí),因?yàn)樗姓Z言概念上的類似讓你的技能是可轉(zhuǎn)換的。不要擔(dān)心你的選擇——just build something!
本文為CSDN編譯整理
轉(zhuǎn)載自公眾號(hào):CSDN
聯(lián)系客服