摘要:许多接触过 Swift 和 Python 的程序员可能会有一种感觉:Swift 和 Python 很像。甚至作为提供类型注释的编译语言,Swift 比 Python 的速度更快,功能更强大,因此许多程序员认为未来 Swift 必将取代 Python。但如今看来,事实并非如此。
原文链接:https://medium.com/geekculture/swift-was-poised-to-replace-python-then-it-tanked-3e6c11740ba6
声明:本文为 CSDN 翻译,未经授权,禁止转载。
没有任何一种语言能够主宰整个数据科学与机器学习世界:MATLAB 是数学家们最喜爱的语言;R 是开源的,而且可以自由定制;Julia 是一匹强劲的黑马,近期收到了很多关注......
但是,有一种语言几乎是所有数据科学家都离不开的——那就是 Python,这门语言距离统治该领域仅一步之遥。
Python 是最容易学习的语言之一,而且黏性很高,一旦学会了 Python,你就想用 Python 做所有事情。就算与 C 语言相比,Python 都是一门了不起的语言:你完全可以放弃手动管理内存。当然,内存管理关系到底层编程的基本功能与运行速度,但大多数程序员都无需在意这些层面。
如今,Python 无处不在。使用 Python 编写程序非常容易,许多开发人员都习惯于使用 Python 搞定一切,甚至用 Python 开发大型项目,可实际上 Python 只是一种适合编写简短而杂乱的脚本的语言。
然而,许多公司和应用程序都不同程度地采用了 Python。比如 Instagram 和 Pinterest 都使用了 Python,Dropbox 也使用了 Python,Google 早期也是用 Python 构建的等等。
鉴于 Python 的使用范围之广,也难怪许多模块都是为 Python 编写的。这超出了数据科学与机器学习的范畴,如果没有 TensorFlow 和 PyTorch 等框架,许多模型都无法正常运行。此外,还有 Django 和 Flask 等 Web 开发框架,以及面向科学计算的框架。
因此,Python 占有如此巨大的市场份额也就不足为奇了。虽然在过去的几年里,Python 的增长一直停滞不前,但我认为在接下来的几年里,Python 依然是主流编程语言之一。
Swift 于 2014 年推出,很快风靡一时。虽然人们对于这门语言的特性有不同的看法,但 Swift 的使用感觉与 Python 很像,而且速度堪比 C 语言,主要是通过预先编译和静态类型。
在一片期许声中,许多开发人员在 Swift 发布后的两年内纷纷开始学习这门编程语言。
我不打算在此详细讨论 Swift 的优点,但值得一提的是,Swift 非常安全,而且能够使用任何 C 库。
于是,一时间有关 Swift 将成为下一个王者语言的传闻四起。然而,分析一下近来的数据,我们就能发现一个严峻的事实。在经历过短暂的辉煌时期之后,Swift 开始不断走下坡路。我们来看一看 Stack Overflow 中有关 Swift 的问题数量,就能发现与高峰期相比,如今 Swift 的使用量几乎减少了一半。
图:Stack Overflow 中有关 Swift 与 Python 的问题数量
纵观整个发展经历,Swift 确实有过一些辉煌时刻,许多公司都用 Swift 取代了 Objective C。话虽如此,但 Swift 并未能从 Python 手中夺回太多市场份额。
一个限制因素是,Swift 是苹果公司开发的,非常适合 macOS、iOS、watchOS、tvOS 等应用的开发,但为其他手机平台构建应用就不是那么“得天独厚”了——话虽如此,Python 也不是移动开发领域的首选,Java 才是该领域的主导。
论及 Swift 的衰落原因,其实与语言本身的关系不大,主要是因为其发布生态系统。
根据苹果的宣传,Swift 的速度非常快,犹如闪电,但实际上 Swift 早期版本的速度非常慢。虽然升级到新版本可以解决速度的问题,但这并非易事,因为 Swift 不能向后兼容。而且在早些年,将 Swift 应用发布到苹果应用商店,经常需要等待很久,这导致许多开发人员对 Swift 非常失望。
虽然 Swift 是一门不错的编程语言,但每次发布新版本就像当年的 Python2 和 Python3 一样会引发永无休止的战争。因此,许多开发人员都相继离开了。
就目前的形势来看,Swift 开发人员的薪资超过了 Python。根据 2022 年 Stack Overflow 开发人员的调查结果,Swift 开发人员的平均年薪为 77,000 美元,而 Python 开发人员则为 74,000 美元。
值得注意的是,一年前,这两种语言的薪资水平不相上下。Python 开发人员的收入为 61,000 美元,而 Swift 开发人员则为 60,000 美元。而 2020 年及更早期的薪资水平也大致相似。
尽管 Swift 自称是一种非常易学的语言,但 Swift 开发人员的开发经验平均高出了 1~2 年。同样,虽然 Swift 自认为是面向初学者的编程语言,但面向初学者的最佳编程语言似乎仍然是 Python。
Swift 并没有死,但其受欢迎程度的确有所下降,这表明该语言的管理方式存在重大问题。
如果你并不在乎向后兼容性,看中了 Swift 能够像 Python 一样易于编写,且执行速度非常快,那么选择 Swift 也无可厚非,甚至还可能发现 Swift 非常适合特定的项目。
然而,从整体趋势来看,Swift 正在缓慢衰落中,其根本原因不在语言本身。如果苹果能够做出一些明智的选择,Swift 的发展可能会出现转机。但如果苹果仍然无动于衷的话,那么 Swift 的受欢迎程度将继续下降。
不过与此同时,在过去几年中,Python 的市场份额也没有太大增长。其中的原因更为复杂,而且部分原因确实涉及语言本身(Python 开发社区非常失望,因为他们并没有获得更优秀、更快的 Python)——尽管如此,Python 的市场份额仍然是 Swift 的 10 倍。
如果非要给新手程序员一条建议的话,那么我会说:认真学习 Python,远离 Swift。虽然我不敢说十年后我们还会使用 Python,但至少它的发展潜力比 Swift 更大。
☞