Python(パイソン)はAI(人工知能)開発に最適なプログラミング言語として、注目されています。
一方で、Webアプリケーション開発やデスクトップアプリケーション開発向けの言語としては、日本ではまだ十分にその魅力が伝わっていないのが現状ではないでしょうか。PythonはYouTubeの開発言語に採用されるなど、海外ではAIに限らない幅広い分野で利用されています。
今回はPythonの、Webアプリケーションやデスクトップアプリケーション分野での活用事例を紹介します。
この記事は現役エンジニアによって監修済みです。
この記事の目次
Python とは?
Pythonとはプログラミング言語の1つ。パイソンと読みます。Pythonとは「ニシキヘビ」という意味。ニシキヘビはPythonのロゴのデザインにも使用されています。
2017年にGoogle DeppMindが開発する囲碁AI(人工知能)「AlphaGo」が、人類最強の呼び声が高い棋士・柯潔(カ・ケツ)に勝利。人工知能に世界中から熱い視線が寄せられました。
人工知能の注目が高まると同時に、機械学習・ディープラーニングに最適なライブラリが充実しているプログラミング言語として、Pythonエンジニアを求める企業が増加。
とはいえ、Pythonは汎用プログラミング言語であり、人工知能に特化した言語ではありません。タスク自動化やアプリ開発、データ解析などPythonでできることは様々です。
言語そのものの学びやすさや簡潔さも注目され、Webアプリケーション開発向けの言語としても採用事例が増えています。
この記事もオススメ
Pythonの特徴
Pythonの最大の特徴は、言語仕様。「同じロジックなら、誰が書いても同じになる」というコンセプトのもと、コードの構造をわかりやすくするためインデントブロックという入れ子構造を採用。構造を視覚的に把握しやすく、読みやすく、学びやすい言語です。
またオブジェクト指向を取り入れた言語で、効率的なプログラミングができることも特徴。オブジェクト指向とは「モノ(オブジェクト)」と「モノができること」を決めた上で、モノ同士を組み立てていくようにしてプログラム開発を行うことです。
Pythonの他、RubyやSwiftもオブジェクト指向言語として知られます。
Pythonでできること
Pythonでできることは非常に多岐に渡ります。以下はその一例です。
- Webアプリケーション開発
- デスクトップアプリケーション開発
- 組み込みアプリケーション開発
- 業務効率化ツール開発
- 機械学習・ビッグデータ解析開発
Pythonは人工知能開発の分野で脚光を浴びていますが、Webアプリケーションやデスクトップアプリケーションの開発でも非常に大きな実績がある言語です。
特に海外では、その分かりやすさやコードの可読性の高さから積極的に採用されている言語です。
以下ではPythonのWebサービス分野での導入例を、7つ紹介します。
この記事もオススメ
Python で作られたWebアプリケーション
Pythonで作られたWebアプリケーションの代表例を紹介します。
- YouTube
- Dropbox
YouTube
2005年2月に設立したYouTube。Youは「あなた」、Tubeは「ブラウン管」の意味。世界で最も成功した動画共有サイトとして知られ、2006年には日本でも人気が沸騰。ちなみに「ニコニコ動画」は2007年にβ版を公開した時点では、YouTubeの動画を引用し、動画上にコメントをつけながら視聴するという形でサービス提供をしていました。
What Powers YouTubeによると、YouTubeの開発環境は以下の通り。
PythonはYouTubeのサーバーサイドの処理に主に使用されています。
Dropbox
2007年に設立したDropboxは、オンラインストレージサービスを提供。2018年2月にはNASDAQに上場を申請。5億ドルの資金調達を目指しています。
DropboxのRian Hunter氏は「PyCon APAC 2013」で、Dropboxは全てPythonで開発していると述べています。コード量はサーバとクライアントのコードを全て合わせて93万7707行。
世界中のユーザーがあらゆる環境からアクセスするオンラインストレージサービスでは、どのような端末でもサービスが同じように動作する必要があります。Webアプリケーションはもちろん、モバイルアプリやデスクトップアプリも非常に重要です。
PythonはGUIツールキットが充実しており、こうしたクロスプラットフォーム対応がしやすく、非常に利便性が高い言語です。
Pycon APAC 2013でのRian Hunter氏の講演は、以下より視聴可能です。
Redditはウェブ上のニュース記事や画像を集めたソーシャルニュースサイトであると同時に、電子掲示板。日本では、米国版2ちゃんねると紹介されることが多いサイトです。
アメリカでは最大の掲示板サイトで、Reddit特有の文化として「IamA」(”I am a”もしくは”Ask me Anything”の意味)があります。投稿者がユーザーの質問になんでも答えるというもので、過去にはビル・ゲイツやバラク・オバマがRedditでIamAを行っています。
RedditはもともとはCommon Lispで開発されていましたが、2005年にPythonで書き直されました。
2008年6月18日から2017年9月まで、Redditはオープンソースプロジェクトでしたが、以後はオープンソースから撤退。理由として社内で保持しているリポジトリと、オープンソースとして公開しているリポジトリの差が大きくなり、オープンソースとして公開し続ける利点がなくなってきたことをあげています。
Pythonで作られたデスクトップアプリケーション
Pythonで作られたデスクトップアプリケーションの代表例を紹介します。
- BitTorrent
- Blender
- Anki
BitTorrent
BitTorrentはP2P形式の、ファイル共有ソフトウェアです。インターネットでファイルをダウンロードするには、通常はサーバからのダウンロード。特定のサーバへの一極集中が避けられません。
しかし、BitTorrentはP2P技術を活用。
ダウンロードしている最中のクライアント(ユーザー)同士で、ファイル断片の送受信が行われ、断片を最終的にクライアントが1つのファイルにつなぎ合わせます。人気のあるファイルであればあるほど、多数のユーザーがファイルの断片(あるいは完成を持つため早くダウンロードが可能になります。
一般的には人気のあるファイルであればあるほど、アクセスが集中して処理が重くなります。まさにBitTorrentの技術は大容量ストリーミングの時代の課題を解決し得る、1つのソリューションと言えるでしょう。
BitTorrentのソースコードはバージョン5までPythonで書かれ、オープンソースとして公開されていました。その後、BitTorrentはWindows向けBitTorrentクライアントソフトウェア「μTorrent」を買収。バージョン6以降はμTorrentをベースに開発が行われ、ソースコードは非公開になりました。
Blender
Blenderはオープンソースの3dCGソフトウェア。オランダで誕生したフリーの3DCG制作向け統合開発環境です。使用言語はPythonです。
リアルな人間に近いCGから、アニメーションまで幅広く3DCGの制作に対応しています。オープンソースのため利用は無料。日本語にも対応し、Windows/Mac/Linuxで利用できます。
フリーの3DPV作成ツール「Miku Miku Dance」では、BlenderでMiku Miku Dance向けに作ったモデルを読み込み。Miku Miku Dance上で動作させることもできます。またMMDモデルを、Blenderに読み込むことも可能。
BlenderにはPythonコンソールが搭載されており、Blender上でPythonのスクリプトを実行。オブジェクトをPythonで操作することもできます。
Anki
Ankiは、Damien Elmesが開発している暗記学習向けのシステム。「Anki」は日本語の「暗記」に基づいて命名されました。語学学習や、医学・法学試験向けの勉強、ギターコードの練習や、人の名前と顔を覚えるためのツールとして最適です。
Pythonで開発が行われ、β版であるAnki 2.1のソースコードはGitHubで公開されています。
その他
朔 / 新月(P2P掲示板システム)
朔はP2P匿名掲示板システム「新月」の、Pythonによる実装版です。
P2P掲示板システムとは、管理人がいなくても動作し続ける掲示板を目指し、開発が続けられている掲示板です。最大の利点は「サーバー負荷の分散」にあります。
レンタルサーバーで運営される電子掲示板は常に容量・負荷の制限という問題を抱えます。一方、オンプレミスでサーバーを動かすと24時間365日に渡ってサーバーを動かし続ける負担を管理者が負うことになります。
その点P2P掲示板は、複数ユーザーのPC内にデータを保存。掲示板のデータを皆で共有するため、特定のサーバーに依存することなく運営が行われます。またアクセスが集中したり、ハッキング攻撃が行った際にもデータが分散されて保存されているため、サイトがダウンするリスクが小さく、復旧も容易です。
P2pを実用的に活用。Pythonで実装したアプリケーションとして「朔」は今後も要注目のプロジェクトです。
Pythonで作られたアプリ・Webサービス まとめ
Pythonの、Webアプリケーションやデスクトップアプリケーションなどでの事例を紹介しました。
オープンソースで開発が進められているプロジェクトもあるため、気になったものがあればぜひGitHubにアクセスしてみてください。
はじめての転職、何から始めればいいか分からないなら
「そろそろ転職したいけれど、失敗はしたくない……」そんな方へ、テックキャンプでは読むだけでIT転職が有利になる限定資料を無料プレゼント中!
例えばこのような疑問はありませんか。
・未経験OKの求人へ応募するのは危ない?
・IT業界転職における“35歳限界説”は本当?
・手に職をつけて収入を安定させられる職種は?
資料では、転職でよくある疑問について丁寧に解説します。IT業界だけでなく、転職を考えている全ての方におすすめです。
「自分がIT業界に向いているかどうか」など、IT転職に興味がある方は無料カウンセリングにもお気軽にお申し込みください。