Python技术栈

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2686|回复: 10

[学习资料] 为什么向Python3迁移速度这么慢?

[复制链接]

12

主题

15

帖子

70

积分

注册会员

Rank: 2

积分
70
发表于 2020-1-6 13:09:38 | 显示全部楼层 |阅读模式

Python 简史
开发 Python 3 的想法是实现一些重大的改变,如摆脱了 Python 的遗留问题:将所有字符串都呈现为 Unicode。正如 Python 的核心开发人员之一布雷特·坎农(Brett Cannon)写道:

人们有时会忘记 Python 诞生的年代。

Guido 于 1989 年 12 月开始对 Python 进行编码,并于 1991 年 2 月首次以开源形式发布。这意味着 Python 本身早于 1991 年 10 月发布的 Unicode 标准的第一版。在随后的几年中,Unicode 标准化后创建的语言选择使用基于 Unicode 编码字符串的实现。

支持任何语言的 Unicode 和文本非常重要。

Python 是一种世界语言,不仅是支持 ASCII 覆盖的罗马字母的语言,这就是 Python 3 在处理文本时将其默认设为“ Unicode”的原因。它保证了所有 Python 3 代码都将支持世界上的每个人,无论编写该代码的开发人员是否明确为其指定 Unicode 编码。

不幸的是,该团队假设每个人都将立即进行大的切换,并使 Python 3 向后不兼容,并将 Python 2 设置为维护分支。但是,许多人不想切换,因为正如改进的 PEP 所说,Python 3 是“相对于 Python 2 的温和的改进。”许多人并没有因为这些带来的不便而切换。当时,Python2、3 最大的区别是将 print 语句更改为 print() 函数语法,这破坏了很多 Python 2 代码。

结果,此后很多年 Python 2 还继续处于积极的开发中。

不过,在 2019 年,Python 3 终于成为了新 Python 软件工程师(大部分)开发的默认语言版本,现在许多公司和项目都在使用 Python 3 的主要功能:f- 字符串、Path、类型提示、异步,当然还包括 Unicode 编码。

缓慢的迭代过程
自从新的版本于 2008 年宣布以来,Python 3 市场份额增长一直很漫长:

最初,有很多理由不采用 Python 3:最重要的是,它与 Python 2 并没有向后兼容。结果导致一些 Python2 的主要库往 Python3 迁移都犹豫不决。2 向 3 转换的转折点发生在大约 2016 年左右的 Python 3.5 发行版中,该版本具有矩阵乘法、asyncio 的引入、OrderedDict 的速度改进以及类型提示的实现,这些提示为 Python3 带来了一些类似于静态语言的实用功能。

Python3 更高版本包含更多功能,例如 Pathlib 库和 f- 字符串操作。通过这些更改,人们使用了许多库(例如用于机器学习的 scikit-learn)开始了向 Python 3 的迁移。

随着越来越多的依赖关系开始升级,一些公司也开始迁移 Python3。

从互联网上的状况来看,您可能以为每个人都完成了 Python3 迁移。

在 Jetbrains 进行的一项调查中,他们制作了 IntelliJ 和 PyCharm 之类的 IDE,有 75%的个人受访者表示他们已经迁移到 Python3。一连串的博客文章都显示了相同的内容,例如,Dropbox 于 2018 年秋季详细说明了他们的迁移 Python3、Instagram 于 2017 年迁移 Python3、Facebook 于 2014 年开始迁移 Python3。在客户的敦促下,Splunk 最近也这样做了 – 往 Python3 迁移。

但是,仅仅因为 Python 2 即将到期,并不意味着公司会在一夜之间停止使用它。我们怎么知道 Python 2 仍在大量的使用?我们可以直接检查 Python 包库 PyPI 的运行情况。2016 年,PyPI 核心开发人员开始将日志发送到 Google 的 BigQuery,以便能够针对它们运行 SQL,这使得根据使用情况做出体系结构决策变得更加容易。

例如,如果要查看过去 30 天内通过 Python 版本下载了哪些库,则可以在 BigQuery 中创建一个新项目(每月查询的前 1TB 是免费的),然后运行:(代码)

阅读原文看运行结果:https://developer.aliyun.com/ask/269162?utm_content=g_1000098200


Python 总 群
回复

使用道具 举报

0

主题

5

帖子

20

积分

新手上路

Rank: 1

积分
20
发表于 2020-1-6 13:09:38 | 显示全部楼层
支持,楼下的跟上哈~
Python 总 群
回复

使用道具 举报

0

主题

6

帖子

22

积分

新手上路

Rank: 1

积分
22
发表于 2020-1-6 14:46:04 | 显示全部楼层
Python与Java学习哪种语言好?
Python 总 群
回复

使用道具 举报

0

主题

7

帖子

24

积分

新手上路

Rank: 1

积分
24
发表于 2020-1-6 14:56:00 | 显示全部楼层
高手云集 果断围观
Python 总 群
回复

使用道具 举报

0

主题

8

帖子

26

积分

新手上路

Rank: 1

积分
26
发表于 2020-1-6 14:59:06 | 显示全部楼层
python新人求脸熟...
Python 总 群
回复

使用道具 举报

0

主题

7

帖子

24

积分

新手上路

Rank: 1

积分
24
发表于 2020-1-6 17:26:18 | 显示全部楼层
占坑编辑ing
Python 总 群
回复

使用道具 举报

0

主题

4

帖子

18

积分

新手上路

Rank: 1

积分
18
发表于 2020-1-6 17:30:10 | 显示全部楼层
回个帖子,下班咯~
Python 总 群
回复

使用道具 举报

0

主题

7

帖子

24

积分

新手上路

Rank: 1

积分
24
发表于 2020-1-6 18:01:31 | 显示全部楼层
哪位兄弟手头有python3做数据分析的资料???
Python 总 群
回复

使用道具 举报

0

主题

9

帖子

28

积分

新手上路

Rank: 1

积分
28
发表于 2020-1-6 18:02:54 | 显示全部楼层
我的djago网站做的和社区一样!
Python 总 群
回复

使用道具 举报

0

主题

8

帖子

26

积分

新手上路

Rank: 1

积分
26
发表于 2020-1-6 18:03:44 | 显示全部楼层
前排,哇咔咔
Python 总 群
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


QQ|Archiver|手机版|小黑屋|Python.BBS ( 鲁ICP备18046958号 )

GMT+8, 2020-8-4 11:17 , Processed in 0.134099 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表