Python也有保质期?它在脚本领域的“大佬地位”还能持续多久?
本文转载自公众号“读芯术”(ID:AI_Discovery)
有一种语言在过去十年受喜爱度一路飙升,成为最受欢迎的一种编程语言,它是谁?
千呼万唤始出来,没错,它就是我们的老弟Python。
Python是一种易于使用、阅读和转换的对象型编程语言,由C语言实现。
最近,Python被评为全球最受欢迎的编程语言,其中有很多原因在不断稳固它的地位,但也有许多原因使其可能失去该头衔。
Python的用途是什么?
Python是一种解释型语言,这意味着任何编译器或汇编器都不能将其放入机器代码中。相反,使用Python的另一种语言——C语言,可以用来解释Python.h头文件。通常情况下,可以把Python归入脚本类,但在笔者看来,不忽略Python作为编程主要部分的地位至关重要。
(1) 可执行?
Python的一大缺点是,Python代码不能被编译成可执行文件。用Python编写的任何应用程序或工具都需要在终端用户系统上安装Python及其依赖项,且要安装与之对应的正版安装包,这些版本与用于开发所述应用程序的安装包相对应。
(2) 网站?
Python已经证明其在运行网站后端方面的惊人才能,这也是Python相对于许多其他语言的一大优势。Python拥有大量不可思议的安装包来部署APIs、甚至设计功能齐全的网站应用程序。
(3) 机器学习
机器学习是Python的另一重要用途,这无疑有助于Python在近年来迅速广受欢迎。机器学习是技术研究的前沿领域,Python及其与C语言的密切关系对机器学习研究非常高效有用。虽然Python确实缺乏一些诸如Nim、Julia和Go等语言的性能,但在很多方面,它的快速、简单、简洁可以弥补这一点,但可能其通用性更为重要。
(4) Unix
如果不讨论现代类unix系统,就很难讨论Python。Python 2.7已被弃用两个月,笔者的桌面环境及操作系统中的更多特性仍然运用Python2.7。Bash和Python的组合可以生成一些非常有用的脚本,用于运行服务器、填充数据、完成请求、编辑文件,当然还有更多作用。
Python的缺点
虽然Python确实是门伟大的语言,对全世界造成巨大影响,但每种语言都有其缺点,Python也不例外。首先,最显著的一个缺点是:
Python运行缓慢。
(1) 性能
虽然笔者肯定同意使用日志及for each方法,并且通常情况下,编写出更好的代码肯定能加快Python的运行速度,但在某些情况下,代码一定会变慢,机器学习就是个很好的例子,因为训练神经网络常需使用递归。笔者无法告诉你有多少次编写过用Python提取数据的脚本,然后在命令行接口(CLI.)中经历超时和减速。
为缓解这种情况,人们做出了一些努力,使用了颇有影响力的Cython,但在尝试使用Cython时,转换通常并是完全不相关。尽管在很多情况下,Python的局限性不被察觉,但如果说笔者从来没有过必须切换到Julia、Nim或C语言才能完成某些工作,那一定是无稽之谈。
(2) 依赖项
Python的另一个重大缺点是依赖项和虚拟环境。关于Python领域中的脚本语言,笔者认为,Python在依赖项和虚拟环境方面做得很好。我喜欢将Python比作我使用的有类似作用的两种语言——Julia和Nim,Julia依赖项的世界与Python非常类似,其有一个在我主观看来的优点,即虚拟环境要好很多且更易使用。
然而,随着Nim的加入,Python将被遗弃。使用Nim,可以创建一个已编译执行文件,其中包含所需的所有依赖项。在如何为终端用户和部署处理依赖项及安装包方面,Nim轻松完胜Python和Julia。
Python的好处
尽管对Python颇有怨言,但它确实也有很多方面招人喜欢。
(1) Python的令人敬佩之处
Python是一种常用的编程语言,它有很多优点:
- 易搜索
- 易讨论
- 性能好
- 修补程序很多
不仅如此,Python功能强大,用起来十分可靠,这使得Python成为初学者的最佳选择,同时也使那些想要快速构建稳定、持久技术的人同时运用这些技术更为容易。
(2) Python看起来很英文范儿
像Python这种语言和类似脚本语言之间的一个很大的区别就是Python的可读性和容易理解性。通常,阅读Python就像阅读一本关于与数字等同变量的奇怪又抽象的书。这不仅使初学者更容易接受,而且也使转变、修改和解码更容易进行,这些都极为重要,特别是对有数千名开发人员在其中工作的大型代码池而言。
老实说,大家都宁愿写Python而不愿写C语言。
(3) Python作为开源软件
虽然对一些人来说,他们的语言是否免费和开源可能并不重要,但对笔者而言,这非常重要。Python基金会的运行主要依靠捐款和教育证书,这意味着Python是一个完全免费和开放的软件,有人编写代码供你使用,这太棒了。
Python会寿终正寝吗?
来源:Pexels
实际上,我经常被问到的一个问题是,“你认为Python会存在多久?”这个问题经常出现在机器学习领域,因为Python有许多跟机器学习的相关问题。有趣的是,任何一种语言都可能是静态的,且在很长一段时间内将作为最广泛使用的编程语言。
在C语言之前,Fortran广受欢迎,在C++之前,C语言广受欢迎,在Java之前,C++也是如此,这样的例子不胜枚举,而且总会按此发生。计算机让人兴奋不已,因为它不断发展,随之而来的研究技术也不断进步。就在30年前,16GB内存(RAM)的想法听起来还极为荒诞,因此,人们根本不知道未来的编程语言会是什么样子。
虽然Python最终很可能会被另一种编程语言超越,但在笔者看来,人们仍然在编写Fortran、C语言、Java和c++,记住这一点极为重要;所以Python本身很可能会与我们同行,并在很长一段时间内被广泛使用,不管它可能变得多么不受欢迎。
其他编程语言
Python流行所面临的最大威胁可能是其他的新编程语言。上述所讨论的语言——Julia和Nim,在笔者看来是Python目前的两大竞争对手。Julia当然能改变我们进行机器学习的方式,而Nim绝对是高级脚本的一个巨大创变者。
图源:(https://nim-lang.org/)
目前,虽然这些语言可能还没有得到很多支持,但它们表现出笔者认为的重要一点:
进步大有可能。
也就是说,Python不是一堵坚实的砖墙,编程语言、机器学习和脚本语言的进步肯定不会就此止步。笔者认为,这些语言之所以未获成功,部分原因是它们都是统计型语言,而且在很大程度上为功能性语言,笔者理解,对于那些一直坚持使用并热爱Python的人而言,该概念让人震惊不已。
结论
来源:Pexels
应该学习Python吗?
答案毋庸置疑。
Python作为一种很好的入门语言,可以帮助你熟悉如何解决问题,开始编程。与包括Julia和Nim在内的其他语言相比,Python拥有丰富的资源,这就使得它更易学习。
一门语言的大火始终伴随着另一门语言的没落,我不认为Python会很快消失。
但作为一名程序员,不断成长很重要,开阔视野更重要。如果你用Python已有一段时间,那么可以开始学习第二种语言。尝试一种不同模式的语言,并了解那种模式及所选语言的类编程方法论如何运用这些概念。
这样的话,你不仅能学会使用更快的方法,而且还能学会许多之前甚至都不曾考虑的事情。