IoTからブロックチェーンまで!Pythonで何ができる?できることとは
Pythonで何ができる?
Pythonは、パイソンと呼ぶのが一般的です。Pythonでは、スクレイピングなどができます。といっても、誤解してはいけないことがあり、Pythonはプログラミング言語なので、Pythonでできることは他の言語でもできるということです。
プログラミング言語において、Pythonでしかできない、ということはほぼありません。ただ、プログラミングの好みがあるだけなのではないでしょうか。Pythonで何ができるか、という疑問をもって調べていても、やりたいことは基本的に他の言語でも実現できることを忘れないでください。ただ、自分にとってやりたい言語はあるでしょうし、職場の雰囲気として、このプログラミング言語が主流である、といった事情があるでしょうから、今回はパワフルな言語であるPythonをつかって、何ができるかみていきましょう。
Pythonの特徴
Pythonの大きな特徴として「文法が単純化されていること」、「バッテリー同包」の2点が挙げられます。文法が単純化されていることで出来上がるコードは短く、読みやすいものとなり、学習コストも比較的低いものとなりました。「バッテリー同包」はPythonの哲学の一つでプログラマがすぐに使えるようなライブラリや統合環境をあらかじめディストリビューションに含めるようにしていることを指します。
前述のライブラリ群のおかげで、Pythonはスクレイピングや可視化などを始めとしたデータ処理や、IoTにおけるハードウェアの操作など幅広い分野で活躍しています。
今流行のIoTの組み込みもPythonでできる
IoTとは、Internet of Thingsで、何にでもインターネットを取り付けることをいいます。たとえば、傘立てIoTを考えてみましょう。タワーマンションなどの高層階に住んでいると、一見してベランダから外の天気をみて、晴れていても、下にでると雨が降っているというケースが考えられます。
雨が降っていても、上層階では気が付かず、結局エレベーターに乗り直して、傘を再び取ってくるということをしなくてはならないのです。そこで、傘立てをインターネットに接続します。傘立てはスマホが近づくと、自動でインターネットに接続し、そして傘立てのある場所の天気予報を取得してきます。
そこで、もうおわかりになるでしょうが、Pythonでプログラムして、この日の傘立てGPSの位置が雨の予報であったら、傘立てがポコンと傘を上に上げてくれるように設計します。プログラミングでそのようなIoTの技術が可能になります。
傘立てを青の雨マークに光らせたり、傘立てそのものが傘を押し出してくれたり。プログラミングによって自由自在にIoT製品をコントロールすることができます。こうした制御系のプログラミングも可能になるのがPythonのすごいところです。
ブロックチェーン技術でICOも
ところで、今年はビットコインが大ブームとなりました。ビットコインはテクノロジーの上で動作する仮想通貨なのですけれど、そのビットコインには、ブロックチェーンという技術が搭載されています。
ブロックチェーンは、これも本当に正しいのか検証が待たれるのですが、理論上はトランザクションがブロックになり、チェーン化されて、書き換えが不可能というロジックになっています。複数のコンピュータ上でブロックが動作し、データ(トランザクション)とその履歴(ブロック)が複数のコンピュータに跨ってチェーン上になっていることで、相互での整合性を監視している状態に近いため、単独での改ざんは難しいという理屈です。
これは理論上、不正クラックができないということで、大きなムーブメントとなりました。注意点としては、ブロックチェーン技術からビットコインが生まれたのではなく、ビットコインからブロックチェーンが生まれたということです。よって、その派生として、ブロックチェーン技術を使ったさまざまな仮想通貨が生まれています。
Pythonでは、このブロックチェーン技術を実装することができます。実装して何をするのかというと、新しいコインを作って、ICOするのです。ICOとは、イニシャルコインオファリングのことで、新しい仮想通貨を発行し、資金調達をするということです。
つまり、ウェブを通して、資金調達が可能になるということです。もちろん、ICOは理念に他の人達が賛同してもらわなければ、仮想通貨を購入してもらうことはできません。高い理想があって、実現したい社会があって、はじめて仮想通貨のICOに成功するのではないでしょうか。
ただブロックチェーンを使って、コインをつくりたいというだけでも、Pythonがあれば、楽しく遊ぶことができます。実際に、エンジニアのなかには、自分で仮想通貨を発行し、仲間内でトークンを配って楽しんでいる人もいるのです。エンジニアには好奇心が大切で、こうした新技術に自分から入り込んでいくことが重要なので、そんなときPythonはうってつけのプログラミング言語となります。
機械学習
いま大ブームとなっていて、多くのエンジニアを惹きつけてやまない機械学習およびAIのプログラムも、Pythonが大活躍します。
様々な業界から期待を寄せられているAI分野、機械学習分野においてもPythonは活躍しています。第3次人工知能ブーム、とも呼ばれる近年のブームは「ディープラーニング」という技術的なブレイクスルーから花開きました。ディープラーニングを用いた学習は機械が自分自身で画像や文章の特徴量を発見することを可能にし、従来の人の手によるチューニングを大きく上回ったことから技術者たちに大きな衝撃を与えます。その後、人工知能はGoogleやFacebook、Microsoftなどのビッグデータを持つ企業が研究を推し進めたこともあり、音声認識や画像認識など各分野で目覚ましい活躍を見せています。大量のデータを計算し特徴量を得る。というのがディープラーニングの要ですが、Numpy, Scipyなど素早い数値計算を可能にするモジュール群の存在もあり、Pythonは人工知能プロダクトを制作するための言語として用いられるようになりました。GoogleのTensorflowを始めとし、PyTorchや国産のChainerなどPythonで利用できる多くの機械学習ライブラリが開発されています。
今後も伸びるPython
そう考えると、今後はPythonがさらに伸びていくのではないでしょうか。ディープラーニングの分野はまだまだ始まったばかりであり、データベースもRDBMSからNoSQLへと、徐々に進化しつつあります。よって、Pythonのポテンシャルはかなりあるので、いまここで、Pythonを学習しておくことは、将来的に大きなアドバンテージとなるでしょう。
プログラミング言語の学習は、もちろん、業務外の趣味であれば、自分の好きな言語をマスターするのが上達の近道です。しかし、趣味だけでは生きていけないため、スキルを稼ぐ力に転換していくことが必要になります。そのためには、ある程度の“波乗り“が重要で、ブームが来ている、そしてこれから来ようとしている技術を身につけることがなにより大切です。そこでPythonは理想的なのではないでしょうか。
とはいっても、Pythonは1990年代に登場したプログラミング言語です。実はRubyより古く、実に歴史ある言語なので、こうした表現は時系列がおかしいと感じるかもしれません。しかし、Pythonが機械学習の波にのって、またふたたびブームになろうとしているのは事実です。
実際、IoT、ブロックチェーン、そしてディープラーニングの実装でPythonが多く使われているのは事実であり、そのポテンシャルの高さを思わせます。ライブラリも数年おきにバージョンアップされており、今も現役のプログラミング言語です。
愛好者は世界中にいるので、疑問を即座に解決することもできますし、ちゃんと組めるようになれば、世界中で仕事ができるかもしれません。ぜひ、Pythonで最先端のプログラムを組みましょう!
▽関連記事はこちら
▼キャパの公式Twitter・FacebookではITに関する情報を随時更新しています!