截至2020年,大约有700种编程语言可用。其中一些倾向于仅适用于特定领域,而其他一些则因其能够在各种应用中工作的能力而广受赞赏。在过去的十年中,软件的应用几乎稳定增长,并且为了满足需求而开发了新的语言。在本文中,我们将探讨数据科学和云开发领域中一些最常用的编程语言和潜在的新星。
决定在业余时间学习一种相对较新的编程语言有时可能是对我们时间的冒险投资,因为我们不确定未来几年就业市场将如何看待这种新语言。另一方面,在大多数情况下,较新的编程语言都经过精心设计,以充分利用最新的技术进步,因此从长远来看有可能为我们提供优势。因此,使用更新的编程语言的一些主要优点可能是:
- 硬件优化(GPU,多核CPU系统)。
- 改进的网络。
- 更简洁的代码。
- 键入推断。
- 更轻松的容器化和云支持。
根据2020年Stackoverflow开发人员调查,以下编程语言是2020年开发人员最喜欢的语言(图1)。作为本文的一部分,我们将考虑其中的5个。
> Figure 1: Most loved programming languages
此外,根据Stackoverflow开发人员调查,这是2020年排名前10位的付费编程语言(图2)。
> Figure 2: Languages associated with the highest salaries worldwide
编程语言
Julia
像Python和R这样的编程语言由于易于使用,现在在诸如数据科学,机器学习和通用计算/数字任务等领域非常流行。但是,这些语言最初并不是为在高度可扩展的系统上工作而设计的。因此,这对于大型企业解决方案而言,很难使用这种类型的编程语言。为了克服这种类型的问题,Julia是由麻省理工学院(MIT)的一组研究人员创建的。朱莉娅的一些关键特征是:
- 为与并行和分布式系统一起使用而优化。
- 内置包管理器。
- 支持C编程功能。
- 动态键入。
为了促进采用,已经实现了许多数据科学和机器学习库,例如ScikitLearn.jl,TextAnalysis.jl,StatsModels.jl。此外,Julia还可以在传统的Jupyter笔记本中使用。如果您有兴趣了解有关Julia的更多数据科学知识,那么此YouTube课程是一个很好的起点。
从图3可以看出,在过去的几年中,茱莉亚到目前为止Google搜索的整体数量在增加。
> Figure 3: Julia Google Trends [3]
Go
Go是当今最有前途的系统编程语言之一。实际上,这种编程语言是Google开发的,目的是简化应用程序和开发的规模。Go的一些关键特征是:
- 专为云原生开发而设计。实际上,主流工具(例如Docker和Kubernetes)已使用Go开发。
- 内存管理(与C和C ++等语言不同,它具有嵌入式的Garbage Collector)。
- 出色的并发支持。
在2014年左右达到顶峰后,Go多年来一直在Google搜索量中保持一致。Go是当前在Cloud平台(例如Google Cloud Platform和Microsoft Azure)上最受欢迎的编程语言之一。
> Figure 4: Go Google Trends [3]
如果您对使用Go语言编写机器学习算法感兴趣,那么GoLearn是一个很好的起点。
Python
如今,Python是用于数据科学和机器学习任务的最受欢迎的编程语言。它是由Guido van Rossum于1991年首先开发的,此后它的受欢迎程度才刚刚提高(图5)。
> Figure 5: Python Google Trends [3]
用于数据科学和机器学习的一些最受欢迎的Python库是:
- Pandas
- Numpy
- scikit学习
- TensorFlow
- Pytorch
如前所述,与Python相关的关键问题之一是它的可伸缩性性能不佳。为了尝试解决此问题,已实现了不同的系统(例如Cython和Numba),以在使用Python进行编码时创建类似C的性能级别。
Scala
目前,Scala被认为是函数式编程的最佳编程语言之一(尽管它仍然提供对面向对象编程方法的支持)。就搜索受欢迎程度而言,Scala似乎在2018–2019年间在Google搜索上达到顶峰(图6)。
> Figure 6: Scala Google Trends [3]
使用Scala的一些主要优点是:
- Scala是一种静态类型的语言。
- 与Python等编程语言相比,速度要快得多。
- 与Java的兼容性。
- 能够结合功能和面向对象的编程。
Scala受欢迎的主要原因之一是Apache Spark(使用Scala构建的数据管理工具)。实际上,Apache Spark是用于Hadoop集成(快速处理大量数据)的最受欢迎的大数据工具之一。
JavaScript
最后,JavaScript是目前最流行的网络编程语言之一,几乎可以在任何类型的应用程序(例如服务器,移动设备,云,微控制器等)上运行。
在网络开发的早期,Javascript的普及率达到了顶峰,此后在过去十年中一直保持稳定的趋势(图7)。
> Figure 7: Javascript Google Trends [3]
之所以将Javascript包含在此列表中,主要原因之一是它能够在网络上共享数据科学和机器学习项目。实际上,在过去的几年中,已经开发了不同的框架,例如TensorFlow.js,ONNX.js,Plotly.js,Dash等,以便在以Python等编程语言创建的Web项目上可访问。
结论
总体而言,Python和Javascript无疑是目前最受欢迎的两种编程语言。尽管,如本文所示,Julia,Go和Scala等不同的替代产品由于其各种好处(现在的方式可能与过去十年中的Python相同)现在开始在就业市场上获得越来越多的关注。