在程序员这个圈子里,很多人都很焦虑,尤其是年过30的程序员,尽管他们拿着比其他行业的同龄人高出好几倍的薪水,他们依然为自己的未来感到十分不安,而且焦虑程度相比其他行业更高。为什么呢?对TIOBE发布的2020年2月编程语言流行榜前50名进行年龄统计分析后,发现他们的焦虑是完全有科学依据、有数据支撑的,并不是杞人忧天。
根据统计结果发现流行榜单前50的席位1990年以后出现的语言占了54%,也就是说年龄不到30岁的编程语言占了半壁江山,这意味着30岁以上的程序员,很可能需要利用业余时间学习新的编程语言,否则,被淘汰的风险极高。编程语言的变化给程序员的影响不仅是失业的问题,语言变了,一切就从头开始,即便语法容易,但要精通一门语言一般得经历一个以上大型项目的历练,这意味着切到新岗位后你原来的优势没有了,需要重新打造。这应该是程序员除了加班外,另一件倍感压力而令人焦虑的事情。
前50席位占比最高的三个年代分别是80后20%,90后22%,00后占22%,可谓编程语言的“三小强“,这三个年代也正是计算机信息技术飞速 发展的时代,编程语言的不断创新提高了硬件资源的利用率,加速了计算机技术的发展。这是全球所有70后、80后、90后开发人员的骄傲,是他们不断创新推动着这个行业快速前进的步伐。
前50席位中1980年以前的占比为26%,其中70后占比14%,在这个日新月异的领域里,全球的编程语言超过2500多种,挤进前50的不到2%,而他们活跃在前线超过半个世纪之久,着实令人敬佩。而且在全球流行榜前10榜单中,70后及以前的占了3席占比为30%,全球前20榜单中占了5席占比为40%,真的很经打,而且70后C语言几十年来多次获得年度冠军称号,不得不服。年龄最大的是汇编已年近80,依然活跃在系统最底层。选择这些语言的程序员有福了,这辈子都不用愁。
编程语言创新的脚步从未停止,前50席中2010年后新出的语言有5个占了10%。最年轻的Rust是2014年出生的今年即将满6岁。
从具体的编程语言年代统计中发现其实在各个年代都有优秀的编程语言代表,很多都为我们所熟知,也有一些可能接触较少。
40年代是计算机刚起步,这个年代的编程很贫乏,汇编语言是这年代的代表,至今依然活跃在一线,在流行榜单中排第12名,采用汇编编写的程序存储空间少、执行效率高。40年代的语言还有机器语言,也就是“0”和“1”组成的二进制集合,是机器运行的本质,但对现代程序员而言一般不接触,都是通过编译器完成的。
Fortran在流行榜中排在第37名,是1954年提出的,世界上第一个被推广使用的高级语言,是为数学公式计算而设计的,因此其数值计算能力较强。50年代中后期,计算机开始应用与商业和企业的业务处理,其编程语言创新也变得活跃起来,有些语言是50年代末提出来到60年代才完成的。除了Fortran,这一时期还有一个语言是ALGOL,他是世界上首批有清晰定义的高级语言,启发了现代语言Pascal、Ada、C语言等的出现。
60年代编程语言已经比较活跃,在目前流行榜单上排名最靠前的是SAS名列第21位,上榜的还有COBOL排在第30位,Lisp排在第32位。SAS是用于统计,COBOL是商业管理,Lisp是人工智能语言,相较而言专业性都比较强,如果要在榜单中选取一位作为代表的话,还是COBOL比较合适,因为他使用广泛。
与他们同时代的还有很多闻名遐迩的语言比如Basic,BCPL,Pascal(60年代末,但命名于1971年),他们不在榜中,但是他们对整个计算机领域的影响是非常巨大的。Basic是微电脑的主要语言之一,由它发展而来的语言有很多,比如榜单中排名第6位的Visual Basic.net 以及排名第22位的Visual Basic都源自于它,这两款都是微软基于Basic推出的可视化编程,Basic对软件巨头微软的影响可谓功不可没。BCPL语言日后发展了赫赫有名的C和C++,因此,这个时代的代表应该有它的一席之地。而Pascal是最早的结构化编程语言,早期Apple Lisa和早期Mac的开发语言,之后发展的比较有影响力的语言是Delphi。
70年代编程语言在前人的积累下发展的更快速,这个时代的代表毫无疑问是C,在本次排行榜中第2名,2019年的年度冠军是C。与C同源的另一门语言C++(榜中第4位)也是编程语言中的佼佼者,还有一个是SQL语言(榜中第9名),虽然不是通用的编程语言,但只要是程序员没有不用他的。70年代的语言还是非常强悍的,占据了流行榜前十席位的三个。
80年代编程语言占据了榜单中20%的席位,而最具代表的是这几年火爆的不行的Python,本次流行榜中第3名,也是多次的年度冠军获得者,与他同时代的还有R、Objective-C,MatLab和Perl等。
90年代编程语言进一步飞跃不仅占据榜单中22%的席位,还占了榜单中前十席位的三个。最具代表性的应该是榜单中排名第1的Java,程序员当中几乎无人不知晓,Javascript(榜单第7名)和PHP(榜单第8名)也是知名度相当高的,做web开发的应该都知道。
00后持续创新编程语言占据了榜单中22%的席位,最具代表的是榜单中第5名的C#,Swift是苹果推出的Objective-C的继任者是下一代IOS编程语言,Go是Google开发的类C语言。Scratch名列第24位,虽然不如其他语言受欢迎,但它却是青少年编程的佼佼者,在青少年变成市场占据了大半江山。
10后作为编程语言最年轻的一带,可能还没有到沉淀下来的时候,还没有一个挤进前20的名单中,相较而言可能Dart和Rust好一点。
年代 | 上榜数 | 比例 | 语言 |
40年代 | 1 | 2% | 汇编 |
50年代 | 2 | 4% | Fortran,RPG |
60年代 | 4 | 8% | COBOL,Lisp,SAS |
70年代 | 6 | 12% | ML,C,SQL,Scheme,Logo,C++,PL/SQL |
80年代 | 10 | 20% | R,Objective-C,MATLAB,OpenEdge ABL,PostScript,LabVIEW,Perl,Erlang,Transact-SQL,Python |
90年代 | 11 | 22% | Haskell,Visual Basic,Java,ABAP,Lua,JavaScript,PHP,Ruby,Delphi/Object Pascal,Ada,ActionScript |
21世纪00年代 | 11 | 22% | C#,Visual Basic .NET,D,LiveCode,Scala,Groovy,Swift,F#,PowerShell,Scratch,Go |
21世纪10年代 | 5 | 10% | Kotlin,Dart,Julia,TypeScript,Rust |
榜单第1-25名 | 榜单第26-50名 | |||||
名次 | 编程语言 | 出现时间 | 名次 | 编程语言 | 出现时间 | |
1 | Java | 1995 | 26 | Groovy | 2003 | |
2 | C | 1972 | 27 | Transact-SQL | 1988 | |
3 | Python | 1989 | 28 | F# | 2005 | |
4 | C++ | 1979 | 29 | Rust | 2014 | |
5 | C# | 2000 | 30 | COBOL | 1960 | |
6 | Visual Basic .NET | 2001 | 31 | ABAP | 1992 | |
7 | JavaScript | 1995 | 32 | Lisp | 1960 | |
8 | PHP | 1995 | 33 | Kotlin | 2010 | |
9 | SQL | 1974 | 34 | Logo | 1976 | |
10 | Swift | 2004 | 35 | RPG | 1959 | |
11 | Go | 2009 | 36 | Lua | 1993 | |
12 | Assembly language | 1946 | 37 | Fortran | 1956 | |
13 | R | 1980 | 38 | PowerShell | 2006 | |
14 | D | 2001 | 39 | Ada | 1995 | |
15 | Ruby | 1995 | 40 | LabVIEW | 1986 | |
16 | MATLAB | 1984 | 41 | Erlang | 1987 | |
17 | PL/SQL | 1979 | 42 | Julia | 2012 | |
18 | Delphi/Object Pascal | 1995 | 43 | ML | 1970 | |
19 | Perl | 1987 | 44 | Scheme | 1975 | |
20 | Objective-C | 1980 | 45 | Haskell | 1990 | |
21 | SAS | 1966 | 46 | TypeScript | 2012 | |
22 | Visual Basic | 1991 | 47 | OpenEdge ABL | 1984 | |
23 | Dart | 2011 | 48 | LiveCode | 2001 | |
24 | Scratch | 2007 | 49 | PostScript | 1985 | |
25 | Scala | 2003 | 50 | ActionScript | 1995 |
说明:
1、2020年2月编程语言全球流行榜前50名来源与对TIOBE榜单的整理。说明:
2、出现时间的统计是作者根据百度文库、官网资料及其他网络资料综合得出,如资料中有明确的首次发版时间,就以发版时间为准,如果没有发版时间就用资料中提到的项目开发时间或首次公布时间为准。如您有其他意见,欢迎在评论区反馈,并附上资料及出处,作者核实后会及时更正文章。