platforms
developer tools

今がデベロッパプラットホームの時代であるわけ

次の記事

NAVERのLINEが6カ月で1000万ダウンロードを突破。TVCMでペースが加速

[筆者: James Yu]
developers

編集者注記: ゲスト筆者James Yuは、モバイルデベロッパのためのクラウドプラットホームParseの協同ファウンダだ。彼をTwitterでフォローでき、また彼のブログも読める。

これまで長年、ソフトウェア開発はサーバ中心型設計とクライアント中心型設計のあいだを、行きつ戻りつしていた。そして今日では、iOSやAndroidのようなモバイルプラットホームが支配的になり、サーバとクライアントのどちらにも偏重しないハイブリッドなクライアント/サーバアーキテクチャの時代に入った。

そのデベロッパにとっての意味は、扱う技術がそれまでよりも多くなったことだ。またそのことに呼応して、近年の新しいデベロッパプラットホームは、それまでアウトソースされなかったようなもの…データベース、メール、ユーザ認証、などなど…まで、デベロッパに代わって面倒見るようになっている。そして、ソフトウェアのクラウドへの移行が進むにつれて、最終製品を作るための開発ツールも、クラウド化しつつある。

クライアントからサーバへ、サーバからハイブリッドへ

振り返って90年代には、デスクトップのソフトウェアが業界と市場を支配していた。つまりソフトウェア開発の多くが、クライアントサイドだった。ネットワークはまだ、一般化していなかった。だから、インターネットから提供されるアプリケーションがたまにあっても、ユーザはそれをつねにオンラインで使えるとは期待しなかった。デベロッパはせっせとクライアントサイドのソフトウェアを作り、それを消費者に簡単なダウンロードで提供したが、まだサーバとの接続はなかった。

しかし2000年代に入ると、Webが徐々に多数派になってきた。そして、ブラウザへ移行するソフトウェアが次第に増えてきた。そのためデベロッパは、サーバサイドのコーディングに多くの時間を費やした。ブラウザ(クライアント)はリクエストをサーバに送るだけで、結果を作り出す仕事はすべてサーバが行い、それをブラウザに送り返した。クライアントサイドもJavaScriptで少々の仕事をすることはあったが、重要な仕事の多くはサーバ上で行われた。その時代には、サーバサイドのプログラミングを知っていることが、デベロッパの最重要の資格だった。

早回しをして現代を見ると、状況は複雑になっている。先頭に立っているのは、ネットワークを用いるモバイルアプリケーションだ。Webの最終的な行き先も、デスクトップコンピュータではなくモバイル製品になった。続々登場するタブレットとスマートフォンが、デスクトップを日陰者にしていった。すでに、Facebookなどのサービスは、モバイルからのアクティビティがデスクトップの倍になっている。

ハイブリッドは複雑だ

今のデベロッパは、お互いに緊密に対話をするクライアントとサーバの両方のコードを作らなければならない。それは、スタイルの異なる二種類の開発を並行してこなさなければならないことを意味し、プログラミング言語も環境も、複数になることが多くなった。クライアントのコードは、遅くて不確実性のあるネットワークに接続された、リソースに制約のあるデバイスの上で動かなければならない。そして、クライアントのデバイスは新旧さまざまなので、それらに合わせてクライアントのコードもバージョンが複数になり、するとサーバは、それら複数のバージョンのクライアントからのリクエストを扱わなければならない。これに、データのマイグレーションという問題が加わると、いつ惨事が起きても不思議でない状況ができあがる。

消費者の要求も、最近は厳しくなっている。ユーザは、自分のアプリが常時オンラインであること、少なくともそれらしく振る舞うことを、期待する。これの意味するところは、キャッシングを巧みに扱うこと、リクエストをキューに入れること、ありとあらゆるネットワークのトラブルに備えること、といった、デベロッパにとっての新たな課題だ。おっと、まだある。Facebook、Twitterなど、さまざまなサードパーティとの統合を、デベロッパは扱えなければならない。

このような条件をすべて勘案すると、もはや、単に有能なデベロッパのチームを作っただけでは対応できないことが、分かってくる。デベロッパプラットホームというものを、有効に活用する必要があるのだ。

プラットホームの登場

ここ数年、X as a Service、XaaSの台頭が著しい。Xは、プラットホームでも(PaaS)、インフラでも(IaaS)、そのほかのサービスでも、何でもいい。おそらくその先がけはAmazon Web Servicesで、それに続いてHerokuMailgundotCloudAppEngineなど、数え切れないほどさまざまなサービスが花開いたのだ。

どのサービスにも共通していることが、一つある。それは、デベロッパの生産性を上げることだ。これらのサービスを使うことは、巨人の肩に乗ることに似ている。たとえば、Herokuがすべてやってくれるのだから、Railsのサーバの増設などをデベロッパはいっさい考える必要がない。

プラットホームは毎日のように、デベロッパがアプリケーション本体以外の部分で書くコードの量を減らしている。それによって、アプリを早く、高品質で開発でき、デベロッパは製品本体にのみ集中できる。たしかに、コントロールの一部をサードパーティにゆだねることになるが、デベロッパプラットホームの良いところは、デベロッパがスケーラビリティで悩む必要がなくなることだ。どれだけトラフィックが増えても、プラットホームがサービスの一環として対応してくれる。というわけで、今は、デベロッパプラットホームの時代が訪れたのだ、と言える。世界がますますオンライン化していく未来は、その勢いにさらに拍車がかかるだろう。

写真クレジット: purploonyによる”Developers, developers, developers”

[原文へ]
[jpTechCrunch最新記事サムネイル集]
[米TechCrunch最新記事サムネイル集]
(翻訳:iwatani(a.k.a. hiwa))