Pythonの長所と短所に関する開発者向けガイド

Pythonは、Python Software Foundationから、どこでも簡単に習得して実行できると請求されています。これは、Web開発、科学計算、教育など、さまざまな種類のアプリケーションに役立ちます。GoogleとInstagramはPythonの多くのユーザーの1つであり、この言語は人気指数で高いスコアを獲得しています。

しかし、Pythonには問題があり、そのパフォーマンスと設計上の癖について疑問が投げかけられています。Pythonについて正しいこと、そしておそらくそうではないことを理解するために、Large PaulKrillの編集者はPythonコミュニティの要人に意見を求めました。

Pythonの長所

読んで、簡単に使ってください。「Pythonプログラムの主な特徴は、読みやすいことです」と、PyPL言語インデックスを実行するPythonプログラマー兼ブロガーのPierreCarbonnelle氏は述べています。 「これはあなたと他の人に利益をもたらします。プログラムを書くときにあなたがより明確に考えるのを助け、あなたのプログラムを維持または強化する他の人を助けます。どちらの場合も、Pythonプログラムを書くよりもPythonプログラムを書く方が少ない労力で済みます。 C ++やJavaなどの別の言語で。」 Pythonの可読性により、オープンソース開発が容易になるとCarbonnelle氏は付け加えました。

Pythonは使いやすく、学界で非常に人気があり、大きな人材プールを生み出していると、Python / Django開発を専門とするソフトウェアコンサルティング会社であるTivixのCTOであるSumitChachra氏は述べています。DjangoとPythonは、Webおよびモバイル開発でTivixによって活用されていると彼は言います。

Pythonは、コードを書くための非常に生産的な方法であると、WingwareのStephen Deibel氏は言います。これにより、Wing PythonIDEが作成されます。「これのいくつかは単純な構文と読みやすさから来ています-事実上「ボイラープレート」はまったくありません。それのいくつかは豊富でよく設計されたビルトインと標準ライブラリと多くのサードパーティのオープンソースの可用性から来ていますライブラリとモジュール。」理解しやすいことで、コードの保守が容易になると彼は付け加えています。 

Chachra氏によると、Pythonは動的に型指定され、柔軟性があり、コードの冗長性が低くなっています。しかし、彼は動的型付けを潜在的なネガティブとして挙げています(以下を参照)。

モノのインターネットの機会。Carbonnelle氏によると、Raspberry Piなどの新しいプラットフォームがPythonに基づいているため、モノのインターネットでPythonが普及する可能性があります。Raspberry Piのドキュメントでは、この言語を「使いやすく(読み取り書き込みが簡単)、Raspberry Piを使用すると、プロジェクトを現実の世界に接続できる、素晴らしく強力なプログラミング言語」と引用されています。

非同期コーディングの利点。 Pythonは、「スレッド化ではなく、単一のイベントループを使用して小さな単位で作業を行う非同期コードの記述に最適です」とDeibel氏は述べています。このコードは、リソースの競合やデッドロックなどを混乱させることなく、記述と保守が簡単なことが多いと彼は言います。「Pythonのジェネレーターは、このアプローチで多くの処理ループの実行をインターリーブするための優れた方法です。」 

マルチパラダイムアプローチはJavaに最適です。Carbonnelle氏によると、PythonのプログラミングアプローチはJavaほど制限されていません。「たとえば、Pythonで「Helloworld」を出力するためにオブジェクト指向クラスを作成する必要はありません。Javaで作成する必要があります。」Javaとは異なり、Pythonはマルチパラダイムであり、OO、手続き型、および関数型プログラミングスタイルをサポートしていると彼は言います。(Javaは最近Java 8に機能機能を追加しました。)

「Pythonでは、すべてがオブジェクトです」と、Python Software Foundationの取締役会のメンバーであり、CPythonの中心的な貢献者であるBrianCurtin氏は述べています。「いくつかのプログラミングパラダイムを使用してPythonでアプリケーションを作成することは可能ですが、非常に明確で理解しやすいオブジェクト指向コードを作成することはできます。」

Pythonの短所

速度が問題になる可能性があります。「これはインタープリター型言語であるため、コンパイル型言語よりも何倍も遅いことがよくあります」とカーティン氏は言います。「しかし、それはランタイムから言語を分離することに戻ります。PyPyで実行されるPythonコードの特定のベンチマークは、同等のCコードなどよりも高速に実行されます。」

「Pythonの考えられる欠点は、実行速度が遅いことです」とCarbonnelle氏は言います。しかし、多くのPythonパッケージは何年にもわたって最適化されており、C速度で実行されていると彼は言います。

Chachra氏は、「C / C ++などの古い言語や、Goなどの新しい言語に比べてパフォーマンスが遅い」と述べています。

モバイルコンピューティングとブラウザがない。「Pythonは多くのサーバーおよびデスクトッププラットフォームに存在しますが、モバイルコンピューティングには弱く、Pythonで開発されたスマートフォンアプリケーションはほとんどありません」とCarbonnelle氏は言います。「Webアプリケーションのクライアント側でもめったに見られません。」

PythonはWebブラウザにはありません、とDeibel氏は述べています。「それは本当に残念です。ブライトンはありますが、実際に使用できるとは思いません。」Pythonはセキュリティで保護するのが難しいので、ブラウザにはないのです、と彼は付け加えます。「Python用の安全なサンドボックス/ジェイルはまだ実際にはありません。CPython(標準実装)では基本的に不可能だと考えられています。 

設計上の制限。Pythonの信者は、言語の設計に関するいくつかの問題を引用しました。言語は動的に型付けされるため、より多くのテストが必要であり、実行時にのみ表示されるエラーがあります、とChachra氏は言います。

一方、Pythonのグローバルインタープリターロックは、一度に1つのスレッドのみがPython内部にアクセスできることを意味しますとDeibel氏は言います。「マルチプロセッシングモジュールを使用してタスクを個別のプロセスに簡単に生成したり、代わりに非同期コードを記述したりできるため、これは最近ではそれほど重要ではないかもしれません。」 

Curtinは、Pythonの使用に関していくつかの規則があると言いますが、重要な空白はインタープリターによって強制されるものです。「Pythonプログラムの構造は一貫している必要があるため、角かっこやその他の識別子によってユーザーが他の言語でより自由に使用できる場合、Pythonに関してはインデントが重要になります。」