Pythonのメリット・デメリットについてまとめましたので紹介します。
プログラミング初心者の人はPythonを利用する指針にしていただければと思います。
ブログなどでメリットは多く紹介していますが、
※情報としては触りの部分だけを抜粋しているの詳細について調べてくださいね。
または、この記事を呼んで開発時にPythonを利用要否を検討していただければ幸いです。
Pythonを利用するメリット
まずはPythonを利用するメリットを紹介します。
ライブラリが充実しており、簡単にプログラムを書くことができる
Pythonを利用する最大のメリットはライブラリが非常に充実しているため、
簡単にプログラムを書くことができる点です。
例えばHTTPリクエストに使うurllibというPython標準モジュールがありますが
requestsというライブラリを使うとより簡単にコーディングすることが出来ます
以下のような推薦文もあります。
推薦文Amazon、Google、Twilio, Mozilla, Heroku, PayPal, NPR, Obama for America, Transifex, Native Instruments, The Washington Post, Twitter, SoundCloud、Kippt、Readability、Federal US Institutions は内部でRequestsを使っています。
PyPIから1,500,000回以上インストールされました。 – Armin Ronacher
Requestsは、どのようにして綺麗なAPIを正しく抽象化できるかの完璧な例です。 – Matt DeBoard
@kennethreitz さんのPythonのRequestsモジュールのタトゥーを何とかして体に入れたい。以上。 – Daniel Greenfeld
1200行のスパゲッティーコードのライブラリを数10行くらいのコードにしてくれた@kennethreitzのリクエストライブラリに感謝しています。 すばらしくなりました。 – Kenny Meyers
PythonのHTTPの実装: 使うか迷ったときも、そうでない時も、Requestsを使います。綺麗な設計で、シンプルで、Pythonicだ。
その他にもPythonでは以下のプログラムを行うことが出来ます。
- Webスクレイピング
- 統計処理
- 機械学習
- Webアプリケーション
誰が書いたコードでも読みやすい
Pythonはインデントでプログラムの構造を制御するため、
誰が書いたコードでも読みやすいコードになります。
他の言語では同じコードでもスタイルがバラバラになってしまいますが、
Pythonではそのようなことは起こりにくいです。
Pythonが同じコードになりやすいのは、
以下のようなコンセプトで作成されたプログラミング言語だからです。
“There should be one―and preferably only one―obvious way to do it” 誰もが正しいと考える、
たった1つの方法をできる限り採用する
初心者がGithubなどで他人のプログラミング言語を読む際に分かりやすいというのは大きなメリットです。
余談ですが、Perlという言語は「There’s more than one way to do it」 (やり方は一つじゃない)」と
いう思想で作成されたプログラミング言語であるため、
誰が書いたプログラムも読むことが出来ないと言われています。
コンパイルの必要がなく、直ぐに実行できる
Pythonはコンパイルの必要がなく、
環境を準備してコーディングが終わったら直ぐに実行することができます。
C/C++やJavaなどの言語はプログラムをコーディングした後にコンパイルという準備が作業をして、
実行ファイルを作成します。
プログラムのコンパイルという作業は、とても時間がかかります。
また大量のエラーが発生し、結局実行まで出来ずに挫折する人が多くいます。
Pythonを使用するデメリット
ここからはあまり記事にされていないPythonのデメリットを紹介していきたいと思います。
実行速度が遅い
Pythonは他の言語に比べると実行速度が大変遅いです。
実行速度が遅いため、ミッションクリティカルなシステムや企業向けの基幹システムなどへの導入は少ないです。
フェボナッチ数というメジャーなアルゴリズムの実行速度を比較したページがありますので、
ぜひ参考にしてみてください。
参考:【まとめ】フィボナッチ数だけで40以上のプログラム言語に精通したつもりになる
これを見ますと下から数えた方が早いランキングになっています。。。
日本語のナレッジが少ない
メリットでも説明したとおりPythonでは、
- Webスクレイピング
- 統計処理
- 機械学習
- Webアプリケーション
など様々なライブラリやフレームワークがありますが、
日本語のドキュメントが少なく英語が苦手な人は苦労します。
DjangoなどのWebフレームワークを学習するために「Udemy」などの動画学習サービスを利用することをオススメします。
オススメ:プログラミング初心者でも安心、Python/Django入門講座はこちら
統計処理や人工知能をしっかりと学習したいならば、「Aidemy」などの学習サービスを利用するオススメします。
オススメ:人工知能特化型プログラミング学習「Aidemy Premium Plan」の無料ビデオカウンセリングはこちら
モバイル開発・ゲーム開発の環境が整っていない
Pythonはバックエンドに強い言語であるため、
モバイル開発やゲーム開発用のライブラリが充実していません。
モバイル開発環境として「Kivy」がありますが、ドキュメントが少なく苦労するためオススメ出来ません。
またPythonを使用したゲーム開発をする場合には、以下の書籍が発売されています。
12歳からはじめる ゼロからの Pythonゲームプログラミング教室posted with ヨメレバ
大槻有一郎,リブロワークスPython部 ラトルズ 2017-05-11
ただグラフィカルなゲームを作成する場合には、ゲームエンジンやライブラリが足りないのでこちらもオススメできません。