2013.03.28
フロントエンド・エンジニアの重要性が増している
2008年の6月に、「「フロントエンド・エンジニア」という呼び名のパワー」というエントリを書いた。

「フロントエンド・エンジニア」という呼び名のパワー
http://mojix.org/2008/06/25/frontend_engineer

<HTMLやCSS、JavaScriptなどクライアントサイドの開発・コーディングを担当する人を、最近のWeb業界では「フロントエンド・エンジニア」と呼ぶ場合があるようだ>。

この頃は、「フロントエンド・エンジニア」という名称はそれほどひろまっておらず、一部ではそう呼ばれているらしい、という程度だった。

そこから5年くらい経ったが、状況はだいぶ変わっている。「フロントエンド・エンジニア」という名称は、かなり定着した。ネット上でも、「フロントエンド・エンジニア」という言葉はしょっちゅう見かけるし、書籍でも、「フロントエンド・エンジニア」を書名に含むものを見かけるようになった。

この5年間で、「フロントエンド・エンジニア」という名称が大きく普及したということは、この5年間で、フロントエンド・エンジニアの重要性が大きく増したことを意味するだろう。ではなぜ、この5年間で、フロントエンド・エンジニアの重要性が大きく増したのか。その理由は、主に次の2つだと思う。

1)スマホ(スマートフォン)の爆発的な普及
2)サーバサイドロジックがクライアントサイドに移ってきている

1)の「スマホの爆発的な普及」は、誰でも知っている。スマホが爆発的に普及し、まだまだ普及しつつあるので、これにともなって「スマホサイト需要」が大量に出てきている。

スマホ向けのサイトは、PC向けのサイトとも、ケータイサイトとも、作りかたが違う。PC向けサイトと兼用にするにしても、いろいろ工夫や調整が必要になる。

そして、スマホサイトは一般にJavaScriptの比重が高いので、フロントエンド・エンジニアの出番がいっそう多くなる。これがまず、フロントエンド・エンジニアの重要性が増している、大きな理由だろう。

2)の「サーバサイドロジックがクライアントサイドに移ってきている」というのは、やや専門的な話で、一般人には見えにくい動きだろう。しかし、この動きは着々と進んでおり、サーバサイド技術を扱うエンジニアであれば、少なからぬ人がこれに気づいていると思う。

従来は、サーバ側でHTMLを生成して配信し、クライアント(ブラウザ)側はそのHTMLを表示するだけ、というのが普通だった。しかし最近は、クライアント側がJavaScriptベースで「アプリ化」して、サーバはそのアプリに対して、データをJSONで送受信するだけ、といった方式が増えている。クライアント側が「アプリ化」し、役割が拡大して「厚く」なるいっぽうで、サーバの役割はだんだん縮小し、「薄く」なってきているのだ。

こういった方式や考え方自体は、AjaxやWeb 2.0が流行した頃からずっとあって、特にあたらしくはない。しかしここ数年くらいで、この方式がいっそう拡大しているように見える。その大きな理由はやはり、スマホだろう。スマホアプリは、単体で機能するものもたくさんあるが、サーバと通信するものも少なくない。サーバと通信するスマホアプリは、JSONやXMLをHTTPで送る、という方式がほとんどだろう。

スマホの普及・拡大にともない、サーバと通信するスマホアプリが増えてきた。そのいっぽうで、HTML5の普及もあり、ウェブサイトもただのHTMLから、JavaScriptベースで「アプリ化」し、リッチ化する流れが加速してきた。スマホアプリが増え、そしてウェブサイトもJavaScriptで「アプリ化」するという、その2つのクライアントのリッチ化によって、サーバの仕事は少なくなり、その役割は小さくなりつつあるのだ。

このように、「スマホサイトの需要」と、「クライアントのリッチ化」という、大きく2つの理由があわさって、フロントエンド・エンジニアの重要性が大きく増した、というふうに私は考えている。

さらに今後は、いわばスマホ自体が「ウェブ化」したような、Firefox OSのようなものも出てくる。スマホアプリとウェブサイトの境界はだんだん消えていき、すべてが「ウェブ化」していくわけだ。こうなると、フロントエンド・エンジニアの役割は、ますます大きくなるだろう。


関連エントリ:
「フロントエンド・エンジニア」という呼び名のパワー
http://mojix.org/2008/06/25/frontend_engineer