今回はプログラミング言語のPythonとは何かについて、現在Pythonを使って開発をしている筆者が解説します。
本記事では、プログラミング言語Pythonについて、特徴やできること、需要や今後について解説します。
プログラミング初心者でも理解できるようにわかりやすく解説しましたので、ぜひ最後まで読んでPythonとは何か理解し興味を持っていただければと思います。
Pythonとは?
Python(パイソン)とはグイド・ヴァン・ロッサムにより創り出されたプログラミング言語です。
イギリスBBCのコメディ番組『空飛ぶモンティ・パイソン』がPythonという名前の由来であるようです。
一括りにPythonといってもその用途は多々あり、Webアプリケーション、組み込み開発、デスクトップアプリケーション、さらに人工知能開発、ビッグデータ解析などと多岐に渡ります。
近年では人工知能や深層学習の分野や、データ解析の分野で広く使われていることからも人気が出ています。
Pythonの特徴
Pythonには様々な特徴がありますが、本記事では代表として特徴をピックアップして紹介していきます。
文法がシンプルで読みやすい
Pythonのプログラミング言語としての主な特徴は、少ないコードで簡潔に書けるため比較的読みやすくなり、読み間違えや書き間違えが起こりづらくなっています。
簡潔と言っても程良い簡潔さであるため、他人のコードを解析することも容易になっていると思います。
この読みやすさ・書きやすさは重要で、開発効率の向上に寄与します。
文法が分かりやすいことや誰が書いても同じようなコードになることから、初心者でも取り掛かりやすくなっている言語です。
そもそもPythonは、コードを書きやすく読みやすくするために生まれたプログラミン言語のため、だれが書いても同じようなコードになるようになっています。
Pythonのプログラミングが簡単な理由の一つに「オフサイドルール」初稿というコードの書き方の規則があります。「オフサイドルール」初稿とは行頭をインデント(字下げ)することによって文の塊を指定するというプログラミング言語の規則です。
開発の現場において、ほかの人が書いたコードを読めるということはとても重要なことなのです。
ライブラリの豊富さ
また、Pythonは開発に役立つプログラムをまとめたものである「ライブラリ」の数が、数万に上ります。
ライブラリを用いることで、欲しいプログラムが簡単に作成できます。
大きく分けると以下の様なライブラリがあります。
- 数学関連(数値計算・信号処理・統計処理)
- 画像処理・音声処理・動画処理
- ウェブ開発・サーバー・フレームワーク
- ネットワーク
- GUI(グラフィカルユーザーインタフェース)
- データベース
- ドライバ
- 自然言語処理
- スクレイピング
この様に多くのライブラリありますので、効率的な開発をすることができます。
また、Pythonに標準で付属はしていないものの、別途インストールすれば使えるようになる「外部ライブラリ」も重要です。
特に、機械学習と聞いてよく出てくる「TensorFlow」「PyTorch」「NumPy」など、Python向けに提供されている「外部ライブラリ」は非常に多く、これが最近のPython人気を盛り上げている一つの要因となっています。
それ以外にもWebアプリケーションを開発するための「Django」「Flask」といったライブラリもあります。
「自分がやりたいこと」に合わせて、外部ライブラリを活用することで、すぐにでも本格的なプログラミングの世界に足を一歩踏み出せるのが、Pythonを使うことの大きなメリットと言えます。
インタプリタ型のためエラーを直しやすい
プログラミング言語にはコンパイラ型とインタプリタ型があります。
コンパイラ型の場合には一度すべてコーディングした後にコンパイルして実行ファイルを作成し、それを読み込ませるとプログラムが実行するという流れになります。
インタプリタ型の場合はプログラム実行と同時にコードを読み込むため、あらかじめコンパイルしておく必要がありません。
インタプリタ型の場合には確認がしやすく、結果的にエラーが少なくなりエラーの解読に時間がかかりにくくなります。
コンパイラ型で発生した大量のエラーを直していく作業は根気がいるため、不慣れな初心者には精神的なハードルが高いと言えるでしょう。
そうしたこともあり、インタプリタ型のPythonはエラーを直しやすく、初心者にも取り掛かりやすい言語と言えます。
Pythonのデメリット
実行の速度が遅い
Pythonの主なデメリットとしては、実行速度が遅いことが挙げられます。
インタプリタ型はコンパイラ型よりも実行速度が遅くなる特徴があり、Pythonはインタプリタ型の言語となっています。
企業などで使われる基幹システムや、大規模なシステム開発、処理速度の速さが必要となるゲーム開発などには不向きです。
インデントがずれるとエラーになってしまう
先ほどオフサイドルールについてお伝えしましたが、これは読みやすいというメリットがある一方で、エラーが生じやすいというデメリットの側面もあります。
機械はインデントに使われる空白の数が同じものを1つのまとまりとして認識します。
このインデントの位置(左側の空白の数)を間違えてしまうと、機械が正しく文の塊を把握することができず、エラーとなってしまいます。
Pythonのコードを記述する際には空白の数への注意が必要です。
しかしこれはきちんとコードを書く際に習慣として正しいインデントをつけていれば起こることはあまりありません。(大規模のシステム等で階層が深くなると偶に出たりします。開発する際はインデントとかが分かりやすくするツールなどを使っても良いかもしれません。)
Pythonの活用事例
Pythonは色々なサービス等を作成する事ができます。
Webサービス開発
もちろんPythonでも、Webアプリケーションを作成することが可能です。
筆者は以前の仕事でPythonを用いてWebアプリケーションを作成しています。
例えば、PythonにはDjangoなどWebアプリのフレームワークが実装されています。
PythonのWebフレームワークの中でもDjangoは特に有名で、フロントエンド部分からデータベース接続の部分まで必要なものが全部揃ったパッケージになっています。
Pythonを活用しているサービス例として下記があります。
企業名またはアプリケーション名 | Python活用事例 |
YouTube | 世界最大の動画視聴プラットフォーム |
写真共有型SNS | |
Evernote | ノートを取るように情報を蓄積するサービス |
Dropbox | オンラインストレージサービス |
世界最大規模の掲示板サイト |
筆者がよく使っている上記のどれもPythonを使ってアプリケーションを作成していますね。
AI(機械学習・深層学習)
Pythonで今一番注目を浴びているのが人工知能や機械学習の開発です。
SciPy、NumPyなどの科学技術や数学、統計用のフレームワークが充実しているだけでなく、TensorFlowやPyTorch、Chainerなどのディープラーニング用の有名ライブラリも複数あります。
TensorFlowはGoogle社が、PyTorchはFacebook社が開発しています。
そしてChainerは日本の企業であるPreferred Networks社が開発していたものの2019年に終了してしまいました。
どれもニューラルネットや機械学習などが直感的に扱えます。
Pythonを活用しているサービス例として下記があります。
企業名またはアプリケーション名 | Python活用事例 |
Pepper | ソフトバンクロボティクスが開発したヒト型ロボット |
Uber | 自動車配車ウェブサイトおよび配車サービスの提供 |
ソフトバンクが開発したロボットのPepper(ペッパー)には感情生成エンジン にPythonが使われていることでも知られています。
データ処理・分析・解析
Pythonの強みとして、数値計算能力と連携可能なシステムの多さが挙げられます。
例えば大量にあるデータベースのデータを内部計算して読みやすい行列表に計算したり、膨大なエクセルのデータを開かないで目的のデータのみ抽出して別アプリにコピーしたりする柔軟なデータ処理が可能です。
また数値計算を効率的におこなうNumPy、データ解析支援機能のPandas、配列や行列の演算をするSciPyなど、ライブラリも充実しています。
上述したAIの有名ライブラリの多くがPythonで動作しているのは、こうしたデータ処理、分析、解析用のライブラリが充実していることに起因するといわれています。
Pythonを活用しているサービス例として下記があります。
企業名またはアプリケーション名 | Python活用事例 |
Tableau | Pythonと連携してデータ分析・可視化を行うツール |
楽天 | ビッグデータを用いた物流戦略 |
マクロミル | マーケティングリサーチ事業 |
ぐるなび | ポータルサイト”ぐるなび” のデータ解析 |
Googleフォトのクラウド上での写真管理に画像処理を利用 |
ブロックチェーン
Pythonはブロックチェーンのようなフィンテック業界の基幹技術にも用いられています。
主要ライブラリであるhashibというハッシュ関数を備えている点、HTTPリクエストを操作できる点、数値計算ライブラリが豊富である点という3つの理由からPythonが用いられることが多いといわれています。
Pythonを活用しているサービス例として下記があります。
企業名またはアプリケーション名 | Python活用事例 |
LINE | 仮想通貨・ブロックチェーン事業 |
Web上の情報収集ツール
「クローリング(URLのリストを元にHTML情報をプログラムで取得してくること)」や「スクレイピング(取得したHTMLから任意の情報を抜き出すこと)」という技術を用いて、例えば株価情報の最新値を自動で定期的に収集するなどの操作がPythonは可能です。
有名な技術としてSeleniumがあり、これを用いることで情報収集やブラウザ操作やフォームにテキストを入力することが可能になります。
デスクトップアプリケーション
また、Pythonはデスクトップアプリケーションも作成することができます。
Pythonを活用しているサービス例として下記があります。
企業名またはアプリケーション名 | Python活用事例 |
BitTorrent | P2Pプロトコルをベースにした情報コンテンツ流通プラットフォーム |
Bender | 3DCG制作アプリ |
Anki | 暗記型学習アプリ |
Pythonが使われる仕事
Pythonを活用する仕事の種類としては下記の4種類が挙げられます。
- 人工知能(AI)エンジニア(AI、機械学習の技術を利用したサービス開発など)
- Webアプリケーションエンジニア(Webサービスメディアのシステム開発など)
- データサイエンティスト(Webサービスのデータ分析など)
- マーケティング(スクレイピング、画像解析、自動化などによる情報分析)
筆者は現在WebアプリケーションエンジニアとしてPythonを活用して開発をしています。
Pythonの需要と将来性
Pythonの需要と将来性について、
人材サービスのパーソルキャリアが調査した、全国の20代~50代のITエンジニア442人を対象に「2021年、ITエンジニアが学びたい(強化したい)プログラミング言語ランキング調査」を実施した。その結果、最も学びたい言語は「Python」で全体の32.8%を占めています。
参照:2021年、ITエンジニアが学びたいプログラミング言語ランキング
というようにエンジニアからしてもまだ人気のある言語でもあります。
また、求人数は主なサイトを調べた限り下記になります。
※上記抽出条件は「Python」のみとなるので詳細を指定すると上記より少なくなります。
上記を見ると求人自体はあります。
条件を絞ったりすると件数は減りますし、AI系だと求人数が少なくなったり経験者しか募集していないものになっていきます。
Pythonを学ぶための学習方法
以上までを読んでPythonを学んでみたいと思った方は、
下記に筆者が実際にPythonを取得するためにやった方法を記載していますので是非参考にしてみてください。
Pythonの開発環境を作成する
Pythonをインストールしてみたり、Pythonの開発環境を作成する際は、下記の記事を書いてありますので是非参考にしてみてください。
実際にPythonを動かしてみる
実際にPythonを動かしてみる手順も、下記の記事で記載してありますので是非参考にしてみてください。
まとめ
いかがでしょうか。今回は近年人気であるプログラミン言語のPythonについて紹介しました。
Pythonに興味を持ったり、仕事で使ってみたいと思った方は是非今回の機会を生かして挑戦してみてはいかがでしょうか。
また、下記には筆者のGitHubのリポジトリリンクを張ったので、そこから飛ぶといくつか公開しているPythonのプログラムがあるので参考にしてみてください。