Pythonはゆっくりと衰退しています

ビッグデータの要約

出典:中

**編集:Chen Zhiyan、coolboy **

1990年代初頭のリリース以来、Pythonは非常に人気があり、過去20年間で、その人気はC、C#、Java、さらにはJavascriptをはるかに上回りました。

Pythonは、データサイエンスと機械学習の分野で支配的であり、科学的および数学的コンピューティングの分野の主人公でさえありますが、Julia、Swift、Javaなどの言語と比較すると確かに欠けています。

**なぜPythonはそれほど人気があるのですか? **

Pythonの急速な開発の背後にある主な推進力の1つは、習得がかなり簡単で、強力に使用できることです。初心者にとって、C / C ++のような難しいプログラミング言語は構文に精通していない人から遠ざかるので、Pythonは非常に魅力的です。

言語の中核はコードの読みやすさです。Pythonの構文は簡潔で表現力豊かです。開発者は多くのコードを記述せずにアイデアや概念を表現できます(これはCやJavaなどの低レベル言語にも当てはまります)。非常にシンプルで、他のプログラミング言語とシームレスに統合できます(CPUを集中的に使用するタスクをC / C ++に配信するなど)。 Python言語で開発すると、開発者に多くのメリットがもたらされます。

Pythonが広く使用されているもう1つの理由は、Pythonが企業(FAANGを含む)で頻繁に使用されていることです。今日、想像できるあらゆるプロジェクトに対応するPythonパッケージを見つけることができます。科学コンピューティング用のNumpy、機械学習用のSklearn、コンピュータービジョン用のCaerです。

Pythonの弱点

**遅い、遅すぎる。 ****

言うまでもなく、速度は通常、開発者にとって最も重要な懸念事項の1つです。今だけでなく、これからも長い間そうなるでしょう。

Pythonの「遅さ」の主な理由は、次の2つの点に起因する可能性があります。1つは、Pythonがコンパイルされた言語ではなく解釈された言語であり、最終的に実行時間が遅くなることです。2つ目は、動的です。言語(変数のデータタイプは、実行中にPythonによって自動的に推測されます)。

初心者は「Pythonは本当に遅すぎる」という言葉に異議を唱えることがよくあります。実際、それは真実ですが、完全に真実ではありません。

たとえば、Pythonの機械学習ライブラリTensorFlowは実際にはC ++で記述されており、Pythonで呼び出されます。これはC ++の上に実装されたPythonの「ラッパー」です。これはNumpyの場合であり、Caerも同様の形式です。

PythonにはGIL(L) ###があります

Pythonの速度が遅い主な理由の1つは、GIL(Global Interpreter Lock)の存在です。これは、一度に1つのスレッドしか実行できません。これはシングルスレッドのパフォーマンスを向上させるのに役立ちますが、並列処理を制限するため、開発者は速度を上げるためにマルチスレッド処理プログラムを実装する必要があります。

メモリを大量に消費するタスクには最適ではありません

オブジェクトがスコープ外になると、Pythonは自動的にガベージコレクションを実行します。その目的は、CおよびC ++のメモリ管理に伴う複雑さの多くを排除することです。指定されたデータタイプには柔軟性がないため、Pythonによって消費されるメモリの量が急速に爆発する可能性があります。

さらに、実行時に、一部のバグはPythonによって無視され、最終的には開発プロセスを遅らせる主な動機になる可能性があります。

モバイルコンピューティングでのはるかに優れたパフォーマンス

デスクトップからスマートフォンへの移行に伴い、人々が携帯電話ソフトウェア用のより強力な言語を構築する必要があることは明らかです。 Pythonは、コンピューターおよびサーバープラットフォームで優れたパフォーマンスを発揮しますが、強力なモバイルコンピューティング処理機能がないため、モバイル開発での利点を失うことがよくあります。

近年、(Python)はこの分野で大きな進歩を遂げましたが、これらの新しく追加されたライブラリは、Kotlin、Swift、Javaなどの強力な競合他社とはほど遠いものです。

他の言語の台頭

最近、Julia、Rust、Swiftなどの新しい言語がPython、C / C、Javaから多くの優れた設計コンセプトを借用しています-Rustは実行時のメモリの安全性と並列性を保証し、Webアセンブリと同じものを提供します相互運用性; LLVMコンパイラツールチェーンをサポートしているため、SwiftはCとほぼ同じ速度です。JuliaはI / O(入力/出力)集約型タスクに非同期I / Oを提供し、速度は驚くべきものです。

結論として ###

Pythonは最高のプログラミング言語ではなく、C / C ++やJavaに取って代わることはできません。読みやすさと英語中心の文法を強調した、一般的なプログラミング言語として構築されました。人々はそれを使ってプログラムやアプリケーションを素早く開発することができます。

他の言語と同様に、Pythonは単なるツールです。一部のアプリケーションシナリオでは、これが最適なツールですが、別のシナリオでは、そうでない場合があります。ほとんどの場合、「非常に使いやすい」です。

それで、プログラミング言語として、Pythonは死ぬのでしょうか?

そうは思わない。

徐々に魅力を失っていますか?

ああ、たぶん少しだけ、少しだけ。

関連レポート:

https://towardsdatascience.com/python-is-slowly-losing-its-charm-9ca652726492

Recommended Posts

Pythonはゆっくりと衰退しています
Python 3.9が登場!
警告! Pythonは徐々にその魅力を失っています!
なぜpythonが人気なのか
Pythonは短いクロール音楽です
pythonは解釈された言語ですか?
pythonは解釈された言語ですか
Pythonは短世界の流行マップです
Pythonは短い_SVMテストです
pythonコードは大文字と小文字を区別しますか
pythonのイントロスペクションとは何ですか
pythonのオブジェクト指向とは何ですか
Python変数スコープとは
pythonのリスト内包表記とは何ですか
pythonに関数のオーバーロードはありますか
Pythonのディープコピーは完璧ではありません
Pythonの判断は空のインスタンス共有です
Pythonはクロスプラットフォームの言語コードです
Pythonの用途は何ですか
python言語は無料ですか、それとも有料ですか?
Pythonのすべてがオブジェクトです
pythonはデータマイニングに適していますか
pythonクローラーは簡単に習得できますか
python言語のアルゴリズムはありますか
python変数の範囲は何ですか
pythonのid関数は何ですか
Pythonの匿名関数とは何ですか
python3のピップパスはどこにありますか
自習用pythonに適したシステム
python開発の見通しは何ですか
Pythonのシーケンステーブルとは
pythonの数値は可変型ですか
pythonがクローラーの作成に適しているのはなぜですか
pythonの関数本体は何ですか
Pythonは主にどの方向に使用されます
pythonにヘルパー関数はありますか
pythonインストール後のディレクトリはどこにありますか