とあるIT屋の独白

ITや経営について主に書きます

ブラウザでのアプリケーション実行の変遷について書いてみる

私がエンジニアをやってる中で、Webアプリケーションにたずさわってたことが一番多い気がします。今振り返ると、私が実際にWebに関わってきた頃からだいぶブラウザの環境とかも変わってきている感じがします。今回は私が携わってきた内容とかも踏まえて、このWebアプリケーションの主にブラウザに関わる部分を書いてみたいと思います。
まず、どこから話を始めるかというと、私がWebアプリケーションにたずさわり始めた2000年代後半から2010年代初頭くらいのところから。この頃は下記の記事の通りちょうどAjaxが出たての状況でしたが、Webアプリケーションの範疇では基本はサーバサイドでHTML出力し、フロント側のJavaScriptは補助的な役割というのが多かった気がします。

www.kogures.com


ではフロント側でリッチなコンテンツを入れたい時はどうするかというと、FlashであったりJavaアプレットといった、ブラウザで実行できるサードパーティのアプリケーションを組み込むことが多かったです。特にFlashは色々なサイトで使われていましたし、私もFlashとのデータ連携部分の案件などやってたこともあり、苦い思い出もあります。

nlab.itmedia.co.jp


そして、2010年代の初頭から中盤頃にかけて、フロントエンドにおけるWebアプリケーション開発の大きな変化が、個人的には2点あったと考えています。
まず一点目がHTML5です。HTML5が登場したことによって、ブラウザで今までサードパーティのアプリケーションでしか不可だったリッチなコンテンツを、ブラウザで実現ができるようになりました。登場当初は、まさかFlashを駆逐するとは思いもしなかったです。もちろん、スマホ普及の影響も大きいですが、それだけブラウザの機能自体が急速に進化したと感じます。

techblog.yahoo.co.jp


二点目は、JavaScriptフレームワークが登場してきたことです。ブラウザ上でリッチなコンテンツを表現できるようになっても、それを適切に開発できなければいけません。フロントエンドの実装が増えてくる中、jQueryでは開発の限界がやはりある気がします。そんな中でJavaScriptフレームワークが誕生したのは、大きかったと思います。下記の記事にあるフレームワーク「AngularJS」は、今のフロントエンドワークの先駆けのような存在と感じます。

codezine.jp


そして、現在に至りこのHTML5JavaScriptフレームワークが洗練されてきて、かなり多くのことがブラウザで完結できるようになりました。まだまだネイティブアプリでしか出来ないこともありますが、ブラウザの機能追加も今もかなりの勢いで行われていて、ちょっとしたアプリであればブラウザで十分かなと感じるくらいです。

また、開発スタイルとして、バックエンドとフロントエンドで分けて開発するケースが多くなってきました。これはフロントエンド周りの技術スタックが確立してきた点と、フレームワークもある程度React・Vueあたりに落ち着いてきたという点が要因として挙げられるかなと思います。

d.potato4d.me


さて、すごくざっくりですが現代に至るまでのブラウザ周りのアプリケーションについて書いてみましたが、最後に少し未来の話を書きたいと思います。
ブラウザ界隈で最近、最もホットなトピックの一つがWebAssemblyでしょう。もちろんブラウザでもできることは増えてはいるものの、一方でJavaScriptだけでは処理しきれない処理も存在するわけです。それをカバーする仕組みとして用意されたのが、WebAssemblyです。現状、エンコード処理であったり機械学習の処理なんかを、ブラウザで実行することに活用を見出したりしています。今後OSの機能呼び出しとかもできるようになるらしく、機能がより洗練されてくれば、ブラウザでできることがより増えるものと期待しています。

www.publickey1.jp