最近のWeb開発の動向

最近インターネットをしてると、やたらとJavaScript系のFrameworkの名前を見かけることが多い。Backbone.js、Angular.js、Ember.js等など。なんでJavaScriptがここまで流行っているのかWeb開発の経験が少ない僕(お仕事だと1年程度、その殆どが窓口エクセルマン)にはよく分からなかった。調べてみるとどうもWeb開発のアーキテクチャに変化が起きているらしい、しかも結構前から、そんな変化を今頃になって気がついたというわけだ。頭の整理がてらまとめてみようと思う。

サーバーサイドからクライアントサイドへ変化

上記で上げたFrameworkは総称して「JavaScript MVC Framework」と呼ばれているらしい。頭が古いのでMVCと言われるとJava ServletPHPフレームワーク、Playframework、Ruby on railsなどのサーバーサイドのアーキテクチャを連想していたが、現在の主流はクライアントサイドで処理を実行する方向になっているようだ。その理由の一つとしてHTML5とCSS3がある。これらが登場したことによりクライアントサイドで表現できる幅が広がった。それに伴いブラウザ上で処理を実行する言語であるJavaScriptの重要性も上がったというわけだ。古典的なWebページは画面遷移する毎にGET(またはPOST)リクエストして、レスポンスとして返ってきたHTMLを表示していた、随分昔にWeb開発の勉強を独習していたころ、それを見てなんて非効率なんだ、最初に画面表示モジュールをある程度一式ダウンロードしておいて、サーバー側はデータの永続化、共有化に徹すればいいじゃないかと思ったけど、やはりその方向になったようだ。

JavaScriptは直で書かない?

これだけ需要が増したにも関わらず、最近のモダンな言語に比べてJavaScriptの言語仕様は柔軟すぎるというか、ちょっと難がある。例えばクラスがない(クラスを模した書き方は出来る)、動的型付けなどなど。次期仕様であるECMAScript6で色々解決されるらしいが、まだ対応するブラウザも無いし、だけど直で書くのも辛いしってことでJavaScriptのダメな言語仕様を改善した言語作って、それでJavaScriptに生成しようぜってことになったみたい。それらの言語の総称をAltJS(Alternative JavaScript:直訳でJavaScriptの代わり)と呼んでいる。代表的なものにTypeScript、CoffeeScriptHaxeがある。恐らくというか絶対そうなると思うけど、これらの言語はあくまで代替品で正式なものまでの繋ぎなので、将来JavaScriptがモダンな言語仕様になったとか、或いはもっと別の言語が採用されるってことになったらこの手のものは無くなるだろう。初めから無くなると分かっている物を勉強するのはなんかちょっとさみしい感じがあるけど、進歩の早いWeb開発だとしょうがないのかなと思う。

出展

※Node.jsを代表とするサーバーサイドJavaScriptの話はまた今度にする