ソフトウェア品質の評価などを手掛けているTIOBE インデックスが集計した人気プログラミング言語で1位になっているPython。
使い始めて約1年たちますが、やっと書き方などにも慣れてきてきました。
今回は、そんなPythonの特徴と使ってみてよかったこといまいちなところについて書いていこうと思います。
私個人の見解でいろいろ書いていますが、Pythonは素晴らしい言語で将来性もあり習得すべき言語だと思います。
Pythonの言語的特徴
簡単にPythonの特徴を羅列すると
- 変数や属性に型を指定する必要ない動的型付け言語
- インタプリタ型
- インデントが揃っているコードをブロックとして認識する。
といったところでしょうか。
動的型付け言語
動的型付け言語は、プログラム実行時に自動で型を判断するため、型を書く必要がありません。
型を書く必要がないので非常にシンプルに記述できます。(Python,JavaScript,Rubyなど)
ただ、型が保証されないのでプログラムが実行されるまで型チェックがされず、あとで面倒くさいことになることがあります。特に複数人で開発を行う際は、その変数にどんなものが入るかをわかりやすく記述しておかないと変数がよくわからなくなることがあります。
逆に静的型付け言語は、コンパイル時に型の整合性をチェックするので、不整合が発生するとコンパイル時にエラーになります。大人数での開発案件では重宝されます。(C,C#,VB,Javaなど)
ただPythonバージョン3.6から型ヒントという機能が追加されて型を意識した開発もできるようになりました。
※型ヒントは、型を指定はできるが不整合があってもプログラム実行までチェックはしない。
最近、JavaScriptも型付けを意識したTypeScriptに変わりつつあります。PythonもFastAPIなどの新しいフレームワークには型チェックができる機能を搭載しています。なので今後Pythonも型を明示する静的型付け言語のように振舞うような機能が標準的に実装されるようになると思います。
インタプリタ型
プログラミング言語は、インタプリタ型とコンパイル型に分かれていて、pythonは、インタプリタ型になります。インタプリタ型は、1行ごとに機械語に翻訳しながら動かすのに対してコンパイル型は一括で機械語に翻訳してから別でプログラムを実行するので処理速度が速いです。
なのでpythonのようなインタプリタ型の言語は処理速度は遅いといわれています。一方でコンパイルしなくてもすぐに実行できるので、コードの修正が楽というメリットもあります。
インデント
この特徴は完全にpython特有の特徴ですがインデントが揃っているコードを一つのブロックとして認識します。インデントがずれているとエラーになります。この機能によってコードがすっきり簡素化されるので個人的には使いやすいです。
Pythonの機能的特徴
ここまで読んでいると、時代に逆行した動的型付け言語であることと処理速度が遅いなどのいいイメージがないですがPythonの最大の特徴は機能面だと思います。簡単に羅列すると
- ライブラリやフレームワークが強力
- 使える分野が広い
ライブラリやフレームワークが強力
ハッカー御用達のプログラム言語だけあって、外部ライブラリが非常に強力です。特にデータの解析や分析用のライブラリはほかの言語の群を抜いています。有名どころで紹介すると
- pandas(pythonでデータ解析が簡単できるようにするライブラリ)
- openpyxl(pythonでExcelが操作できるライブラリ)
- matplotlib(pythonで簡単にグラフなどを作れる可視化ライブラリ)
- Django(大規模Web開発もできるWebフレームワーク)
- beautifulsoup(Webスクレイピングに必須のhtmlなどのタグ解析ライブラリ)
- Numpy(数学処理にはかかせないライブラリ)
- Pillow(画像処理用のライブラリ)
他にも無数のいろいろな分野に特化したライブラリが提供されています。pythonは、ほかの言語と比べてコードの記述量も少なく覚えることも多くありません。(あくまでほかの言語に比べたらです( ^ω^)・・・
自分が作りたいものをこの無数のライブラリからいかに選択して使いこなすかが言語習得のカギであり醍醐味だと思います。
使える分野が広い
Pythonは、とにかく使える分野が多いです。思いつく限りで書くと
- データサイエンス分野で使える(most)
- スクレイピングもできる(most)
- 機械学習ができる(most)
- AI分野で使える
- Web開発ができる
- 自動化で使える
- バッチのようなスクリプト処理で使える
- ゲームも作れる
- デスクトップアプリも作れる
- モバイル開発もできる(ちょっとこの分野は弱いが・・・)
一つの言語でこれだけできるのはそうはないと思います。なのでpythonはあらゆる分野のプログラムを作ることができる超便利で高機能な言語だと思います。
Pythonを学んで損は絶対にないと思います。
Pythonを使って思ったこと
上でも書いたようにPythonには、将来性もあってぜひおすすめしたい言語なのですが、日本ではあまり浸透していないのが実情です。
正直私が関わったことがあるシステムでPythonを使ったシステムを見たことがありません。
わたしもメインのシステムではなく、内部でのメインシステムの分析用として内部で公開しているぐらいです。
原因はおそらくデータサイエンス分野やAIの分野は別としてそれ以外の分野でも使えることは上でも書きましたが、Bestな分野ではないことだと思います。これは、やはり動的型付け言語であることと処理速度の問題で敬遠しているのかなと思います。
ただ、海外ではPythonがかなり普及しており、人気プログラミング言語で1位を獲得していることからこれからPythonが伸びてくることは間違いないと思います。
ちなみに2022年5月時点の人気プログラミング言語のTop5は以下のようになっていました。
順位 | プログラミング言語 | 前年順位 |
---|---|---|
1位 | Python | 2位 ↑ |
2位 | C | 1位 |
3位 | Java | 3位 |
4位 | C++ | 4位 |
5位 | C# | 5位 |
もっとPythonが普及してくれればうれしいです。
コメント