pythonはAI開発に使用されるAIということで注目を集めています。それ以外にも仕組みが非常にわかりやすくシンプルで導入がしやすいなどの開発におけるメリットがあります。
pythonのプログラミング言語としての特徴
pythonは非常に文法がシンプルです。プログラミング言語としては初心者が取り組むハードルがかなり低いのがメリットです。読みやすく書きやすいというのを根本思想に開発されました。
またライブラリといって、すでに基本的な枠組みが開発済みのシステムが多数無料公開されています。
ゼロからpythonを使ってシステムを必ずしも作らなくてもよく、すでにあるものは流用できるというところも導入のハードルを下げているのです。
このライブラリがあることによって初心者でもpythonがどのように動くのかということを目視で確認することが簡単になっています。
pythonがこれまでのプログラミング言語と決定的に違うのはコードがシンプルで短い点です。そして、基本的に一つの動作をさせる方法は一つしかないような設計がされています。
これまでのプログラミング言語だと同じ動作をさせるにも様々なプログラムの書き方がありました。それがないことによって、非常にシンプルで分かりやすい誰でもいじれるシステム設計が可能になるのです。
pythonでできる4つのこと
pythonはすでに様々な分野の製品、サービスに使われています。Neowinによれば現在のプログラミング言語の人気ランキングは1位Python、2位C言語、3位Javaとなっています。
引用:https://spectrum.ieee.org/static/interactive-the-top-programming-languages-2018
実際我々が触れるサービスではどのようなものがPythonで開発されているのでしょうか。
pythonでAI開発
AI開発に関してはほぼ全てpythonで開発されていると言っても過言ではありません。なぜでしょうか。
pythonはもともと科学技術系の最先端の人々の間で使われる言語として発展してきました。そのためAIという技術に関わっている人々の間でpythonのシェアが高かったというのがひとつ。
そして、出来上がったツールを積極的にシェアする文化があり、ライブラリ上で誰でもすでに設計済みのpythonツールを流用することができる環境であることがひとつ。
これはAIのような先端技術の開発スピードを上げるには非常に重要なポイントでした。AIを動作させるにあたってのツールは非常に多く蓄積されています。
もともとPythonを使ったプログラムは計算能力は高いとされていましたが、計算速度はそれほど早くないという傾向がありました。
しかし豊富なライブラリが蓄積されることで、計算能力をブーストするようなツールが生まれました。もともとの能力の高さに速さが加わったことによってよりAIのディープランニングに適した形になったと言えます。
そして、pythonの言語のシンプルさが多くの人の参入障壁を下げているのも、AIに使われる大きな理由です。これまでプログラミングに縁のなかったような人々がAIをきっかけにしてpython開発を体験するようになっているのです。
pythonでデータ収集(スクレイピング)
webサイトを巡回して必要な情報が載っているサイトをピックアップする「クローリング」という技術があります。スクレイピングはクローリングしたwebサイトから実際に情報を抜き取る、収集する技術です。
この技術は複数のサイトの情報を反映させる自動更新プログラムや、数値データなどをwebから集める際に非常に有効です。
ただし、スクレイピング対象になるサイトに大きな負荷がかかる場合もあるため、使用には注意が必要です。
pythonでゲーム
pythonを使用したゲームがすでに大ヒットしたという事例だとバトルフィールドシリーズが挙げられます。他にもweb上には多くのpythonゲームの試作品があふれています。
一般的にゲームの開発はC++やC言語で行うことが多いですが、pythonでゲームを開発することによってゲームで得た経験を人工知能に流用することができます。
例えば、ゲーム攻略をAIにさせて学ばせることでより機械学習が進むのです。ですので、AI開発の際にpythonでゲームを開発してみるという動きは盛んです。
初心者でもゲームで動かすことによってpythonの仕組みがわかるということもあります。製品やサービスというよりはpython自体の学習のためによく使われています。
pythonでアプリケーション開発
pythonで開発されたアプリケーションが最も我々の生活で馴染みがあるでしょう。Dropboxはかなり前から日常的に使われているファイル共有アプリです。
Microsoft Officeの無料版のようなアプリケーションのOpenOfficeもpythonで作られています。
アプリケーションというよりpythonを組み込んでいるサービスですが、YoutubeやInstagramはpythonを使って開発されたSNSです。またGoogleのプログラムもpythonによって動いているものは多数あります。
自社にpythonを導入するには?
pythonを使って開発したいという場合にどのような方法で導入すればいいのでしょうか。すでに自社にいるエンジニアを使う方法と外部から資源を獲得する方法があります。
自社エンジニアにpythonを学習してもらう
すでにいる自社のエンジニアにpythonを学習してもらうパターンです。別の言語でのプログラミング経験があれば、シンプルなpythonを習得できる可能性は高いでしょう。
幸いなことに自分で勉強できるライブラリや各種ツールがweb上でかなり揃っているためモチベーションが高いエンジニアであれば独学である程度の技術は身につけることができます。
ただし、やはり多少時間がかかるため今すぐにpythonで開発を始めたい場合には使えません。
外部からpythonエンジニアを採用する
pythonエンジニアを新たに採用する方法もあります。現在最もメジャーなプログラミング言語であるため、エンジニア人口はかなり多いです。
ただし人口が多いがために、技術の習熟度、現場での開発経験にかなりムラがあります。自社で採用を進めるには採用コストとリソースを裂かなければ確実な人材の確保は難しくなります。
受託企業にpythonでの開発を外注する
自社でpython開発の受託企業を選定して外注するという方法もあります。この場合はBtoBの開発案件になるためプロジェクトとしての確実性は上がるでしょう。
ただしコストは高くなり、外注先を選定するリソースを割かなければなりません。
クラウドソーシングでプロのpythonエンジニアに依頼する
pythonエンジニアを採用して開発を進めたい場合に、クラウドソーシングを使用するというのは有効な方法です。
企業を通して人材紹介を受けたり自社で直接雇用の募集をするよりも、コストが下がります。案件ごとに最も合ったスキルのフリーランスエンジニアをマッチングできるのも魅力です。