Python 3 正在毁灭 Python 吗?
... Python 2最重要的一个优势在于拥有众多的第三方库,可以用来做任何事情,但是Python 3没有这个优势。诚然,有很多的库已经移植到Python 3了,但是有更多的库没有移植,也不容易移植。例如,你需要解析 X,但是X不像YAML和JSON那样容易解析。很可能有一个第三方的解析器可供选择,但是只可以用Python 2,而没有针对Python 3的移植版本。此外,加之Python 2中的字节字符串(str)和Python 3 中的字节字符串(bytes)之间有着功能上的差异,使得这更难移植。而事实上,移植它非常困难,并且需要很多的小技巧(trick)来兼容Python 2和Python 3。所以,你有两种选择,要么使用Python 2 (已经不建议使用的语言)快速的开发你的程序,但这会花费你十倍以上的时间去移植相关的库(以及所有的依赖)。要么,使用另一门同样拥有很多库的编程语言,但是不用再困扰于Python 2 / 3之间的问题。第二种选择显然不受欢迎,因为如果我们这样做了,在我们的生产环境中已经有很多Python 3的程序了并且大部分Python 2的库需要被移植。不管这些情况是否存在,人们要么继续使用Python 2开发程序,要么选择另一门不会打自己脸的语言...文章链接:Python 3 正在毁灭 Python
回复内容:
谢邀。先总结一下该文观点- Python 2.x的优势在于拥有众多的第三方库,虽然有很多库已经移植到Python 3.x,但也有很多没有移植,而且有很多库很难移植。
- 已有的Python 2.x项目可以无缝移植到Python 2.x的新版本上,而移植到Python 3.x上将更难,需要花费更多的人力物力。
- 大多数比较受欢迎并且支持兼容Python 2和Python3的库是通过运行在各自平台上的语言子集(subset)来写的。
- 最好的办法是Fork 2.7制作2.8,但官方却不支持这种做法。
- 第三方库现在越来越多库已经转向兼容Python 3.x,看PyPI上的列表https://pypi.python.org/pypi?:action=browse&c=533&show=all。是有些库使用了所谓语言子集来实现兼容Python 2 & 3,或者是使用six这个module来帮助处理跨Py2和Py3的兼容问题,这些有可能会影响效率,但是,对于整个程序而言,相信核心模块的算法优化带来的性能提升会远大于这些损失。而且有2to3.py这个脚本可以帮助转换生成Py3 Only的脚本来发布,完全可以做到自动化。
- 如果是现有的项目,相信很多都还处理Py 2.4-2.6的阶段吧,相信连Py 2.7都不会到,何况更新的库。这些老旧代码,相信有一些库的升级版也不一定能支持到
- Python 3把bytes和str的行为分开,是一件好事,终于把一个历史遗留下来的错误fix了,居然有人说不好?
- Python 3每次升级都会带来新的stdlib,会fix掉一些错误,还可能会加入新的语法。比如Python 3.4.x里面新的asyncio库,最爱!
照这样折腾下去Python真的要灭亡了。
反观PHP这几年一直在蓬勃发展,命名空间,包管理,HHVM,PHPng,还有异步并行的Swoole。曾经Python说自己是下一个PHP。结果呢。。。
其他语言如Golang,Node.js也逐渐火起来了。Python还是那样不温不火。可以说Python3这6年真的是致命错误。 1 C++是一个和C完全不同的语言,但是它向下兼容C
2 看不出Python3有任何理由不兼容Python2的语法。因此,唯一可以解释的,就是Python官方希望像一个独裁者一样领导社区,“反对我的都去死”。 那么社区的回应就是“独裁者去死”。
3 Python3对于Python2的语言特性优势,根本不足以打动Python2社区。
4 既然Python开源,而且版权限制比GPL还弱, 那么一旦Python官方停止对2.x的支持,一定会有社区自发维护的版本,不会比官方做得差。
5 既然得罪了社区,那么得到的回应就会有很多开发者抵制Python3,坚决不会将他们开发的库升级到3 新手学,干下哪个版本啊? 因为我在c++界混了那么多年所以我很吊,所以你们该听我说说话:
python的优势就是库多,我能快速抄袭别人的库,从而瞬间开发。
然而python3不兼容我用的库。
什么,你说移植?那种脏活累活怎么能让我这么有经验,这么高贵优雅的人去干!!!
我建议你们赶紧fork出来一个我能继续用的版本,最好啥也不改,以便于我即能什么都不用改我的码,又能声称我用的是最新版本,以便装逼
其他人的建议都不值一提,你们要是不听我的,就会死的跟perl社区一样惨。
——作者精神概要 Python 3的原罪就在于break了back compatibility,并且没有成功的说服开发者为什么他们需要迁移到Python 3上来。
但要说Python 3会杀死Python我觉得实在是言过其实,Python的生态系统摆在那里,可能在一些方面被其他语言和技术超过,但是总体而言地位依然是稳固的,毕竟在大多数应用场景下,它的性能并不是一个大的问题。
不过负面影响总是存在的。Python 2.x于3.x这个胶着的状态,在社区造成了很大的分歧。而这个分歧拖下去的时间越长,对于Python未来的发展就越不利。为什么呢?因为其他竞争对手都在快速的演进。例如在最重要的web开发领域,node.js和Go正在吸引越来越多的注意力。特别是Go,syntax和Python差别不大,out-of-box的性能却高了不止一个数量级。这促使不少的开发者,尤其是那种愿意尝试新技术并且广为传播的(所谓的evangelist),在面对2to3这个选择的时候,索性直接将整个技术栈换成Go。
个人而言,为什么不愿意迁移到Python 3呢?一句话:Python 2 just works。Python 3缺乏让人眼前一亮,想要跃跃欲试的feature upgrade。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

在 Sublime Text 中運行 Python 代碼,需先安裝 Python 插件,再創建 .py 文件並編寫代碼,最後按 Ctrl B 運行代碼,輸出會在控制台中顯示。

Golang在性能和可擴展性方面優於Python。 1)Golang的編譯型特性和高效並發模型使其在高並發場景下表現出色。 2)Python作為解釋型語言,執行速度較慢,但通過工具如Cython可優化性能。

在 Visual Studio Code(VSCode)中編寫代碼簡單易行,只需安裝 VSCode、創建項目、選擇語言、創建文件、編寫代碼、保存並運行即可。 VSCode 的優點包括跨平台、免費開源、強大功能、擴展豐富,以及輕量快速。

在 Notepad 中運行 Python 代碼需要安裝 Python 可執行文件和 NppExec 插件。安裝 Python 並為其添加 PATH 後,在 NppExec 插件中配置命令為“python”、參數為“{CURRENT_DIRECTORY}{FILE_NAME}”,即可在 Notepad 中通過快捷鍵“F6”運行 Python 代碼。
