python培训报告

知名计算机图书出版公司 O'Reilly 近日根据其在线学习平台生成的数据发布了一份技术行业发展趋势的分析报告。

报告指出,Python 已经成为了最受欢迎的语言,而 JavaScript 的使用量只有 Python 的 20%。低代码和无代码编程将不可避免的改变编程语言的性质。

另一方面,人工智能领域和 Web 开发的增长仍在继续。有关云的使用和安全隐私也都是重点发展的趋势。

调查背景

O’Reilly 对技术行业的趋势分析是基于其平台生成的数据。O’Reilly 在线学习的使用量一直在稳步增长,考虑到 COVID-19 的爆发对技术行业带来的变化,这样的增长趋势并不令人意外。

对技术行业发展趋势的分析并不是从哪一技术领域在短期内迅速受到关注和流行来看的,而是通过长期的表现得到的观察。“趋势”和“潮流”不同,潮流通常是一闪而过的,但趋势是在更长的时间范围内展现出来的,在这个过程中甚至可能会有倒退的表现,但趋势的发展是不会停止的,表象的背后有更多参考因素。

从编程语言的使用情况来看,Python 的使用量是最高的,与去年相比还上升了 27%。排在第二位的是 Java,比去年下降了 3%,第三是 C++,比去年上升了 10%。第四和第五分别是 C 和 JavaScript,使用量分别上升了 12% 和 40%。

令人惊讶的一点是,JavaScript 虽然排名前五,但使用量却远远落后于 Python 和 Java,只能达到 Python 的 20% 和 Java 的 33%。在后面的排名中,Rust 的增长非常明显,达到了 94%。不过,从一个较小基数开始的 Rust,增长 94% 并不是很难。

从统计数据可以看出,反而是 增长 16% 的 Go 语言已经清楚地确立了自己的地位。作为一种用于并发编程的语言,Rust很可能建立自己的“系统编程”地位:为云操作构建新的操作系统和工具。作为一种为数学计算而设计的语言 Julia 是一个有趣的未知因素。虽然在过去的一年里,它略有下降,但是我们对它的长期机会持乐观态度。

我们不应该将专门用于学习编程语言的标题与应用该语言或使用基于该语言的框架的标题分开使用。毕竟,许多 Java 开发人员使用 Spring,搜索“ Java”会遗漏内容,而标题中只有“ Spring”这个词。对于 JavaScript 也是如此,它包括 React、 Angular 和 Node.js 框架。在 Python 中,使用最多的库是 PyTorch 和 scikit-learn。下图显示了将 Python、 Java 和 JavaScript 的内容添加到这些语言最重要的框架中时所发生的情况。

结果相似是不足为奇的,但是有一些关键的区别。为 Spring 添加使用和搜索查询数据(增长7%)扭转了 Java 的明显衰退(净增长为零)。进一步来看 JavaScript,如果把最流行的框架 React、 Angular 和 Node.js 的使用加进去,那么 JavaScript 使用率就上升到了 Python 的 50% ,只比 Java 及其框架略低一点。然而,当 Python 被添加到大量使用的框架 PyTorch 和 scikit-learn 中时,它仍然是明显的领先者。

我们正在尝试建立一个更全面的语言使用图景,其中包括各种框架的使用。我们并不是假装这些框架本身具有可比性。Spring 主要用于后端和中间件开发(尽管它包括一个 web 框架); React 和 Angular 用于前端开发; scikit-learn 和 PyTorch 是机器学习库。尽管它被广泛使用,但我们并没有将 TensorFlow 分配给任何语言; 它有 Python、 Java、 c + + 和 JavaScript 的绑定,并且不清楚哪种语言占主导地位。此外,我们还忽略了所有这些语言的成千上万的小型平台、框架和库。一旦它们超过了前几名,就陷入了混乱。

我们不提倡使用 Python、 Java 或任何其他语言。尽管随着软件行业的发展,它们的使用量会有不同程度的上升和下降,但这些顶级语言没有一种会消失。但是,在进行比较时,我们需要注意到更多因素。

如果竞争并不重要,那么编程语言的重要趋势又是什么呢?我们发现有几个因素在显著地改变着编程:

多范式语言自去年以来,O’Reilly 在线学习的函数式编程内容使用量增加了 14% 。然而,Haskell 和 Erlang 这两种经典的函数式语言并没有得到应有的重视,它们都没有大量的使用,并且都呈下降趋势(与去年同期相比下降了大约20%)。面向对象编程比函数式编程的发展更快: 自去年以来增长了 29% 。这表明,实际情况是将函数特性集成到过程语言和面向对象语言中。从 2008 年的 Python 3.0 开始,到 2014 年的 Java 8,编程语言增加了高阶函数(lambdas)和其他“函数式”特性。一些流行的语言,包括 JavaScript 和 Go,从一开始就具有函数特性。这种趋势开始于20年前,(与 C++ 标准模板库一起),我们希望这种趋势继续下去。

并发编程用于并发性的平台数据显示,其年增长率为 8% 。这不是一个很大的数字,但是不要因此错过这个趋势。Java 是第一个被广泛使用的支持并发的语言。在 90 年代中期,线程支持是一种奢望,摩尔定律有很大的发展空间。现在情况不同了,对并发性的支持,就像对函数式编程的支持一样。Go、 Rust 和大多数其他现代语言都内置了对并发性的支持。不过,并发性一直是 Python 的弱点之一。

动态类型与静态类型动态类型语言(如 Ruby 和 JavaScript)和静态类型语言(如 Java 和 Go)之间的区别可以说比函数式语言和面向对象语言之间的区别更为重要。不久前,在动态语言中添加静态类型的想法引发了一场争论。不过,现在已经没有这种争论了。将各种范式结合起来形成一个混合体也在这里占据了主导地位。Python 3.5 增加了类型提示,最近的版本增加了额外的静态类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值