导读:总结年最火的编程语言,需要衡量语言背景、特点、普及程度、薪资等很多角度。今天介绍的语言涉及Python、Javascript、C#、C。建议先收藏再看!
译者:欧剃来源:优达学城Udacity(ID:youdaxue)世界上目前现有大约种编程语言,它们的使用趋势和流行程度每年都在变化,而新的编程语言也不断涌现,带来各种全新的特性。那你该学哪一种语言呢?学习语言的过程,总要投入不少时间和脑力。如果你是一名经验丰富的老程序员,或者你已经掌握了几种编程语言,也许你也该了解一门更现代,薪资更高,专业性更强的编程语言,进一步提升你的个人竞争力。但如果你是一名刚准备入门的编程新人,或是打算学习你的第一种编程语言,也许你该先学习一种主流的通用编程语言。今天文章里推荐的这些编程语言都满足以下几个标准:在软件开发行业中已经牢固确立其地位的主流编程语言在著名的编程语言排行网站上名列前茅受欢迎程度比较稳定或正在上升,没有急剧下降社区生态良好,拥有大量的库、框架或工具支持在就业市场上的平均薪资水平较高同时我们也会对这些语言的历史背景、关键特性以及主要用途进行概括。让我们开始吧!01Python关于Python我已经不想说太多了。GuidovanRossum在年代创造Python语言的时候,只是把它当作一个业余项目来做。没人能想到这个项目有朝一日居然成为了全世界最热门的编程语言。在综合考虑了所有著名的排行榜和行业趋势后,我觉得Python是当之无愧的第一。Python未曾像Java或者C/C++当年那样迅速普及,也不是一种颠覆性的语言。它从一开始就专注于改善程序员的编程体验,降低编程学习的难度,即使是学生也能写出真正可用的代码。在年,Python发布了新一代Python3版本,引入了许多突破性的重大变化和改进。关键特性:Python的核心竞争力在于它的语言设计。它是一门富有创造性的,优雅、简单同时也强大的语言。Python为“开发体验”设置了*金标准,这也深刻地影响了后来那些现代编程语言,比如Go、Julia等。Python与C/C++有着原生级别的整合能力,可以无缝地将许多CPU密集型任务用C/C++来完成。同时,Python提供了许多强大的工具组,涵盖了数学、统计学和计算机科学等方面——比如NumPy、Pandas、SciPy、Scikit-Learn等等。因此,Python在机器学习、深度学习、数据科学和其他一些科学领域都有着绝对的优势。Python拥有非常活跃的社区和支持。无论你需要处理什么类型的工作——比如商业软件开发、数据科学甚至人工智能——你都能找到足够好的Python库和框架。普及程度:在过去的几年中,对Python的需求出现了巨大的增长,并且没有放缓的迹象。编程语言排名网站PYPL将Python评为年增长最快的编程语言,全球同比增长4.3%,总份额达到了29.72%。同时,Python在Github的语言排名中也上升了一位,超越Java取得了第二的位置:而StackOverflow开发者调查显示,Python在最受欢迎的编程语言中排行第二(在所有技术工具中排行第四):和大部分传统的主流编程语言的热度都居于稳定,或是略微下降的趋势相反,Python在近5年的Google趋势上一直保持了不错的上升势头:就业市场:根据Indeed网站的分析,Python是美国就业市场上最炙手可热的编程语言,年1月的招聘职位数量达到了最高7.4万个,平均年薪水平排行第三,达到12万美元。而StackOverflow开发者调查显示,比起其他主流编程语言,Python开发者所需的工作经验相对较少,而获得的平均薪资相对更高:主要用途:数据科学数据分析人工智能、深度学习商业软件开发Web开发02JavaScript在第一次网页浏览器战争期间,Netscape让BrendanEich开发一款用于网景浏览器的新编程语言。BrendanEich只用了大约10天就搞出了一个最初的原型,后来的事情你们都知道了。早期,软件开发者经常嘲笑JavaScript糟糕的语言设计、各种功能的欠缺。然而随着多年的发展,Javascript已经变成了一种多范式的高级、动态编程语言。Javascript最早的一个重大突破,是年RyanDahl发布的跨平台JavaScript运行环境Node.js,它让JavaScript走出了浏览器,能够在服务器段运行。而JavaScript的另一个巨大飞跃,则是年Google开发的JavaScript网络开发框架AngularJS。如今,Javascript已经成了全世界使用最广泛的编程语言,基本上你在任何地方都能发现它的身影:浏览器、服务器、移动设备、云端、容器……甚至微控制器等等。关键特性:JavaScript是无可争议的浏览器编程语言之王。如今的Web开发,已经基本上被各种基于JavaScript的单页应用(SPA)开发框架所垄断,比如React、Vue.js以及AngularJS。在Node.js的加持下,JavaScript提供的事件驱动编程特性非常适合于完成I/O密集型任务。如今JavaScript和Node.js能在几乎所有平台上运行,包括各种服务器和移动设备。JavaScript在近几年已经完成了大规模现代化改造和提升,特别是从、年以来,最新的ES5、ES6版本加入了许多现代特性,已经和十几年完全不一样了。普及程度:JavaScript是所有平台上被广泛采用的高级编程语言。它在GitHub贡献排名中连续五年蝉联第一:同时,StackOverflow年度开发者调查显示,JavaScript在所有语言和技术工具中的受欢迎程度都是第一名。Google搜索趋势显示,JavaScript的总体热度保持平稳:就业市场:根据Indeed网站的分析,JavaScript是美国就业市场上需求量排行第三的编程语言,年1月的招聘职位数量达到了最高5.7万个,平均年薪水平排行第四,达到11.4万美元。而StackOverflow开发者调查显示,比起其他主流编程语言,JavaScript开发者所需的工作经验也不太多,获得的平均薪资比较居中:主要用途:Web开发后端开发移动App开发无服务器计算页游开发03JavaJava是至今为止最具颠覆性的编程语言之一。在上个世纪90年代,许多商业应用程序都是用C++进行开发,导致这些软件的维护非常复杂,而且更加依赖于系统平台。JamesGosling和他在Sun公司的团队一起创造的Java语言,通过提供更加简单、面向对象的解释型编程语言(也支持多线程编程),降低了开发商业应用程序的门槛。Java使用Java虚拟机(JVM)对底层操作系统进行抽象,首创了“编写一次,到处运行”的跨平台编程能力。同时JVM也提供了最早的垃圾回收机制,以管理对象的生命周期。近年来,Java的市场空间被其他更加“面向开发者”的新兴编程语言(比如Python、JavaScript)所蚕食。而同时,JVM的臃肿体积使它不太适应现在的云计算态势。在收购Sun之后,Oracle对JDK收取高额的许可费用,这也进一步削弱了Java的受欢迎程度。不过Java依然还是大型企业开发商业产品时的首选编程语言。关键特性:Java提供了强大、特性丰富、多范式的解释型编程语言,学习曲线也比较适中,开发生产力强大。Java严格向后兼容,这对商业软件来说是至关重要的。Java并不像Python和Scala那样引入巨大的突破性改变,所以它的稳定性良好,这也使它继续成为商业产品开发的首选。Java运行时JVM可以算是软件工程的杰作,也是业内最佳的虚拟机之一。通过25年来不断的工程技术革新,Java在JVM的加持下,成为性能强大,功能完善的编程语言。此外,JVM还为Java提供了一些高级垃圾回收机制。普及程度:在发布5年以后,Java就成了普及程度全球第三的编程语言,并且将这一领先优势保持了20年之久。下面是TIOBE网站统计的历史数据:在Github贡献排名中,-年Java都排第二,直到年被Python超越:Google搜索趋势显示,Java的总体热度相对缓慢下降:就业市场:根据Indeed网站的分析,Java是美国就业市场上需求量排行第二的编程语言,年1月的招聘职位数量达到了最高6.9万个,平均年薪水平排行第六,达到10.4万美元。而StackOverflow开发者调查显示,Java开发者需要几年的工作经验,获得的平均薪资比较居中:主要用途:商业软件开发安卓App开发大数据处理网页开发04C#年,科技巨头微软打算构建一个自己的面向对象C语言,作为他们.NET计划的一部分。C#类似Java,也需要在虚拟机运行。资深语言设计师AndersHejlsberg将C#设计为微软公共语言计划(CommonLanguageInitiative,CLI)平台的一部分,该平台将许多其他语言(主要是微软设计的语言)编译成一种中间格式,该格式可以在名为公共语言运行库(CommonLanguageRuntime,CLR)的平台上运行。在刚问世时,C#被人吐槽说是Java的仿制品,当然,后来这两种语言分别都有了巨大的改变。此外,微软对C#编译器/运行库的许可授权并不总是很清晰,虽然微软目前基于开放规格项目,没有强制实施它的专利,但这也许哪天就变了。如今的C#,是一门被广泛采用的多范式编程语言,它不但能运行在Windows平台,也能运行在iOS/Android平台(感谢Xamarian的贡献),甚至是Linux平台上。关键特性:AndersHejlsberg做出了卓越的贡献,把C#从Java的阴影中带了出来,赋予了它自己的身份。从开发者的编程体验来说,C#比Java更好。C#受到微软官方支持,在业界已经有了20年的历史,拥有丰富的第三方库和框架等软件生态。比如在Windows上进行Web开发的ASP.NET等。就像Java一样,C#也是跨平台的编程语言(这都要归功于CLR),能在Windows、Linux和各种移动设备上运行。普及程度:编程语言排名网站TIOBE将C#列为排行第5的编程语言,近一年来它的评分有了显著增长。同时,GitHub贡献排行中,C#的受欢迎程度也排到了前5:Google搜索趋势显示,C#的总体热度相对缓慢下降:就业市场:根据Indeed网站的分析,C#是美国就业市场上需求量排行第五的编程语言,年1月的招聘职位数量达到了最高3.2万个,平均年薪水平排行第八,达到9.6万美元。而StackOverflow开发者调查显示,C#开发者获得的平均薪资比Java高一些,但需要的经验(工作年限)可多了不少:主要用途:服务端开发应用软件开发网页开发游戏开发Windows平台上的软件开发05C上个世纪60~70年代,每一秒的CPU运算时间,每一比特的内存空间都相当宝贵。在~年间,贝尔实验室的工程师DennisRitchie创造出了一种结构化的通用编程语言,它的代码能直接被编译成计算机可直接读取运行的机器码。C语言提供了能访问底层物理内存的方法,还让程序员能够获得底层硬件的全部控制权。多年以来,C语言一直是使用最为广泛的编程语言。除此之外,C语言可以说是史上最具颠覆性和影响力的编程语言,今天我们介绍的几乎所有编程语言里,或多或少都留下了C语言带来的印记。尽管C语言因其较大的偶然复杂度、不安全的代码,依赖于平台(不能跨平台运行)以及缺少许多功能而被人诟病,但如果你要将硬件的性能用到极致,那你只能选C/C++或者Rust语言。关键特性:由于C语言能够访问到底层内存,并能被编译成机器码,所以它是最快速也最强大的编程语言之一。C语言能完全掌控底层硬件。C语言能在每个平台上编译运行,利用各种硬件优势,不管是GPU、TPU、容器、云、移动设备还是微控制器。C语言是“编程语言的编程语言”。许多著名的编程语言,它们的编译器都是用C写的,比如:Ruby、PHP还包括Python。普及程度:C语言是今天介绍的所有语言中最古老的,它统治了整个编程行业已有47年。在TIOBE的长期热度榜上,C语言从年起屠榜至今,最差不过也就是偶尔落回第二名而已:同样是TIOBE的年度榜单,C语言依旧力压Python,紧跟在Java之后:Github贡献排名中,C语言近几年不断下滑,如今排在第九名:Google搜索趋势显示,C语言的总体热度在最近五年里还算相对稳定:就业市场:根据Indeed网站的分析,C是美国就业市场上需求量排行第六的编程语言,年1月的招聘职位数量达到了最高2.8万个,平均年薪水平排行第六,达到10.4万美元。而StackOverflow开发者调查显示,C开发者获得的平均薪资和Java差不多,但需要的经验(工作年限)可多了不少:主要用途:操作系统编程游戏开发智能设备(IoT)和实时系统机器学习、深度学习嵌入式系统开发来源: