技术开发 频道

Python未来可能面临的四大转折

  【IT168 评论】Python最好的时代已经过去了,还是未曾来临?该语言广受好评并且可以广泛部署,过去一段时间内,它在许多领域享受爆炸性地增长,如机器学习领域。它具有清晰的语法,适用于多种操作系统,目前在国际上有着越来越多的应用。

  本月晚些时候将正式发布3.6的最终版本,除了新增的特性之外,根据目前的介绍,Python 3.6还将废弃一些模块、函数、方法和特性。例如,3.6将正式废弃使用 mportlib.machinery.SourceFileLoader.load_module()和 importlib.machinery.SourcelessFileLoader.load_module()方法;pyvenv脚本也将被废弃,鼓励使用 python3 -m venv,这样可以避免搞错pyvenv所关联的版本。除此之外,还有哪些值得关注的地方呢?下面是Python在未来几个月可能的发展方向。

Python未来可能面临的四大转折

  1、Python 2.x可能继续存在

  Python的2.x分支版本在2020年将停止更新,同时,Python 3将被定为该语言的未来发展方向。但这并没有阻止开发者使用Python 2.x,特别是因为许多软件仍然是仅2.x或向后兼容。

  如果开发人员坚持使用,Python 2.x也可能继续存在。大多数比较受欢迎并且支持兼容Python 2和Python 3的库是通过运行在各自平台上的语言子集(subset)来写的。Python的一大优势就在于拥有众多的第三方库,但Python 3整体改变不大,反倒失去了好多优势,虽然Python 3已经移入了很多库,但对于开发而言,还远远不够。如果,你需要将程序从Python 2迁移至Python 3又需要花费大量的时间和人力,显然与“快速开发”相违背,一种解决方案就是,Python 3中的功能向后移植到Python 2,至少有这样一个方式需要Python 2.x的存在,你不妨看看Naftali Harris的“Python 2.8”项目,它是从Python 3到Python 2.x分支的改进,并进行了相应的错误修复。

  长期来看,3.x的这一飞跃是有意义的,但是在未来几年,我们可能会看到很多继续坚持2.x的开发者的努力。尤其是很多已经使用了Python 2.x的企业,绝不会短时间内轻易迁移。

  2、Requirements.txt可以被更好的替换

   使用pip软件包管理器安装的Python软件包将其外部依赖关系列在名为requirements.txt的文件中。但它做的工作不是很多,还有很多改进的余地。

  Pipfile已经被Python负责包管理的人员提议作为可能的替代品,它是“在Python包中维护许多相关项目的工作组”,一种新的声明Python应用程序依赖关系的方式。Pipfiles允许使用Python包和与其他Python一致的语法来描述更具体的依赖关系。可以为包的发行版和开发版单独指定依赖关系,从而更轻松地重现安装包所需的确切条件。这是一个正在进行的工作,但现在的基本想法似乎很清楚。

  在许多情况下,使用Pipfile只能先列出需求再使用它来完成。如果Pipfile逐渐替代requirements.txt,可能后续还存在一些更换问题。

  3、Python可以有更多的企业版本

  Python默认版本是面向大多数开发人员的,由于该语言已经获得了很多开发人员和社区的支持,也出了可以专门解决企业级问题的版本。

  一个常见的例子是ActiveState公司宣布公开发行Stackato,该平台支持Python。但这种趋势不仅适用于企业版本,它也补充了企业中的数据科学版本。例如,英特尔选择重新打包Anaconda的Python科学计算包,然后使用扩展来提高速度,尽管只有英特尔的处理器。Anaconda本身是由Continuum Analytics生产的,对企业数据分析的需求并不陌生。

  起初这似乎很狭窄,因为并不是每个人都用Python来做数据科学分析。但可以有其他收获,例如Numba,一个Continuum Analytics创建的可以为任何Python项目进行性能提升的项目。现在的Python已经在广泛的科学计算领域发挥着独特的作用,有很多模块可以帮助开发者在计算巨型数组、矢量分析、神经网络等方面高效率完成工作,在教育科研方面也发挥出独特的优势。

  4、Python的新软件存储库系统以企业友好的方式进行Python包管理

  Python的包管理已经走了很长的路,但很少反映企业内部的需求。未来另一个可能的趋势是Python企业级包索引概念,已经由Nimble Storage的Cristian Medina发起了讨论:

  企业总是需要一个内部部署的,安全,加密和高度可用的编译二进制文件分发机制。与提供各种安装功能的setuptools一起,可以覆盖非Python代码,似乎我们可以组成一个体面的产品,像Docker私有注册表一样。

  结语

  现在的Python已经被很多开发者所接受,并且早已成功用于企业部署中。一旦用于企业部署,价值往往就会被放大,如果社区不重振旗鼓并复兴Python 2,那就意味着Python 3会在几年后成为Python的标准,同时会有更多的类库接入(有些类库或许永远也无法接入),也会有很多人离开社区或者进入社区。不知道这对于Python来说,究竟是否是件好事?Python会成为下一个Perl吗?

0
相关文章