ウェブサービスとの連携が可能になる Fenrir Pass Connect が絶賛開発中 である Fenrir 内では、ソーシャルやらウェブサービスやらという単語が飛び交うようになりました。
そこで、Fenrir Pass Connect で利用できる中から、いくつかのウェブサービスをピックアップして、これらのサービスのオープンソースの活用状況などを調べてみました。
というわけで、これらサービスの近況などを紹介しつつ、使っている/作っているオープンソースなどをいくつか紹介します。
短いテキストを投稿・閲覧するだけというシンプルなサービスをメインとし、2012 年 3 月の時点でのアクティブユーザは 1.4 億人。
サービス開始は 2006 年 6 月からで、当初は Ruby (Ruby on Rails) で実装されていましたが、2011 年ごろから Scala と Java への移行が進んでいるようです。
社内で利用しているオープンソースも公開されており、Hadoop, Lucene, jQuery, Git, Eclipse など多岐にわたり、オープンソースプロジェクトはすべて GitHub で公開 されています。
そこで今回は、Twitter が紹介しているプロジェクト を 3 つ紹介します。
なお、Twitter のオープンソースへの取り組み状況は次のページでわかります。
Bootstrap
Bootstrap は HTML, CSS, JavaScript だけで UI を構築できるライブラリです。
GitHub でもっともウォッチされているプロジェクトで (3万ウォッチ)、2 位の Node (1.5万ウォッチ) をぶっちぎっています。
Finagle
Finagle は JVM 上での非同期 RPC を実現するライブラリです。
最近の Twitter の Scala への傾倒っぷりを証明するように、半分以上が Scala で記述されています。
TwUI
TwUI は Mac OS X の AppKit 上で Core Animation を利用することで、iOS の UIKit のように利用できるものです。
詳細な説明は当ブログのエントリに書かれているので、ここでは省略します。
NASDAQ 市場への株式公開をしたり、CEO が結婚したりと会社だけでなく CEO のことでも話題になる Facebook。
サービス開始は今回紹介する中で一番古い 2004 年 2 月。それから約 8 年後の 2012 年 4 月の時点でのアクティブユーザは 9 億人。
今回紹介するウェブサービス中でも、その人気は圧倒的です。
ちなみに、Facebook のソースコードの大半は PHP で書かれています。それをそのまま実行すると遅いため、PHP から C++ へのトランスレータで C++ のソースに変換→コンパイルして、ネイティブバイナリを作成しています。ちなみにこのバイナリは単体でサイズが 1.5 GB もあるらしいです。
そんな Facebook が貢献したオープンソースプロジェクト のなかには、Cassandra, Hive, Thrift などのように開発が The Apache Software Foundation に移行したものもあります。ここでは、GitHub リポジトリ のものを 3 つ紹介します。
HipHop for PHP
前述の PHP から C++ へのトランスレータです。Facebook のエンジニア曰く、「Apache + PHPのときと比べて CPU パワーが半分で済むようになったわ」とのことです。
Three20
iOS 開発者なら知らない人はいないであろうフレームワーク。GitHub の Objective-C 言語内でもっともウォッチされているプロジェクトです…が、最近の開発状況は活発でなかったりするため、Nimbus に移行する人も多いみたいです。
Tornado
Python で書かれた非ブロッキングな軽量ウェブサーバフレームワークです。Quora や FriendFeed で利用されているらしいです。
Dropbox
Apple に買収されそうになったが断わったりしたことで有名な Dropbox。同期型のストレージサービスとして 2011 年 10 月の時点でユーザは 5000 万人。3 億以上のファイルが保存されているそうです。
ちなみに、Dropbox は Google みたいに動詞化しているらしく、”Dropbox me” とかで「俺の Dropbox に入れといて」みたいに使うらしいです。
Dropbox はサーバもデスクトップクライアントもメインは Python で書かれているそうです。
似非 Pythonian な私にとってはちょっぴり嬉しいですが、オープンソースについては情報が少ないです。オープンなものは SDK くらい。
GitHub アカウントのほとんどはフォークものです。
(追記 2012/6/11) コメント欄より、pylons というオープンソースの MVC フレームワークが使われているとの情報が寄せられました。
Evernote
ライフハックツールなど様々な使いかたで日本では人気の高い Evernote。2011 年 8 月の時点で登録ユーザは 1250 万人。
Evernote のアーキテクチャはブログで紹介されており、それによると、メインの部分には Java が用いられているようです。
Windows 版 Evernote で利用されているオープンソースライブラリなど には WebKit や Thrift があります。
開発者フォーラムで紹介されたものなどが掲載されていますが、こちらも SDK を除くと自社で開発したオープンソースプロジェクトでメジャーなものはないみたいです。
GitHub リポジトリ も大半が Evernote SDK です。
おわりに
駆け足になりましたがウェブサービス 4 つのオープンソース利用状況を紹介しました。…単なる GitHub プロジェクト紹介みたいになってしまいましたが。
調べた 4 つのサービスがそれぞれ違う言語をメインとして利用していたのはおもしろいなと思いました。
まあ、これはサービスを開発した時期によるものも多いのでしょうけど。
あと、感じたのは会社が小さいうちはオープンソースを利用して、大きくなってくるとオープンソースコミュニティへの還元が始まるということです。
当たり前かもしれませんがよい循環ができているなと思いました。