初めてPythonに触れる方、もしくは、Pythonを勉強しようか悩んでいる方に
- Pythonがどんな分野で使用されているか
を具体例を挙げて紹介します。
本記事により
- Pythonを勉強した先にどんな世界が待っているか、イメージが付くようになると思います。
Pythonを勉強しようか悩んでいる方々に、参考になれば何よりです。
また本記事は、プログラムに触れた事が無い人を対象に、画像変換ソフト作成を通して、この世界の魅力に触れてみようという企画シリーズの1記事になります。
企画シリーズ全体は、下記の通りです。
Pythonを勉強しようかどうか、判断材料の1つにして頂ければ幸いです。
「プログラムを体験して楽しむ」企画
進め方ステップ
- 全体概要
- Pythonの導入方法(環境構築)
- Pythonの特徴と、どんな分野で使用されてる? ← 本記事
- 【Python入門者対象】最低限の文法紹介
- 【Python入門者対象】簡単な外部ライブラリ導入方法
- 【Python入門者対象】画像変換ソフトの作成・実行
- 【Python入門者対象】お勧めの学習手順
Pythonが使われている分野
全体紹介
Pythonは人工知能・データサイエンスから、サーバー側プログラム、IOTまで様々な世界で使われてます。
この他、下記の分野でも使用されています。
詳細は割愛しますが、以下も使用されています。
- デスクトップアプリ
- Webスクレイピング(Web上のデータを自動収集するコード)
- ブロックチェーン技術
等々
以下、各分野別で具体例をピックアップしてみました。
各分野の具体例紹介
人工知能・データサイエンス
人工知能の1つであるディープラーニングがブームとなっていますが、ディープラーニングはもちろん、それ以外の手法も含めて、Pythonで書かれる事が主流になりました。
具体例を見てみます。
(以下、青字で書いた表記は、Pythonで作れる具体例を表しています。)
・ リアルタイム物体認識
例えば、ドローンから送られてくる画像を人工知能にてリアルタイムに解析、アクションを起こすコードを作る事が可能です。
他の使い方としては、スズメバチの巣を自動的に発見し、エアーガンを打ち込む
家にムカデが出現したら、自動検知してエアーガンを打ち込む 等々
・ 鬼ごっこ3Dゲーム
鬼(おいかける側)を人工知能により学習させたものです(ディープラーニング + 強化学習したものです。)。
下記絵は、筆者自身が楽しむために作ったゲームを、スクリーンショットした物になります。Unityにて作りました。
データサイエンスの場合、Pythonには処理専用の無料ライブラリがあるので、それを呼び出すだけで高度な解析ができます。
データサイエンスの分野では、学者も含めてRとよばれる言語か、Pythonか、どちらかを使って解析する事がほとんどです。
どっちを使うべきか、ずっと議論されている状況です。
・ サーバーから株価データを取得して、データ処理に使用
株価自動取引システムも作れるようになります。
筆者もPythonで作成したシステムでビットコイン、FX等を運用しています。
サーバー側プログラム
サーバー側プログラムもPythonで作る事ができます。
YouTube(ユーザー認証等の機能)やDropBoxもPythonで作られています。
こちらもイメージし易いように、絵にしてみました。
・ Shoppingサイトで検索、購入するサービスに使用
IOT
IOT(Internet of Things モノのインターネット)が今後、ますます主流になって来ると予想されています。
近い将来、身の回りの持ち物・家電が全てネットワークで繋がり、物を探すという行為自体が過去の行為になる可能性もあるかと思います。
具体的な使われた方という事で、イメージ絵を貼ってみました。
・ 農場でデータを取得、サーバーに送信する使い方
様々なソフトのスクリプト言語として
様々なソフトウェア上でスクリプト言語として、Pythonを走らせる事ができます。
・ 3DモデルソフトのBlender(Pythonでモデル操作可能)にて使用
本当は、イルカが作りたかったです・・(Blender、頑張って練習しています。難しいっす・・・・)
ゲーム
ゲーム作りには、C++やC#が使用されるケースが多いのですが、Pythonで作られているケースもあります。
EVE Onlineやパイレーツオブカリビアは、Pythonで全て作られています。
Pythonのメリット・デメリット
長年Pythonを使用してきて、私が実感したPythonのメリット・デメリットを記します。
Pythonのメリット
- コードが読み易い
- 学習コスト(習得時間)が、それほど高くない。
- 言語自体が難しくない。
- ライブラリが豊富。
こちらのメリットに関しては、次回の記事以降で、紹介していくようにします。
Pythonのデメリット
- 処理速度が遅い。
- 静的型付け言語ではないので、大規模ソフトを作るのが大変。
- 日本語情報が、比較的少ない。
1つ目の処理速度の遅さですが、C言語で作られたライブラリを使うとか、様々な改善策があります。
2つ目の静的型付け言語ですが、本記事は入門者を対象にしているので、説明を割愛させて下さい。対策はあります。
こちらも、どこかのタイミングで、正確な説明をします。
Pythonの将来性
TIOBE Softwareの、TIOBE Programming Community Index (PCI)調査結果です。(2021年5月時点)
これは各プログラムがどれだけ話題になったか、インデックス化したものです。
PythonがとうとうJavaを抜きました。
また、下図はランキングの推移です。(黒線がPythonです。)
2018年位から、急に増加中です。
昨今は人工知能(ディープラーニング含)がブームになっており、それに引張られPythonが急上昇中です。
人工知能は今後、ますます使用されている可能性が高く、需要がさらに伸びると予想されます。
まとめと次回
Pythonは、
- 人工知能・データサイエンスなら、現実的にはPython一択
- サーバーサイドでも使用可能
- IOTにも使用
- 他、さまざまなスクリプト言語として使用
と幅広く使われている言語です。
併せて、年々、注目率が上がっており、今後さらに注目される言語になる可能性が高いと思われます。
次回はそのPython言語を使って、本企画アプリを作るための最低限の文法を紹介します。
重要な部分をできるだけ簡単に説明し、記事を読み終わったら、簡単なコードなら作れるようになれると思います。
雑談
私はC言語からスタートしました。中学生の頃でした。
当時、世間ではBasicが主流でしたが、C言語の方が名前がなんか格好良かったので、それだけでそっちを選択しました。(何を作りたいか、目的はありませんでした(笑))
初めて学んだプログラム言語って、それ以降勉強した言語と何か違って、いつもその言語の事が気になります。(もしかして、私だけ?)
男性にとっては、まさに初恋相手(笑)
最近は、本当に困った状況にならない限りC言語を使わない開発になっています。
たまにC言語を書いている時は、何故かコードを書いているだけで、幸せを感じてしまいます(いつも久しぶりに書くという状況になるので、懐かしい感じがするからかもです。)
話の主軸をPythonに戻しますが、
C言語は機械みたいな雰囲気がありましたが、Pythonは人に優しい雰囲気があると個人的に思っています。
C、C++、(Basic)、Java、JavaScript,C#を使っていますが、Pythonは入門にふさわしく、また実用性にも優れた言語だと、筆者は確信しています。
また、本企画シリーズを通して、一人でも多くの方に、プログラムの魅力、Pythonの魅力を伝えられたと思っている、今日ころ頃です。
それでは、またです。