目次
回复内容:

Python 3 正在毁灭 Python 吗?

Jun 06, 2016 pm 04:23 PM
bytes json python yaml

... 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

回复内容:

谢邀。先总结一下该文观点
  1. Python 2.x的优势在于拥有众多的第三方库,虽然有很多库已经移植到Python 3.x,但也有很多没有移植,而且有很多库很难移植。
  2. 已有的Python 2.x项目可以无缝移植到Python 2.x的新版本上,而移植到Python 3.x上将更难,需要花费更多的人力物力。
  3. 大多数比较受欢迎并且支持兼容Python 2和Python3的库是通过运行在各自平台上的语言子集(subset)来写的。
  4. 最好的办法是Fork 2.7制作2.8,但官方却不支持这种做法。
该文作者说得很有道理,但我觉得Python 3.x并不会毁灭Python,会令Python社区变得更好。
  1. 第三方库现在越来越多库已经转向兼容Python 3.x,看PyPI上的列表pypi.python.org/pypi?。是有些库使用了所谓语言子集来实现兼容Python 2 & 3,或者是使用six这个module来帮助处理跨Py2和Py3的兼容问题,这些有可能会影响效率,但是,对于整个程序而言,相信核心模块的算法优化带来的性能提升会远大于这些损失。而且有2to3.py这个脚本可以帮助转换生成Py3 Only的脚本来发布,完全可以做到自动化。
  2. 如果是现有的项目,相信很多都还处理Py 2.4-2.6的阶段吧,相信连Py 2.7都不会到,何况更新的库。这些老旧代码,相信有一些库的升级版也不一定能支持到
  3. Python 3把bytes和str的行为分开,是一件好事,终于把一个历史遗留下来的错误fix了,居然有人说不好?
  4. Python 3每次升级都会带来新的stdlib,会fix掉一些错误,还可能会加入新的语法。比如Python 3.4.x里面新的asyncio库,最爱!
旧的项目,stays in Python 2。若你要开启一个新的项目,Why not choose Python 3? 新生代py程序员可能更愿意用py3,各种教辅资料也会慢慢转向py3。py2到3就是进步,C语言还几十年几乎不变呢。向下兼容可能成为发展的阻碍,看看Windows。Python依然是主流语言,随着py2停滞开发,py3必然会慢慢替代py2,不断加入新特性和修复以前的设计错误,使之成为更好用的工具。不能因为你习惯2,不想接受新东西就排斥3,没好处的,就像WinXP与win7,新软硬件很多已不再支持XP 如果python3改名叫python++可能就没争议了。。。 不会,python3只会毁灭python2,因为这本就是它出现的意义 Python3 开发了6年,毫无建树。Python3没有革命性的创新,又不向下兼容。
照这样折腾下去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。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

携帯電話のXMLファイルをPDFに変換する方法は? 携帯電話のXMLファイルをPDFに変換する方法は? Apr 02, 2025 pm 10:12 PM

単一のアプリケーションで携帯電話でXMLからPDF変換を直接完了することは不可能です。クラウドサービスを使用する必要があります。クラウドサービスは、2つのステップで達成できます。1。XMLをクラウド内のPDFに変換し、2。携帯電話の変換されたPDFファイルにアクセスまたはダウンロードします。

携帯電話でXMLをPDFに変換するとき、変換速度は高速ですか? 携帯電話でXMLをPDFに変換するとき、変換速度は高速ですか? Apr 02, 2025 pm 10:09 PM

Mobile XMLからPDFへの速度は、次の要因に依存します。XML構造の複雑さです。モバイルハードウェア構成変換方法(ライブラリ、アルゴリズム)コードの品質最適化方法(効率的なライブラリ、アルゴリズムの最適化、キャッシュデータ、およびマルチスレッドの利用)。全体として、絶対的な答えはなく、特定の状況に従って最適化する必要があります。

C言語合計の機能は何ですか? C言語合計の機能は何ですか? Apr 03, 2025 pm 02:21 PM

C言語に組み込みの合計機能はないため、自分で書く必要があります。合計は、配列を通過して要素を蓄積することで達成できます。ループバージョン:合計は、ループとアレイの長さを使用して計算されます。ポインターバージョン:ポインターを使用してアレイ要素を指し示し、効率的な合計が自己概要ポインターを通じて達成されます。アレイバージョンを動的に割り当てます:[アレイ]を動的に割り当ててメモリを自分で管理し、メモリの漏れを防ぐために割り当てられたメモリが解放されます。

XMLをPDFに変換できるモバイルアプリはありますか? XMLをPDFに変換できるモバイルアプリはありますか? Apr 02, 2025 pm 08:54 PM

XMLをPDFに直接変換するアプリケーションは、2つの根本的に異なる形式であるため、見つかりません。 XMLはデータの保存に使用され、PDFはドキュメントを表示するために使用されます。変換を完了するには、PythonやReportLabなどのプログラミング言語とライブラリを使用して、XMLデータを解析してPDFドキュメントを生成できます。

XMLを写真に変換する方法 XMLを写真に変換する方法 Apr 03, 2025 am 07:39 AM

XMLは、XSLTコンバーターまたは画像ライブラリを使用して画像に変換できます。 XSLTコンバーター:XSLTプロセッサとスタイルシートを使用して、XMLを画像に変換します。画像ライブラリ:PILやImageMagickなどのライブラリを使用して、形状やテキストの描画などのXMLデータから画像を作成します。

推奨されるXMLフォーマットツール 推奨されるXMLフォーマットツール Apr 02, 2025 pm 09:03 PM

XMLフォーマットツールは、読みやすさと理解を向上させるために、ルールに従ってコードを入力できます。ツールを選択するときは、カスタマイズ機能、特別な状況の処理、パフォーマンス、使いやすさに注意してください。一般的に使用されるツールタイプには、オンラインツール、IDEプラグイン、コマンドラインツールが含まれます。

XMLをPDFに変換できるモバイルアプリはありますか? XMLをPDFに変換できるモバイルアプリはありますか? Apr 02, 2025 pm 09:45 PM

XML構造が柔軟で多様であるため、すべてのXMLファイルをPDFSに変換できるアプリはありません。 XMLのPDFへのコアは、データ構造をページレイアウトに変換することです。これには、XMLの解析とPDFの生成が必要です。一般的な方法には、ElementTreeなどのPythonライブラリを使用してXMLを解析し、ReportLabライブラリを使用してPDFを生成することが含まれます。複雑なXMLの場合、XSLT変換構造を使用する必要がある場合があります。パフォーマンスを最適化するときは、マルチスレッドまたはマルチプロセスの使用を検討し、適切なライブラリを選択します。

XMLを画像に変換するプロセスは何ですか? XMLを画像に変換するプロセスは何ですか? Apr 02, 2025 pm 08:24 PM

XML画像を変換するには、最初にXMLデータ構造を決定し、次に適切なグラフィカルライブラリ(PythonのMatplotlibなど)とメソッドを選択し、データ構造に基づいて視覚化戦略を選択し、データのボリュームと画像形式を検討し、バッチ処理を実行するか、効率的なライブラリを使用して、最終的にPNG、JPEG、またはSVGに応じて保存します。

See all articles