Python3 能振兴 Python的原因分析


Posted in Python onNovember 28, 2014

我从Stephen A. Goss那读到关于了《Python 3正在毁灭Python》。这篇文章有不少精彩的论点,但我却并不认为Python 3是在毁灭Python,也不认为整个局面对Python一点也不利。

但是正如那些比较俗气的格言所说,也许每一次危机也意味着一次机遇。

也许Python 3能振兴Python。

显然,麻烦的不仅仅是Python 2到Python 3的移植。时间不再是2005年了,年轻的程序员不再对Python的哪一个版本如此的激动了。不错,现在市场上有很多Python的职位,但与此同时有更多的Java的职位。并且话说在从前市场上还有很多Perl的职位呢——据说现在不怎么样了。我的重点不是说职位的个数或者GitHub上面的仓库的个数,我的重点是思想和热情。我知道这有一点主观,但我感觉Python最近在这两方面有所缺失。

举个例子来说我们看到人们正在从Python转向Go。

尽管并不多,但是这个现象却很值得注意(包括整个新建的开发小组发博客声称要移植他们的代码库),也足以产生一些舆论了(也能让Rob Pike大吃一惊了,他最初希望人们从C/C++转向Go)。

Python所面临的挑战来自西面八方。有的挑战在某一领域蚕食Python的份额(例如新的不同步的项目会更加喜欢Node或者Go而不是Twisted,Rails仍然在web框架中占有主导地位),某一专业的直接竞争(例如科学计算的Julia),以及普遍的竞争(Clojure,Groovy,Javascript,Dart等)。

所以这儿是我对于Python 3的想法,很简单的想法:

Python变得诱人

Python 3已经和Python 2不兼容了,并且人们也并没有成群结队的向Python 3移植,因此增加一些不兼容的改变不仅没有坏处,反而对这门语言更有好处了。

老实讲,如果Python 3有足够多的诱人的新特色,更多的人会愿意移植到到Python 3的(至少他们新的项目会),并且越来越多的人会去移植他们Python 2的库和项目。更甚,在下愚见,这会吸引更多的现在没有在用Python的人们。

 

大家已经看到,Python 3是一个乏味的更新。

诚然,Python 3让Python更加的清晰明了,并且也修正了一些长久的问题和令人头疼的地方。但是它却没有带来那么大的改变。话说回来,在Python 3在构思的时候它的思路被设定得很宽松。Javascript那个时候也没有那么流行。YouTube还没有诞生。那可是很久以前的事了。

现如今像合适的包络,不可变性,好的异步性等等可是犀利的黑客们考虑的重点。

 

话不多说,下面列举了一些可能让Python 3变得有趣的建议。至少对于我来说这会引起我的兴趣:

  1. 移除全局解释器锁(GIL,Global Interpreter Lock)。或者提供一个好的异步处理机制。Guido的PEP 3156说不准可以解决这个问题。能拥有类似诸如Go的通道(channels)的原语也是挺好的。
  2. 让Python更快。如果Javascript能变快,CPython也能变得很快。或者PyPy可以足够成熟以替代CPython(应该只能有一个存在才对)。如果需要像Lars Bak这样的大咖来做,去Kickstarter——我会出钱的。让大公司也不好意思得也贡献一点。不是说Dropbox也花钱开发他们基于Python的LLVM么?
  3. 增加类型。嗯,是opt-in类型。这样你能用来加快你的代码速度(对CPython来说),或者确保以有助于类型检查(对Dart来说)。在标准库中加入类型注解。
  4. 改进标准库。找一个团队去过一下这些标准库,修正那些长期存在的烦人的问题,提高速度并且修正bug。改进这些库的API,并为通用的东西提供更加简便的接口(对比一下requests和urllib)和现有的标准库一起提供一个名字域不一样的新的改进后的标准库。并且,让他们的转换能很方便的进行(也许可以通过某种自动化的工具完成)。
  5. 改进“读取-求值-输出循环”(REPL,Read-Eval-Print Loop)。拜托现在已经是2014年了。用现代的方法重新做做REPL吧。加点颜色什么的。参考下IPython好了。把它弄成个Client/server的东西,这样IDE和编辑器可以嵌入它。

 

所以说Python 3的开发人员,慢慢来。嗯,但也不要太慢了。大概3、4年的样子吧。我们等ES6等了10年吧,3、4年我们还是能等的。

看起来也不是所有人都在用Python 3,那么冒一点险好了。打破常规。更早更频繁的发布吧。多和社区打交道。

各位,Python 3其实也没有真的在杀死Python。但是它也许能从正在杀死它的东西中拯救它。

 

后记:你怎么看?你能想到更多的让Python 3更加诱人的点子么?什么样的新功能能激发你的兴趣呢?

Python 相关文章推荐
Python实用日期时间处理方法汇总
May 09 Python
对于Python装饰器使用的一些建议
Jun 03 Python
Python中字典映射类型的学习教程
Aug 20 Python
用virtualenv建立多个Python独立虚拟开发环境
Jul 06 Python
基于python实现学生管理系统
Oct 17 Python
pycharm中成功运行图片的配置教程
Oct 28 Python
对Python中DataFrame选择某列值为XX的行实例详解
Jan 29 Python
Python Django2.0集成Celery4.1教程
Nov 19 Python
Pytorch.nn.conv2d 过程验证方式(单,多通道卷积过程)
Jan 03 Python
python更新数据库中某个字段的数据(方法详解)
Nov 18 Python
bat批处理之字符串操作的实现
Mar 16 Python
Python爬取奶茶店数据分析哪家最好喝以及性价比
Sep 23 Python
Python3 正在毁灭 Python的原因分析
Nov 28 #Python
关于你不想知道的所有Python3 unicode特性
Nov 28 #Python
Python 2.7.x 和 3.x 版本的重要区别小结
Nov 28 #Python
用Python编写一个国际象棋AI程序
Nov 28 #Python
Python中给List添加元素的4种方法分享
Nov 28 #Python
Python列表(list)、字典(dict)、字符串(string)基本操作小结
Nov 28 #Python
跟老齐学Python之使用Python查询更新数据库
Nov 25 #Python
You might like
echo(),print(),print_r()之间的区别?
2006/11/19 PHP
php编写的简单页面跳转功能实现代码
2013/11/27 PHP
PHP封装的一个支持HTML、JS、PHP重定向的多功能跳转函数
2014/06/19 PHP
PHP单例模式详细介绍
2015/07/01 PHP
两款万能的php分页类
2015/11/12 PHP
Yii2简单实现多语言配置的方法
2016/07/23 PHP
老生常谈ThinkPHP中的行为扩展和插件(推荐)
2017/05/05 PHP
javascript getElementsByClassName 和js取地址栏参数
2010/01/02 Javascript
Javascript学习笔记7 原型链的原理
2010/01/11 Javascript
jQuery 验证插件 Web前端设计模式(asp.net)
2010/10/17 Javascript
jquery星级插件、支持页面中多次使用
2012/03/25 Javascript
JavaScript中“基本类型”之争小结
2013/01/03 Javascript
JS实现网站菜单拖拽移位效果的方法
2015/09/24 Javascript
JavaScript利用HTML DOM进行文档操作的方法
2016/03/28 Javascript
zTree获取当前节点的下一级子节点数实例
2017/09/05 Javascript
Vue的路由动态重定向和导航守卫实例
2018/03/17 Javascript
JavaScript 截取字符串代码实例
2019/09/05 Javascript
微信小程序实现录音功能
2019/11/22 Javascript
bootstrap实现嵌套模态框的实例代码
2020/01/10 Javascript
jQuery实现小火箭返回顶部特效
2020/02/03 jQuery
python类和函数中使用静态变量的方法
2015/05/09 Python
Python中的列表生成式与生成器学习教程
2016/03/13 Python
Python实现八皇后问题示例代码
2018/12/09 Python
Python3+PyInstall+Sciter解决报错缺少dll、html等文件问题
2019/07/15 Python
python3将变量写入SQL语句的实现方式
2020/03/02 Python
解决使用Pandas 读取超过65536行的Excel文件问题
2020/11/10 Python
HTML5新特性之用SVG绘制微信logo
2016/02/03 HTML / CSS
移动端Html5页面生成图片解决方案
2018/08/07 HTML / CSS
英国图书音像网站:Hive.co.uk(图书、电子书、DVD、蓝光、音乐CD等)
2017/10/16 全球购物
Redbubble法国:由独立艺术家设计的独特产品
2019/01/08 全球购物
Interflora澳大利亚:同日鲜花速递
2019/06/25 全球购物
2014年十一国庆向国旗敬礼寄语
2014/04/11 职场文书
汉语专业毕业生自荐信
2014/07/06 职场文书
学习十八届四中全会精神思想汇报
2014/10/23 职场文书
纯CSS实现酷炫的霓虹灯效果
2021/04/13 HTML / CSS
MySQL数据库配置信息查看与修改方法详解
2022/06/25 MySQL