编程语言大约有600多种。编程语言的需求和流行程度每年都在变化。另外,新的编程语言也具有吸引人的功能。
那么,应该学习哪种编程语言?学习新的编程语言始终需要我们投入大量的时间和智力。如果是一位经验丰富的开发人员,或者已经知道几种编程语言,则可以学习一种小众的现代语言。
但是,如果打算在2020年开始编程生涯,或者想学习第一或第二种编程语言,那么最好学习一种主流的和成熟的编程语言。在这里,我将基于以下条件列出各种编程语言:
另外,我们总结了编程语言的历史背景、关键功能和主要用例。
1. Python
当Guido van Rossum在1990年代开发Python作为他的副项目时,没有人认为这有一天会是最受欢迎的编程语言。考虑到所有公认的排名和行业趋势,我将Python视为整体上排名第一的编程语言。
Python尚未像Java或C / C ++那样迅速普及。而且,Python并不是一种破坏性的编程语言。但是从一开始,Python就专注于开发人员的经验,并试图降低编程的障碍,以便学校的孩子也可以编写生产级代码。
在2008年,Python进行了大修和改进,并通过引入Python 3导致了重大更改。
如今,Python无处不在,并已用于软件开发的许多领域,但丝毫没有放缓的迹象。
3个主要功能:
人气:
在过去的几年中,Python的需求出现了巨大的增长,并且没有放缓的迹象。编程语言排名网站PYPL将Python排名为第一大编程语言,在2019年获得了可观的普及度:
资料来源:PYPL
而且,根据GitHub存储库的贡献,Python已超越Java,成为第二大最受欢迎的语言:
资料来源:Octoverse
此外,StackOverflow开发人员调查还将Python排名为第二大最受欢迎的编程语言(第四大最受欢迎的技术):
资料来源:2019年StackOverflow开发人员调查
另一个编程语言排名网站TIOBE在去年将Python排名第三,并获得了可观的增长:
资料来源:TIOBE
根据GitHub Octoverse的说法,由于去年Python增长了50%,因此Python仍然有机会在今年的排名中进一步提高:
资料来源:Octoverse
StackOverflow开发人员调查将Python列为第二受欢迎的编程语言:
资料来源:2019年StackOverflow开发人员调查
大多数较旧的主流编程语言都具有稳定或下降的吸引力。不过,Python在这里是个例外,并且在最近五年中呈上升趋势,从Google趋势可以明显看出:
资料来源:Google趋势
人才市场:
根据Indeed的说法,Python是美国就业市场上要求最严格的编程语言,在2020年1月发布的最高职位为74K。此外,Python以12万美元的年薪排名第三。
资料来源:Indeed
此外,StackOverflow开发人员调查还显示,与其他主流编程语言相比,Python开发人员的薪水较高,而经验却相对较低:
资料来源:2019年StackOverflow开发人员调查
主要用例:
2. JavaScript
在第一次浏览器大战中,Netscape 已分配布伦丹·艾希(Brendan Eich) 为其浏览器开发一种新的编程语言。布伦丹·艾希(Brendan Eich)仅用了10天的时间就开发出了最初的原型,剩下的就是历史了。由于语言设计欠佳且缺乏功能,软件开发人员常常在早期嘲笑JavaScript。
多年来,JavaScript已发展成为一种多范例、高级、动态编程语言。JavaScript的第一个重大突破是在2009年,当时Ryan Dahl发布了跨平台JavaScript运行时Node.js,并使JavaScript可以在服务器端运行。
JavaScript的另一项重大突破出现在2010年左右,当时Google发布了基于JavaScript的Web开发框架AngularJS。
如今,JavaScript是世界上使用最广泛的编程语言之一,几乎可以在任何地方运行:浏览器,服务器,移动设备,云,容器,微控制器。
3个主要功能:
人气:
JavaScript是所有平台上普遍使用和大规模采用的最高级编程语言之一。
根据GitHub存储库的贡献,Octoverse连续五年将JavaScript视为排名第一的编程语言:
资料来源:Octoverse
此外,2019年StackOverflow开发人员调查将JavaScript列为最受欢迎的编程语言和技术:
资料来源:2019年StackOverflow开发人员调查
另一个编程语言流行网站PYPL将JavaScript排名为第三大流行编程语言:
资料来源:PYPL
编程语言流行网站TIOBE将JavaScript排名为第七大流行编程语言:
资料来源:TIOBE
根据StackOverflow开发人员调查,JavaScript也被列为最受欢迎的11种编程语言:
资料来源:2019年StackOverflow开发人员调查
JavaScript的趋势相对稳定,如Google趋势所示:
资料来源:Google趋势
人才市场:
在美国就业市场上,Indeed在2020年1月发布的5.7万份Job中,将JavaScript排名为第三高要求的编程语言。JavaScript的平均年薪为11.4万美元,在薪水方面排名第四
资料来源:Indeed
此外,StackOverflow开发人员调查显示,JavaScript开发人员的经验相对较低,可以赚取适度的薪水:
资料来源:2019年StackOverflow开发人员调查
主要用例:
3. Java
Java是迄今为止最具破坏性的编程语言之一。上世纪90年代,业务应用程序主要是使用C ++开发的,它非常复杂且依赖于平台。James Gosling和他在Sun的团队通过提供一种更简单的,面向对象的,解释性编程语言(也支持多线程编程),降低了开发业务应用程序的障碍。
Java通过开发Java虚拟机(JVM)实现了平台独立性,该虚拟机从开发人员那里提取了底层操作系统,并提供了第一种“ 一次编写,随处运行 ”编程语言。此外,JVM提供了生成垃圾收集,该垃圾收集管理对象生命周期。
近年来,由于高度受开发人员欢迎的现代语言以及其他语言(尤其是Python,JavaScript)的兴起,Java失去了部分市场。而且,JVM体积庞大,因此对云不太友好。甲骨文最近对JDK收取了高额的许可费,这将进一步削弱Java的受欢迎程度。
幸运的是,Java正在努力解决其缺点,并试图通过GraalVM计划使Java适用于云。另外,在OpenJDK中,可以免费使用专有的Oracle JDK。
Java仍然是企业的第一编程语言。
3个主要功能:
人气:
Java发布仅五年之后,它便成为第三大最受欢迎的编程语言,并且在接下来的二十年里始终保持在前三名之列。在流行的TIOBE排名中,这是Java的长期历史:
资料来源:TIOBE
在最近几年中,Java的流行度有所下降,但是根据TIOBE的说法,它仍然是最流行的编程语言,如下所示:
资料来源:TIOBE
资料来源:TIOBE
根据GitHub存储库的贡献,Java在2014–2018年期间排名第一,去年仅滑落至第三位:
资料来源:Octoverse
另一个流行的编程语言排名网站PYPL将Java排名为第二大最受欢迎的编程语言:
资料来源:PYPL
StackOverflow开发人员调查还将Java排名很高,并且仅被JavaScript和Python编程语言所取代:
资料来源:2019年StackOverflow开发人员调查
根据Google的趋势,Java在过去五年中不断失去吸引力:
资料来源:Google趋势
人才市场:
根据Indeed,Java是美国第二高要求的编程语言,2020年1月发布了69 K Job。此外,Java开发人员的年薪排名第六高(10.4万美元):
资料来源:Indeed
根据2019年StackOverflow开发人员调查,Java经过几年的经验提供了适中的薪水:
资料来源:2019年StackOverflow开发人员调查
主要用例:
4. C#
在2000年,科技巨头Microsoft决定创建自己的面向对象的C语言(如C#)作为其.NET计划的一部分,并将对其进行管理(在Java等虚拟机上运行)。资深的语言设计师Anders Hejlsberg将C#设计为Microsoft 公共语言计划(CLI)平台的一部分,该平台将许多其他语言(主要是Microsoft的语言)编译成一种中间格式,该格式可在名为Common Language Runtime(CLR)的运行时上运行。
在早期,C#被批评为模仿Java。但是后来,两种语言有所不同。此外,Microsoft的C#编译器/运行时许可也不总是很清楚。尽管Microsoft当前未根据Microsoft Open Specification Project强制实施其专利,但它可能会更改。
如今,C#是一种多范式编程语言,不仅在Windows平台上广泛使用,而且在iOS / Android平台(由于Xamarin)和Linux平台上也广泛使用。
3个主要功能:
人气:
流行语言排名网站TIOBE在2020年1月排名第5位,获得了可观的收益:
资料来源:TIOBE
此外,Octoverse已将C#列为GitHub存储库贡献的第五种流行编程语言:
资料来源:Octoverse
StackOverflow开发人员调查已将C#列为第四受欢迎的语言(2019年第七受欢迎的技术):
资料来源:2019年StackOverflow开发人员调查
有趣的是,StackOverflow开发人员调查将C#列为最受欢迎的第十种编程语言(远高于Java):
资料来源:2019年StackOverflow开发人员调查
从Google的趋势可以明显看出,C#在过去的几年中并未被大肆宣传,如下所示:
资料来源:Google趋势
人才市场:
实际上,确实为美国的C#开发人员发布了3万2千个职位,这使C#成为该列表中要求最严格的编程语言的第5位。C#的年薪为$ 96 K,在此列表中排名第8:
资料来源:的确
关于StackOverflow开发人员的调查,就全球平均薪资而言,C#高于Java(尽管有更多经验):
资料来源:2019年StackOverflow开发人员调查
主要用例:
5. C
在1960年代和1970年代,CPU的每个周期和每个字节的内存都非常昂贵。贝尔实验室工程师Dennis Ritchie开发了一种过程通用编程语言,该语言在1969-1973年间直接编译为机器语言。C编程提供对内存的低级访问,并提供对底层硬件的完全控制。
多年来,C成为最常用的编程语言之一。此外,C可以说是历史上最具破坏性和影响力的编程语言,并且几乎影响了该列表中的所有其他语言。
尽管C因其偶然的复杂性,不安全的编程和缺乏功能而经常受到批评。同样,C依赖于平台,即C代码不可移植。但是,如果您想充分利用硬件,那么C / C ++或Rust是您唯一的选择。
3个主要功能:
人气:
C是该列表中最古老的编程语言,并且在整个行业中占据着主导地位达47年之久。从TIOBE的长期排名历史可以明显看出,C还统治了编程语言的流行度排名,超过了其他任何语言:
资料来源:TIOBE
根据TIOBE排名,C在2019年获得了巨大的流行并成为第二流行的语言,:
资料来源:TIOBE
资料来源:TIOBE
根据GitHub存储库的贡献,Octoverse还将C排在第9位最受欢迎的语言中:
资料来源:Octoverse
StackOverflow开发人员调查还将C排在第12位(考虑到编程语言,则排名第8位):
资料来源:2019年StackOverflow开发人员调查
Google趋势在过去五年中也显示出C的相对稳定趋势。
资料来源:Google趋势
人才市场:
根据Indeed的说法,在美国,有28K职位供C开发人员使用,这使C成为要求最高的第六种编程语言。就薪水而言,C在Java($ 104 K)中排名第六:
资料来源:Indeed
StackOverflow开发人员调查显示,与Java,Python等相比,C开发人员可以赚取平均工资,但需要更长的时间才能实现这一目标:
资料来源:2019年StackOverflow开发人员调查
主要用例:
6. C ++
Bjarne Stroustrup在1970年代曾与贝尔实验室的Dennis Ritchie(C的创建者)合作。受C影响很大,他首先创建了C ++作为C的扩展,并添加了面向对象的功能。随着时间的流逝,C ++已经发展成为一种多范例的通用编程语言。与C一样,C ++也提供低级内存访问,并直接编译为机器指令。
C ++还提供对硬件的完全控制,但会带来意外的复杂性,并且不提供语言级别的内存安全性和并发安全性支持。另外,C ++提供了太多的功能,并且是最复杂的编程语言之一。
由于所有这些因素及其平台依赖性,在2000年代初,C ++在企业软件开发和大数据领域中已不如Java流行。
随着GPU,容器化,云计算的兴起,C ++再次流行起来,因为它可以快速适应自身以利用硬件或生态系统的变化。
如今,C ++是业界最重要且使用最广泛的编程语言之一。
3个主要功能:
人气:
C ++是此列表中第二古老的编程语言,在TIOBE编程语言排名中排名第四:
资料来源:TIOBE
Octoverse在GitHub存储库贡献方面将C ++排名为第六位:
资料来源:Octoverse
此外,2019年StackOverflow开发人员调查将C ++列为第9最受欢迎的技术(第6最受欢迎的语言):
资料来源:2019年StackOverflow开发人员调查
尽管C ++面临着来自Rust或Go之类的现代编程语言的激烈竞争,但在过去五年中,它仍然引起了稳定的关注:
人才市场:
实际上,C ++以41 K个职位发布的要求成为排名第四的最苛刻的编程语言。此外,C ++开发人员每年可赚取$ 108 K,名列第五:
资料来源:的确
StackOverflow开发人员调查显示,尽管Java的使用经验更长,但与Java相比,C ++开发人员的薪水更高:
资料来源:2019年StackOverflow开发人员调查
主要用例:
7. PHP
与Python一样,PHP是90年代由单个开发人员作为辅助项目开发的另一种编程语言。软件工程师Rasmus Lerdorf最初将PHP创建为一组用C编写的通用网关接口二进制文件,以创建动态Web应用程序。后来,更多的功能被添加到PHP产品中,并且有机地演变为成熟的编程语言。
当前,PHP是一种通用的动态编程语言,主要用于开发服务器端Web应用程序。
随着基于JavaScript的客户端Web应用程序开发的兴起,PHP失去了吸引力和流行性,并且PHP已过时。与流行的看法相反,PHP不会很快消失,尽管它的流行将逐渐减少。
3个主要功能:
人气:
编程语言排名网站TIOBE在2020年1月将PHP排名为第八大最受欢迎的编程语言。尽管PHP的长期排名历史表明PHP已经过时了,并逐渐失去了吸引力:
资料来源:TIOBE
根据GitHub存储库的贡献,Octoverse将PHP排名为第四大最受欢迎的编程语言:
资料来源:Octoverse
根据2019年StackOverflow开发人员调查,PHP是第五种最受欢迎的编程语言(第八种最受欢迎的技术):
资料来源:2019年StackOverflow开发人员调查
尽管PHP仍然是使用最广泛的编程语言之一,但从Google趋势可以明显看出,它的趋势正在缓慢下降:
资料来源:Google趋势
人才市场:
求职网站的确在2020年1月将PHP排名第一,成为美国职位市场上要求最严格的编程语言,排名第7,其职位为18K。此外,PHP开发人员可以期望得到合理的薪水(9万美元),从而使他们在该类别中排名第10:
资料来源:的确
StackOverflow开发人员调查显示,PHP是2019年收入最低的编程语言:
资料来源:2019年StackOverflow开发人员调查
主要用例:
8.Swift
Swift是也出现在我的列表中的仅有的两种编程语言之一:“ 现在可以学习的7大现代编程语言 ”。由克里斯·拉特纳(Chris Lattner)领导的一组苹果工程师致力于开发一种新的Swift编程语言,主要用于在Mac和iOS平台上替代Objective-C。
它是一种多范例通用用途的已编译编程语言,还可以提高开发人员的工作效率。Swift支持LLVM(由Chris Lattner开发)编译器工具链,例如C / C ++,Rust。
Swift与Objective-C代码库具有出色的互操作性,并且已经将自己确立为iOS App开发中的主要编程语言。作为一种经过编译且功能强大的语言,Swift在其他领域也越来越受欢迎。
3个主要功能:
人气:
与其他现代编程语言一样,Swift在开发人员中也非常受欢迎,并在最受欢迎的语言列表中排名第六:
Swift在其第一个稳定发行版发布仅五年后,就已在TIOBE索引中跻身最受欢迎的编程语言的前十名:
资料来源:TIOBE
另一个流行的编程语言排名网站PYPL将Swift排名为第9大最受欢迎的编程语言:
资料来源:PYPL
StackOverflow开发人员调查将Swift排名为第15名最受欢迎的技术(第12名最受欢迎的编程语言):
资料来源:2019年StackOverflow开发人员调查
Google的趋势还表明,Swift的普及程度急剧上升:
资料来源:Google趋势
人才市场:
实际上,Swift凭借6 K的空缺排名在美国要求最严格的语言中排名第9。在薪资方面,Indeed将Swift排在第二位,年薪为$ 125 K:
资料来源:Indeed
StackOverflow开发人员调查还显示,与Objective-C相比,Swift开发人员可以以相对较少的经验获得高薪:
资料来源:2019年StackOverflow开发人员调查
主要用例:
9.Go
与Swift一样,Go只是该列表中最近十年的第二种编程语言。同样,像Swift一样,Go是由科技巨头创建的。
在过去的十年中,Google令人沮丧地发现,现有的编程语言无法使用看似无限的Google硬件和人力资源。例如,编译Google的C ++代码库花费了半个小时。此外,他们还想用新语言解决发展规模问题。
Google中的著名软件工程师Rob Pike(UTF-8)和Ken Thompson(UNIX OS)创建了一种新的,实用的,易于学习的,高度可扩展的系统编程语言Go,并于2012年发布。Go 具有运行时和垃圾收集器(几兆字节),但是此运行时打包在生成的可执行文件中。
尽管Go有点功能贫乏,但在短时间内它已成为主流编程语言。
3个主要功能:
人气:
像Swift一样,Go的知名度也在迅速提高。
在几乎所有比较网站的流行编程语言中,Go都排名很高,并且已经超过了许多现有语言。以下是2020年1月的TIOBE指数排名,其中Go排名第14:
资料来源:TIOBE
2019年StackOverflow开发人员调查还将Go排名为第13名最受欢迎的技术(第10名最受欢迎的编程语言):
资料来源:2019年StackOverflow开发人员调查
根据Stackoverflow的调查,Go是最受欢迎的9种编程语言之一:
资料来源:2019年StackOverflow开发人员调查
根据GitHub Octoverse的说法,Go还是增长最快的10种语言之一:
资料来源:Octoverse
Go的日益普及也反映在Google的趋势中,这表明Go在过去五年中越来越受关注:
资料来源:Google趋势
人才市场:
实际上,到2020年1月,Go以4 K的空缺排名,成为Go要求最高的语言中排名第十。在薪资方面,Go排名第9:
资料来源:Indeed
2019年StackOverflow开发人员调查显示,Go是收入最高的编程语言之一:
资料来源:2019年StackOverflow开发人员调查
主要用例:
10.Ruby
Ruby是该列表中的第三种编程语言,由个人开发人员在1990年代开发。日本计算机科学家松本行弘(Yukihiro Matsumoto)创造了Ruby作为“面向对象的脚本语言”,并于1995年发布。
Ruby后来发展成为一种解释型,动态类型化的高级多范式通用编程语言。Ruby是用C实现的,并提供垃圾回收。
像Python一样,Ruby重点关注开发人员的生产力和开发人员的幸福感。尽管Ruby目前还不是被炒作的语言之一,但是对于新开发者来说,这是一门很好的学习语言,它具有平坦的学习曲线。
3个主要功能:
人气:
TIOBE在2020年1月以巨大的积极举措将Ruby排名为第11大最受欢迎的编程语言:
资料来源:TIOBE
在GitHub存储库贡献中,Octoverse还将Ruby评为2019年最受欢迎的编程语言排名第10位:
资料来源:Octoverse
2019年StackOverflow开发人员调查将Ruby列为第9最受欢迎的编程语言(第12最受欢迎的技术):
资料来源:2019年StackOverflow开发人员调查
近年来,Ruby并不是一门大肆宣传的语言,但根据Google的发展趋势,它一直保持着吸引力:
资料来源:Google趋势
人才市场:
在美国的就业市场上,Ruby开发人员可以拿到丰厚的薪水,并居于Indeed的第一位。此外,Indeed在2020年1月为Ruby开发人员发布了1万6千个职位,这使Ruby在此列表中要求最严格的编程语言排名第8。
资料来源:Indeed
2019年StackOverflow开发人员调查还显示,Ruby开发人员可以以相对较低的经验获得高薪:
资料来源:2019年StackOverflow开发人员调查