2020年最火编程语言出炉!关键特性普及程度薪资全方位解读(Python/Js/Java/C#/C篇)
Posted 优达学城Udacity
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2020年最火编程语言出炉!关键特性普及程度薪资全方位解读(Python/Js/Java/C#/C篇)相关的知识,希望对你有一定的参考价值。
译者:欧剃
编辑:肉松
世界上目前现有大约 600 种编程语言,它们的使用趋势和流行程度每年都在变化,而新的编程语言也不断涌现,带来各种全新的特性。
那你该学哪一种语言呢?
学习语言的过程,总要投入不少时间和脑力。
如果你是一名经验丰富的老程序员,或者你已经掌握了几种编程语言,也许你也该了解一门更现代,薪资更高,专业性更强的编程语言,进一步提升你的个人竞争力。
但如果你是一名刚准备入门的编程新人,或是打算学习你的第一种编程语言,也许你该先学习一种主流的通用编程语言。
今天文章里推荐的这些编程语言都满足以下几个标准:
在软件开发行业中已经牢固确立其地位的主流编程语言
在著名的编程语言排行网站上名列前茅
受欢迎程度比较稳定或正在上升,没有急剧下降
社区生态良好,拥有大量的库、框架或工具支持
在就业市场上的平均薪资水平较高
同时我们也会对这些语言的历史背景、关键特性以及主要用途进行概括。让我们开始吧!
Python
关于 Python 我已经不想说太多了。
Guido van Rossum 在 1990 年代创造 Python 语言的时候,只是把它当作一个业余项目来做。没人能想到这个项目有朝一日居然成为了全世界最热门的编程语言。在综合考虑了所有著名的排行榜和行业趋势后,我觉得 Python 是当之无愧的第一。
Python 未曾像 Java 或者 C/C++ 当年那样迅速普及,也不是一种颠覆性的语言。它从一开始就专注于改善程序员的编程体验,降低编程学习的难度,即使是学生也能写出真正可用的代码。
在 2008 年,Python 发布了新一代 Python 3 版本,引入了许多突破性的重大变化和改进。
关键特性:
Python 的核心竞争力在于它的语言设计。它是一门富有创造性的,优雅、简单同时也强大的语言。Python 为“开发体验”设置了黄金标准,这也深刻地影响了后来那些现代编程语言,比如 Go、Julia 等。
Python 与 C/C++ 有着原生级别的整合能力,可以无缝地将许多 CPU 密集型任务用 C/C++ 来完成。同时,Python 提供了许多强大的工具组,涵盖了数学、统计学和计算机科学等方面——比如 NumPy、Pandas、SciPy、Scikit-Learn 等等。
因此,Python 在机器学习、深度学习、数据科学和其他一些科学领域都有着绝对的优势。
Python 拥有非常活跃的社区和支持。无论你需要处理什么类型的工作——比如商业软件开发、数据科学甚至人工智能——你都能找到足够好的 Python 库和框架。
普及程度:
在过去的几年中,对 Python 的需求出现了巨大的增长,并且没有放缓的迹象。编程语言排名网站 PYPL 将 Python 评为 2019 年增长最快的编程语言,全球同比增长 4.3%,总份额达到了 29.72%。
同时,Python 在 Github 的语言排名中也上升了一位,超越 Java 取得了第二的位置:
而 StackOverflow 开发者调查显示,Python 在最受欢迎的编程语言中排行第二(在所有技术工具中排行第四):
和大部分传统的主流编程语言的热度都居于稳定,或是略微下降的趋势相反,Python 在近 5 年的 Google 趋势上一直保持了不错的上升势头:
就业市场:
根据 Indeed 网站的分析,Python 是美国就业市场上最炙手可热的编程语言,2020 年 1 月的招聘职位数量达到了最高 7.4 万个,平均年薪水平排行第三,达到 12 万美元。
而 StackOverflow 开发者调查显示,比起其他主流编程语言,Python 开发者所需的工作经验相对较少,而获得的平均薪资相对更高:
主要用途:
数据科学
数据分析
人工智能、深度学习
商业软件开发
Web 开发
JavaScript
在第一次网页浏览器战争期间,Netscape 让 Brendan Eich 开发一款用于网景浏览器的新编程语言。Brendan Eich 只用了大约 10 天就搞出了一个最初的原型,后来的事情你们都知道了。
早期,软件开发者经常嘲笑 JavaScript 糟糕的语言设计、各种功能的欠缺。
然而随着多年的发展,Javascript 已经变成了一种多范式的高级、动态编程语言。Javascript 最早的一个重大突破,是 2009 年 Ryan Dahl 发布的跨平台 JavaScript 运行环境 Node.js,它让 JavaScript 走出了浏览器,能够在服务器段运行。
而 JavaScript 的另一个巨大飞跃,则是 2010 年 Google 开发的 JavaScript 网络开发框架 AngularJS。
如今,Javascript 已经成了全世界使用最广泛的编程语言,基本上你在任何地方都能发现它的身影:浏览器、服务器、移动设备、云端、容器……甚至微控制器等等。
关键特性:
JavaScript 是无可争议的浏览器编程语言之王。如今的 Web 开发,已经基本上被各种基于 JavaScript 的单页应用(SPA)开发框架所垄断,比如 React、Vue.js 以及 AngularJS。
在 Node.js 的加持下,JavaScript 提供的事件驱动编程特性非常适合于完成 I/O 密集型任务。如今 JavaScript 和 Node.js 能在几乎所有平台上运行,包括各种服务器和移动设备。
JavaScript 在近几年已经完成了大规模现代化改造和提升,特别是从 2015、2016 年以来,最新的 ES5、ES6 版本加入了许多现代特性,已经和十几年完全不一样了。
普及程度:
JavaScript 是所有平台上被广泛采用的高级编程语言。它在 GitHub 贡献排名中连续五年蝉联第一:
同时,StackOverflow 2019 年度开发者调查显示,JavaScript 在所有语言和技术工具中的受欢迎程度都是第一名。
Google 搜索趋势显示,JavaScript 的总体热度保持平稳:
就业市场:
根据 Indeed 网站的分析,JavaScript 是美国就业市场上需求量排行第三的编程语言,2020 年 1 月的招聘职位数量达到了最高 5.7 万个,平均年薪水平排行第四,达到 11.4 万美元。
而 StackOverflow 开发者调查显示,比起其他主流编程语言,JavaScript 开发者所需的工作经验也不太多,获得的平均薪资比较居中:
主要用途:
Web 开发
后端开发
移动 App 开发
无服务器计算
页游开发
Java
Java 是至今为止最具颠覆性的编程语言之一。
在上个世纪 90 年代,许多商业应用程序都是用 C++ 进行开发,导致这些软件的维护非常复杂,而且更加依赖于系统平台。James Gosling 和他在 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 贡献排名中,2014-2018 年 Java 都排第二,直到 2019 年被 Python 超越:
Google 搜索趋势显示,Java 的总体热度相对缓慢下降:
就业市场:
根据 Indeed 网站的分析,Java 是美国就业市场上需求量排行第二的编程语言,2020 年 1 月的招聘职位数量达到了最高 6.9 万个,平均年薪水平排行
第六,达到 10.4 万美元。
而 StackOverflow 开发者调查显示,Java 开发者需要几年的工作经验,获得的平均薪资比较居中:
主要用途:
商业软件开发
安卓 App 开发
大数据处理
网页开发
C#
2000 年,科技巨头微软打算构建一个自己的面向对象 C 语言,作为他们 .NET 计划的一部分。C# 类似 Java,也需要在虚拟机运行。
资深语言设计师 Anders Hejlsberg 将 C# 设计为微软公共语言计划(Common Language Initiative,CLI)平台的一部分,该平台将许多其他语言(主要是微软设计的语言)编译成一种中间格式,该格式可以在名为公共语言运行库(Common Language Runtime,CLR)的平台上运行。
在刚问世时,C# 被人吐槽说是 Java 的仿制品,当然,后来这两种语言分别都有了巨大的改变。此外,微软对 C# 编译器/运行库的许可授权并不总是很清晰,虽然微软目前基于开放规格项目,没有强制实施它的专利,但这也许哪天就变了。
如今的 C#,是一门被广泛采用的多范式编程语言,它不但能运行在 Windows 平台,也能运行在 ios/android 平台(感谢Xamarian 的贡献),甚至是 Linux 平台上。
关键特性:
Anders Hejlsberg 做出了卓越的贡献,把 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# 是美国就业市场上需求量排行第五的编程语言,2020 年 1 月的招聘职位数量达到了最高 3.2 万个,平均年薪水平排行第八,达到 9.6 万美元。
而 StackOverflow 开发者调查显示,C# 开发者获得的平均薪资比 Java 高一些,但需要的经验(工作年限)可多了不少:
主要用途:
服务端开发
应用软件开发
网页开发
游戏开发
Windows 平台上的软件开发
C
上个世纪 60~70 年代,每一秒的 CPU 运算时间,每一比特的内存空间都相当宝贵。在 1969~1973 年间,贝尔实验室的工程师Dennis Ritchie 创造出了一种结构化的通用编程语言,它的代码能直接被编译成计算机可直接读取运行的机器码。
C 语言提供了能访问底层物理内存的方法,还让程序员能够获得底层硬件的全部控制权。
多年以来,C 语言一直是使用最为广泛的编程语言。除此之外,C 语言可以说是史上最具颠覆性和影响力的编程语言,今天我们介绍的几乎所有编程语言里,或多或少都留下了 C 语言带来的印记。
尽管 C 语言因其较大的偶然复杂度、不安全的代码,依赖于平台(不能跨平台运行)以及缺少许多功能而被人诟病,但如果你要将硬件的性能用到极致,那你只能选 C/C++ 或者 Rust 语言。
关键特性:
由于 C 语言能够访问到底层内存,并能被编译成机器码,所以它是最快速也最强大的编程语言之一。
C 语言能完全掌控底层硬件。C 语言能在每个平台上编译运行,利用各种硬件优势,不管是 GPU、TPU、容器、云、移动设备还是微控制器。
C 语言是“编程语言的编程语言”。许多著名的编程语言,它们的编译器都是用 C 写的,比如:Ruby、php 还包括 Python。
普及程度:
C 语言是今天介绍的所有语言中最古老的,它统治了整个编程行业已有 47 年。在 TIOBE 的长期热度榜上,C 语言从 1985 年起屠榜至今,最差不过也就是偶尔落回第二名而已:
同样是 TIOBE 的年度榜单,C 语言依旧力压 Python,紧跟在 Java 之后:
Github 贡献排名中,C 语言近几年不断下滑,如今排在第九名:
Google 搜索趋势显示,C 语言的总体热度在最近五年里还算相对稳定:
就业市场:
根据 Indeed 网站的分析,C 是美国就业市场上需求量排行第六的编程语言,2020 年 1 月的招聘职位数量达到了最高 2.8 万个,平均年薪水平排行第六,达到 10.4 万美元。
而 StackOverflow 开发者调查显示,C 开发者获得的平均薪资和 Java 差不多,但需要的经验(工作年限)可多了不少:
主要用途:
操作系统编程
游戏开发
智能设备(IoT)和实时系统
机器学习、深度学习
嵌入式系统开发
今天的前 5 个语言介绍先到这里,明天接着带来下篇,不要错过哦。
来源:https://towardsdatascience.com/top-10-in-demand-programming-languages-to-learn-in-2020-4462eb7d8d3e
C++编程内容大更新!新增 40h python 内容,零编程基础可学习。C++语言创始人参与课程设计,深入学习到 C++ 语法,面向对象编程,智能指针,内存管理,性能优化,多线程编程等知识,掌握 C++ 高性能开发语言,成为专业级 C++ 工程师
点击阅读原文,了解“C++编程”纳米学位
以上是关于2020年最火编程语言出炉!关键特性普及程度薪资全方位解读(Python/Js/Java/C#/C篇)的主要内容,如果未能解决你的问题,请参考以下文章