プロのカウンセラーがキャリアの悩みを解決!

Python(パイソン)で作られたWebアプリケーション・サービス7選

作成: 2018.06.27

>>副業・フリーランスという働き方
個人で稼げるスキルを!独立まで完全サポート

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アプリケーション

YouTube

2005年2月に設立したYouTube。Youは「あなた」、Tubeは「ブラウン管」の意味。世界で最も成功した動画共有サイトとして知られ、2006年には日本でも人気が沸騰。ちなみに「ニコニコ動画」は2007年にβ版を公開した時点では、YouTubeの動画を引用し、動画上にコメントをつけながら視聴するという形でサービス提供をしていました。

What Powers YouTubeによると、YouTubeの開発環境は以下の通り。

 

  • Apache (for html, javascript, css)
  • Python
  • Linux (earlier SuSe and now multiple flavors)
  • MySQL (v5.x, highly customized by Google proprietary clusters)
  • psyco, a dynamic python->C compiler
  • lighttpd for video instead of Apache
  • Use of GFS (Google File system)

出典:What Powers YouTube

PythonはYouTubeのサーバーサイドの処理に主に使用されています。

・YouTube

Dropbox

2007年に設立したDropboxは、オンラインストレージサービスを提供。2018年2月にはNASDAQに上場を申請。5億ドルの資金調達を目指しています。

DropboxのRian Hunter氏は「PyCon APAC 2013」で、Dropboxは全てPythonで開発していると述べています。コード量はサーバとクライアントのコードを全て合わせて93万7707行。

世界中のユーザーがあらゆる環境からアクセスするオンラインストレージサービスでは、どのような端末でもサービスが同じように動作する必要があります。Webアプリケーションはもちろん、モバイルアプリやデスクトップアプリも非常に重要です。

PythonはGUIツールキットが充実しており、こうしたクロスプラットフォーム対応がしやすく、非常に利便性が高い言語です。

・Dropbox

Pycon APAC 2013でのRian Hunter氏の講演は、以下より視聴可能です。

Reddit

Redditはウェブ上のニュース記事や画像を集めたソーシャルニュースサイトであると同時に、電子掲示板。日本では、米国版2ちゃんねると紹介されることが多いサイトです。

アメリカでは最大の掲示板サイトで、Reddit特有の文化として「IamA」(”I am a”もしくは”Ask me Anything”の意味)があります。投稿者がユーザーの質問になんでも答えるというもので、過去にはビル・ゲイツやバラク・オバマがRedditでIamAを行っています。

RedditはもともとはCommon Lispで開発されていましたが、2005年にPythonで書き直されました。

2008年6月18日から2017年9月まで、Redditはオープンソースプロジェクトでしたが、以後はオープンソースから撤退。理由として社内で保持しているリポジトリと、オープンソースとして公開しているリポジトリの差が大きくなり、オープンソースとして公開し続ける利点がなくなってきたことをあげています。

・Reddit

この記事のハッシュタグ

デスクトップアプリケーション

BitTorrent

BitTorrentはP2P形式の、ファイル共有ソフトウェアです。インターネットでファイルをダウンロードするには、通常はサーバからのダウンロード。特定のサーバへの一極集中が避けられません。

しかし、BitTorrentはP2P技術を活用。

ダウンロードしている最中のクライアント(ユーザー)同士で、ファイル断片の送受信が行われ、断片を最終的にクライアントが1つのファイルにつなぎ合わせます。人気のあるファイルであればあるほど、多数のユーザーがファイルの断片(あるいは完成を持つため早くダウンロードが可能になります。

一般的には人気のあるファイルであればあるほど、アクセスが集中して処理が重くなります。まさにBitTorrentの技術は大容量ストリーミングの時代の課題を解決し得る、1つのソリューションと言えるでしょう。

BitTorrentのソースコードはバージョン5までPythonで書かれ、オープンソースとして公開されていました。その後、BitTorrentはWindows向けBitTorrentクライアントソフトウェア「μTorrent」を買収。バージョン6以降はμTorrentをベースに開発が行われ、ソースコードは非公開になりました。

・BitTorrent

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で操作することもできます。

・Blender

Anki

Ankiは、Damien Elmesが開発している暗記学習向けのシステム。「Anki」は日本語の「暗記」に基づいて命名されました。語学学習や、医学・法学試験向けの勉強、ギターコードの練習や、人の名前と顔を覚えるためのツールとして最適です。

Pythonで開発が行われ、β版であるAnki 2.1のソースコードはGitHubで公開されています。

・Anki

・GitHub

将来の不安はスキル習得で解決

「ずっと今の仕事を続けるのは不安」「将来収入があがる職につきたい」「やりたいことがない」

いま、日本では多くの若者がそう感じています。あなた1人じゃありません。
毎月数千人の方がTECH::EXPERTの無料キャリア相談に参加しています。

プロと話してキャリア構築を少しでもクリアにしませんか?

その他

朔 / 新月(P2P掲示板システム)

朔はP2P匿名掲示板システム「新月」の、Pythonによる実装版です。

P2P掲示板システムとは、管理人がいなくても動作し続ける掲示板を目指し、開発が続けられている掲示板です。最大の利点は「サーバー負荷の分散」にあります。

レンタルサーバーで運営される電子掲示板は常に容量・負荷の制限という問題を抱えます。一方、オンプレミスでサーバーを動かすと24時間365日に渡ってサーバーを動かし続ける負担を管理者が負うことになります。

その点P2P掲示板は、複数ユーザーのPC内にデータを保存。掲示板のデータを皆で共有するため、特定のサーバーに依存することなく運営が行われます。またアクセスが集中したり、ハッキング攻撃が行った際にもデータが分散されて保存されているため、サイトがダウンするリスクが小さく、復旧も容易です。

P2pを実用的に活用。Pythonで実装したアプリケーションとして「朔」は今後も要注目のプロジェクトです。

朔(GitHub)

まとめ

Pythonの、Webアプリケーションやデスクトップアプリケーションなどでの事例を紹介しました。

オープンソースで開発が進められているプロジェクトもあるため、気になったものがあればぜひGitHubにアクセスしてみてください。

一度挫折したプログラミング、TECH::EXPERT(テック エキスパート)ならやりきれます

プログラミングを独学で学ぶことに限界を感じていませんか?

効率よくプログラミングを学ぶなら、プロのメンター(講師)のもとでしっかりと教わることがおすすめです。TECH::EXPERT(テック エキスパート)ではすぐにメンターに質問できるから「わからない」を「わかる」に変えられてプロとして通用する技術が身につきます。

同じくプログラミングを学ぶ同期がいるのも挫折しないポイントです。

無理な勧誘は一切ありません。まずはお気軽に無料カウンセリングでご相談ください。

無料カウンセリングの日程を見る

この記事を書いた人

Avatar
音楽ライターとしてエイベックス、ビクター、トイズファクトリー等に所属するアーティストの取材を担当。2016年に開催された『Bjork Digital』の取材経験から、VR×音楽に関心を抱く。2017年よりテクノロジーに関するライティングを開始し、TECH::NOTEにジョイン。猫とウサギを飼っています。