Foursquareという位置情報系サービスが海外だけでなく日本でも人気です。iPhoneアプリなどを通じて GPSを利用して現在いる場所やお店などをマーキング(check in)し、常連を表す称号を得たりユーザ同士で情報交換を行ったりします。そして、このFoursquareがScalaベースのWebフレームワーク「lift」で書き直されたことが、Scalaのブログ記事にて発表されました。
記事のコメントに、開発リーダーのHarry Heymann氏が自ら自身のプレゼン資料へのリンクを提示してくれています。その資料を参照すると、当初FoursquareはLAMP構成でできており、エンジニアではない人がPHPで書いていたためコードがキレイではありませんでした。そのため、Javaのバックグラウンドを持つHarry氏は、RailsやDjango、Wicketなどいろいろなフレームワークを検討した結果liftを選びました。主要ページは3日で出来上がり、9割のコードは90日ほどで書き換えられました。残りの1割であるiPhone対応は少し難航したようで60日ほどかかったようです。書き換えたことによりコードがキレイになりバグが少なくなった一方、liftがステートフルであることやORマッピング部分が未成熟なことなど、移行に際していくつか課題もあったようです。
全体のコード量としてScalaコードは14000行、マークアップ部分は6000行ほどのようです。Scalaを利用した事例として今まではTwitterが有名でしたが、これでまた一つ強力な実績ができたと言えるでしょう。
URL:http://www.scala-lang.org/node/5130