pythonのメリット・デメリット!できること・クラスの存在意義は?

pythonというプログラミング開発言語はご存じでしょうか? pythonは「パイソン」と読みます。pythonは、1991年に開発されたインタプリタ言語です。インタプリタ言語とは、事前にコンパイルせず、実行時にプログラムソースがpythonエンジンによって解釈されて実行されるタイプの言語のことです。pythonは、少ないコード量でプログラムが書ける、コードが初心者にも読みやすい、といった評判がある、魅力的な言語です。 本稿では、pythonのメリット、デメリットやクラスの存在意義について解説していきたいと思います。

pythonのメリット

kuguru,クグル,くぐる,プログラミング言語

コードの読みやすさを重視された設計

文法的な最大の特徴は、「文のブロックがインテントである」ということでしょう。例えば、文のブロックを{}で表現するJavaと、pythonで比べてみると以下のようになります。

Javaの場合

if(i == 1){
System.out.println(“”LINE A””);
System.out.println(“”LINE B””);
}

pythonの場合

if i == 1;
print “”LINE A””
print “”LINB B””

となります。記述量が少ないこと、インテント=ブロックなので読みやすいことがお分かりいただけたかと思います。

利用用途が広い

PHPなどは、web開発特化型の開発言語として有名ですが、pythonはwebアプリの開発に特化した言語ではありません。pythonの場合は、webアプリ開発の他、データ解析、自然言語処理、ゲーム、デスクトップアプリなど、汎用的なシステム開発に使用することができます。

また、最近では人工知能の開発言語としても注目を集めており、IEEE Spectrumが発表した人気プログラミング言語のランキングでは、Java、C言語についで、堂々の3位に入っているほど人気があり、シェアも広い言語です。

拡張モジュールの作成サポートツールが豊富

手軽に他のC/C++のライブラリと連携することができます。C/C++は非常に実行速度が速いので、こうした言語を呼び出すライブラリを利用することで、インタプリタ系の言語にありがちな、実効速度が遅いという問題を解決しています。

pythonのデメリット

くぐる,クグル,kuguru

日本語サポートが少ないこと

世界的に見ると、プログラミング言語の人気ランキングで3位に入っていたpythonですが、日本国内だけでみると、いまいち盛り上がりに欠けています。その分、日本語で書かれた技術的な紹介サイトは、他の人気プログラミング言語に比べると少ない状況です。

メソッドの引数に必ずselfを加える必要がある

理由があってこのような仕様になっているのですが、python以外の言語に慣れた人から見ると、面倒な仕様であることは否めません。

インデントが強制される仕様

また、メリットでもあるのですが、インデントで文のブロックを表現しているため、インデントが強制される仕様となっています。これも、他のプログラミング言語に慣れた人から見ると、若干余計なお世話、と見えてしまいます。実行速度は拡張モジュールを利用することで高速にすることができるのですが、後付けのオブジェクト指向言語であるため、他のオブジェクト指向言語に比べると、少し遅く感じる可能性がります。

pythonのメリットを生かしてできること

プログラミング言語,kuguru,クグル,くぐる

日本国内でwebアプリ開発といえば、PHPが主流なイメージがありますが、pythonもwebアプリの開発に向いています。言語仕様がわかりやすい、メンテナンスしやすい、コード量が他の言語に比べて少ないといった利点に加え、フレームワークが充実しているという点もweb開発向きだと言えるでしょう。また、JavaやPHPに比べて初心者が学びやすい言語でもあるので、習得に時間がかかりません。

さらに、最近ではAIの開発に利用されることも増えました。元々、学術計算向けのライブラリが充実した言語なのですが、それにAI用のモジュールが次々と追加され、AI開発に必要な機能は一通りモジュール化されています。

pythonがオブジェクト指向であるメリット

pythonはオブジェクト指向言語のため、一般的なオブジェクト指向言語と同様のメリットを享受することができます。オブジェクト指向としてのメリットとは、すなわち、継承、ポリモーフィズム、カプセル化を最大限に活用して、見通しが良く、保守性が高いプログラムを記述することができるということです。

特に、変更に対して柔軟に対応できるという点は、最大のメリットでしょう。また、古くからある構造化指向言語と比べると、処理の切り分けが容易で、シンプルに記述できるという利点もあります。さらに、オブジェクト指向ならではのデザインパターンを適用することもできます。

pythonではクラスメリットを有意義に使おう

Python,ヘビ,kuguru,クグル,くぐる

pythonを最大限に有効活用するためには、当然ながらオブジェクト指向のメリットを活用することが必要です。まずはプログラムを始める前に、OOAに準じた設計を行います。すなわち、ユースケース図での要件整理、クラス図の作成、必要に応じて状態遷移図も作成します。これらを踏まえて、クラス設計を行い、各クラスを記述していきます。こうすることで、変更に強く、読みやすいプログラムを作成することができるでしょう。

まとめ

本稿では、pythonのメリット、デメリット、オブジェクト指向である意義ついて解説しました。pythonは世界的に人気のスクリプト言語で、もちろんオブジェクト指向言語でもあります。webアプリの開発はもちろん、最近では人工知能の開発で注目を集めています。pythonの文法はシンプルで読みやすく、初心者が学ぶには適していると言えます。ただし、pythonを最大限に活用しようと思えば、オブジェクト指向についての知識が必須です。pythonの勉強と併せて、オブジェクト指向の勉強もしましょう。

▶Pyhonの他の記事も見てみよう!
今更聞けない!Python(パイソン)とは?何ができるの?
【python入門】webアプリケーションフレームワーク・サンプルを徹底解説!
【python入門】初心者でもできるpython開発環境構築!おすすめは?
【python入門】おすすめWEBフレームワーク3つを比較!
【初心者必見】pythonを学ぶには?学習方法・サイト・勉強本まとめ!
【初心者から上級者まで】Python勉強のための学習本11選!

関連記事

ページ上部へ戻る