Python(パイソン)、昔からあってイマイチ脚光を浴びることがなかったプログラミング言語ですが、ここ数年で一気にそのシェアを伸ばしています。いつの間にか圧倒的な地位を築いているプログラミング言語、そんなイメージがあります。
ちょっとしたツールであれば、エクセルのマクロやPHPで作成するのが、ついこの間までの主流だったはずなのですが、今ではPythonに移り変わっており、エンジニアとしてPythonを使えないと話にならないという声も出てきているぐらいです。
今回はそんなPythonについて、何故こんなに流行しているのか、Pythonで何ができるのか、その辺りについて考えていきます。
Python市場の動向
プログラミング言語は200種類以上存在すると言われていますが、Pythonはその中でどれくらい使われているのでしょうか。まずはそこから確認してみましょう。
オランダのTIOBE Softwareという会社は、複数の検索エンジンの検索結果を集約し、話題になっているプログラミング言語を毎月ランキングで発表しています。そのランキングを確認してみましょう。
2021年4月のランキングでは、C言語、Javaに次ぐ、第3位となっています。2位のJavaとは僅差で、すぐにでも抜いてしまいそうな勢いです。
しかし、上記は世界でのランキングですので、日本のランキングが同じ結果となるとは限りません。日本のランキングも確認してみましょう。
以下は、TECH Street(テックストリート)が、2021年に学びたい(強化したい)プログラミング言語を全国のITエンジニア442人を対象にしたアンケート結果です。
ここでは、Pythonが断トツでした。JavaやC言語より高いのもそうですが、JavaScriptともこんなに差が出ているのことに驚きました。HTML5+CSS+JavaScriptを組み合わせたブラウザ上で動作するWebアプリ開発の人気ももっとあると思っていましたが、Pythonなんですね。同じようなランキングを他の会社でもやってましたが、どのランキングもPythonがトップとなっていました。
なぜPythonなのか?
Pythonは、1991年に開発されたプログラミング言語で、その歴史は長いです。昔の情報処理の教科書では、COBOLであれば事務計算、FORTRANであれば科学技術計算、Pythonであれば人工知能分野で使われる言語というような感じでよく説明されていました。しかしそれらの言語は特殊な分野で使われる言語で、大学や専門学校などで習う言語ではありませんでした。
近年の人口知能(AI)への需要が高まりにより、分野が一致するPythonの需要も高まったのでしょう。
実際、世界を見てみると
- YouTube
- Dropbox
- Evernote
など、利用者数がものすごいモンスターWebサイトでもその開発言語としてPythonが使われています。
ただ、確かに人工知能への需要が伸びているのはわかるのですが、それだけでここまでのPython人気となるのかというと疑問が残ります。
Python人気はその汎用性の高さにある
人口知能分野に強いと言われるPythonは、何となく難しそうというイメージが湧いてしまうところですが、実はそうではありません。以下は私が考えるPythonの特徴です。
- 文法がシンプル
- コード量が少ない
- コードの可読性が高い(読みやすい)
- 汎用性が高い(ライブラリの数がものすごく多い)
Pythonで開発経験があるエンジニアもだいたい同じような特徴を挙げていますが、Pythonは、他の言語と比べて、少ないコード量(行数)でアプリケーションを開発できます。文法もシンプルなので、他人が書いたプログラムでもとても読み取りやすいです。(この辺は逆にC言語エンジニアに敬遠されがちな要因とも言えます。)
そして最もPython人気を押し上げた要因は、その汎用性の高さにあると思ってます。つまり、Pythonでできることがとても多いということです。
Pythonで何ができるのか
Pythonでできることとして以下のようなアプリ開発が挙げられます。
- Webアプリ
- 機械学習
- データサイエンス
- スクレイピング(Webサイトからのデータ収集)
- VBAマクロ
- ゲーム
- ビットコインやFXの自動売買アプリ
上記の通り、Pythonは何も人工知能の分野に特化した言語ではないのです。Webアプリからゲーム、投資用のアプリまで幅が広いです。VBAマクロもPythonで作れてしまいます。
最近では、エクセルマクロはもう古いですね!今はPythonです!
テストデータを作成するエクセルマクロ作ってと若い社員にお願いしたら、同じようなことを言ってました。そのときは「は?参考になるマクロもあるから、エクセルで作って」と返しましたが、確かにそのとおりなのかもしれません。(それならマクロウイルスを脅威を排除できますし。)
でも、なんぜこんなにも汎用性が高いんですか?
それは、優秀なライブラリがたくさん存在するからです。Webアプリ開発なら「Django」や「Flask」、エクセルマクロなら「OpenPyXL」、スクレイピングなら「requests」といった具合です。
このようにどんな開発においてもオールマイティに活用できる言語であり、特に小規模なWebシステムやツールの開発では、その利便性を得ることができる言語と言えます。
Pythonが副業に人気の理由
今の時代、いかに効率的に業務を遂行できるかが、どの企業でも命題になっています。パソコンを使って毎日繰り返し行っている業務を、可能な範囲で自動化し、手作業を減らす。やってる企業はとっくにやってることですが、働き方改革により、残業規制が厳しくなり、業務効率化の動きがさらに強まっているように感じます。
ただ、業務効率化と言っても、その仕組みを作るためのお金がかかります。業務をシステム化しようとシステム開発の見積もりをシステム開発会社に依頼しようものなら、ものすごい金額が出てきて、跳び上がってしまう社長も多いです。(実際、かなり前の話ですが、そうした見積もりを出したとき、跳び上がるまではいかないにしても、それに近い反応をされたことがあります。)
システム開発会社にしても、それは別にぼったくってるわけではありません。お客さんからの要望を聞き出し、仕様書にまとめ、設計して、コーティング、テストと、システムを開発する上でエンジニアに対してそれだけの工数が必要となるわけです。また、会社である以上、エンジニア分だけの労働対価だけでは済みません。管理職や営業職の分も積み上げられます。そういった分を含めると、それなりの金額となってしまうというわけです。
しかし、お客さんからしても、仕様書とか設計書とかそんな形式ばったものは必要なく、完璧でなくても良いから、ちょっとしたツールを作ってほしいだけということも多いです。
ここにミスマッチが生じているわけです。
そんなミスマッチは長らく続いていたのですが、クラウドソーシング(企業などがインターネットを通じて,不特定多数の人々に対するアウトソーシングを行うこと)という仕組みが出来て、フリーランスや副業などでも、仕事を請け負うことができるようになったので、ミスマッチが解消されたわけです。
そして、そんなちょっとしたツールを作成するのに、Pythonが適しており、この側面からもPythonの人気を押し上げているように感じます。
まとめ
ここまで見てきたようにPythonは今、最もアツいプログラミング言語で、Pythonを知らないと若い人からバカにされてしまいます。
まじめな話、小規模なWebシステムやツール開発にはすごく適した言語と言え、覚えておいて損はないです。
Pythonを使ってAI(人工知能)をプログラムする技術を本気で身につけたいならテックキャンプがおススメです。AIプログラミングを通して、Pythonを使ったプログラミングの概念と文法を理解できます。
無料カウンセリングがあるので、とりあえず自分に合うかどうか確認して、合わないと思ったらやめれば良いです。