こんにちは、Zero-Cheeseです。
2022年度9月時点で、人気度首位(※1)に輝いたPythonの
- 人気度をご紹介した後に
- 言語の特徴
- 具体的に、何ができるか?
をご紹介します。
※1) TIOBE Indexより(後述します。)
本記事は、Python未経験者、入門者の方を対象にした内容となっています。
(本記事は、過去に掲載した内容も、含まれています。)
Pythonはどれ位、人気がある?(2022年9月時点)
TIOBE Softwareの、TIOBE Programming Community Index (PCI) 調査というものがあります。
これは各プログラムがどれだけ話題になったか、インデックス化したものになっています。
こちらによりますと、2022年9月度は、Pythonが首位となりました。
オリジナルサイトは、こちら
2021年6月時点: Javaを抜いて、2位でした。
下記グラフは、この10年のランキング推移になります。(水色線がPythonです。)
2018年位から急上昇し、最近(2022年時点)は、C言語と首位を争っている状況です。
今後の見通し:
最近、ディープラーニングが実用レベルに達してきています。
ディープラーニングが生成した作品が、絵画コンテストを優勝したり、言語認識においても、特定の評価方法(※2)で、人間を超える成績を叩き出したりしている状況です。
これまで、人間じゃないとできなかったタスクが、コンピュータでも可能になりつつあります。
このディープラーニングを含む機械学習や、データサイエンスの主要言語はPythonという事もあり、ますます需要が増加していくと思われます。
※2) 「SQuAD 1.1」にて
Pythonの特徴
Pythonのメリット
- コードが読み易い
- 学習コスト(習得時間)が、それほど高くない。
- 言語自体が難しくない。
- ライブラリが豊富。
Pythonは、プログラム上の一つの塊を、インテント(タブみたいに先頭の行を空ける事)を使って表現します。
これにより、第三者が書いたコードでも、読みやすいといったメリットがあります。
<コードイメージ>
また、Pythonはライブラリが豊富で、特にデータ処理系が得意です。
複雑な統計処理を、ライブラリを読み込むだけで、たった数行で処理する事が可能です。
Pythonのデメリット
- 処理速度が遅い。
- 静的型付け言語ではないので、大規模ソフトを作るのが大変。
上記に挙げたデメリットですが、改善方法はあります。
1つ目の処理速度の遅さですが、C言語で作られたライブラリをPython上から使うとか、様々な対応策があります。
2つ目のデメリットにも対応策があります。
静的型付け言語みたいな厳密に機能するものではありませんが、Pythonでも、型の指定が可能です。
これにより、IDE(統合開発環境 ← プログラムを作る環境)で、コード記載中に警告が表示されるので、実行前に気付く事ができます。
Pythonで何ができるのか?
全体紹介
Pythonは人工知能・データサイエンスから、サーバー側プログラム、IOTまで様々な世界で使われてます。
この他、下記の分野でも使用されています。
詳細は割愛しますが、以下も使用されています。
- デスクトップアプリ
- Webスクレイピング(Web上のデータを自動収集するコード)
- ブロックチェーン技術
等々
以下、各分野別で具体例をピックアップしてみました。
各分野の具体例紹介
人工知能・データサイエンス
人工知能の1つであるディープラーニングがブームとなっていますが、ディープラーニングはもちろん、従来の機械学習も含めて、Pythonで書かれる事が主流です。
具体例を見てみます。
(以下、青字で書いた表記は、Pythonで作れる具体例を表しています。)
◆ リアルタイム物体認識
例えば、ドローンから送られてくる画像を人工知能にてリアルタイムに解析、アクションを起こすコードを作る事が可能です。
他の使い方としては、スズメバチの巣を自動的に発見し、エアーガンを打ち込む
家にムカデが出現したら、自動検知してエアーガンを打ち込む 等々
◆ 鬼ごっこ3Dゲーム
鬼(おいかける側)を人工知能により学習させたものです(ディープラーニング + 強化学習したものです。)。
下記絵は、筆者自身が楽しむために作ったゲームを、スクリーンショットした物になります。Unityにて作りました。
Pythonには無料ライブラリを使うだけで、高度な解析ができます。
◆ サーバーから株価データを取得して、データ処理に使用
株価自動取引システムも作れるようになります。
筆者もPythonで作成したシステムでビットコイン、FX等を運用しています。
サーバー側プログラム
サーバー側プログラムも、Pythonで作る事ができます。
YouTube(ユーザー認証等の機能)やDropBoxもPythonで作られています。
こちらもイメージし易いように、絵にしてみました。
・ Shoppingサイトで検索、購入するサービスに使用
IOT
IOT(Internet of Things モノのインターネット)が今後、ますます主流になって来ると予想されています。
近い将来、身の回りの持ち物・家電が全てネットワークで繋がり、物を探すという行為自体が過去の行為になる可能性もあるかと思います。
具体的な使われた方という事で、イメージ絵を貼ってみました。
・ 農場でデータを取得、サーバーに送信する使い方
様々なソフトのスクリプト言語として
様々なソフトウェア上でスクリプト言語として、Pythonを走らせる事ができます。
・ 3DモデルソフトのBlender(Pythonでモデル操作可能)にて使用
ゲーム
ゲーム作りには、C++やC#が使用されるケースが多いのですが、Pythonで作られているケースもあります。
EVE Onlineやパイレーツオブカリビアは、Pythonで全て作られています。
習得したくなった方へ
Pythonに触れてみたいと思った方へ
連載記事(全7記事)にて、
- Pythonを実行するための、環境構築から
- 簡単なアプリ作成まで
入門者を対象に、ご紹介しております。
実際に触れてみる事で、「自分に合う・合わない」など、実感が得られると思います。
併せて、どうぞ。(本記事と重複する、3記事目は、スキップして頂いて大丈夫です。)
雑談
雑談なので、お時間が許せる方のみ。お付き合い頂けますと幸いです。
本記事を執筆しながら、私が初めてPythonに触れた時を思い出していました。
当時の私ですが、他のプログラム(Java、C# 等々)で、アプリ開発をしていました。
その状態でPythonに触れたので、プログラム入門者が抱く感想と、異なるかと思います。
動機ですが、なんか格好よさそうだから、勉強した記憶があります。(そんな理由で、貴重な時間を使使うべきではないと、お叱りを受けるかもしれませんが・・・)
最初に触れた時の印象は、以下の通りでした。
- なんかタプルの使い方が、よく分からない・・ ← リストでいいじゃん。
- やたらと、_(アンダーバー)を使う・・ 変
- クラスの書き方が、全然慣れない
- クラスのメンバ変数が、外部から追加できてしまうのは、馴染めない・・ (<オブジェクト名>.(間違えたメンバ変数) = 32 等で、間違えたメンバ変数が追加されてしまう・・・)
というわけで、最初は全然メリットを、感じてませんでした。
最初に「おっ」と思ったのは、並行・並列処理だったと記憶しています。
「こんなに、簡単に書けるのか!」と思ったのを、まだ覚えています。
(他の言語に比べ、凄い簡単です!!)
一番の衝撃は、データ処理系ライブラリとの出会いでした。
Numpyや、Pandas(& scikit-learn)を使えば、ほんの数行で、難しい統計処理ができてしまいます。(私が触れてきた他の言語の場合、結構大変です!)
これだけでも、十分にメリットを感じるようになりました。
極めつけは、
- 実質的に「ディープラーニング」をするためには、Pythonしかない
という事でしょうか。
その他にもPythonは、ラズパイみたいな小さなコンピュータから、サーバー系まで幅広く対応できる言語となっています。
あとフロントエンド側で、React/TypeScriptみたいな事ができたら、私の中では完璧ですw
とりとめのない話をしてしまいました。
それではまた、お会いしましょう!