技術と魚

雑感と備忘録

Rails、JavaScript、そしてHello World

※ 怪文書注意

DDH(Railsのauthor)は多くのアプリケーションにとってJavaScriptなんてみたいなもんだ、と表現していた。RailsにおけるViewは基本的にはHTMLという文字列を返すのであって、それでは足りない部分をJSで味付けする。それでよくね?と。

さてここ10年におけるJavaScriptの勢いは凄まじい。ReactをはじめSingle Page Applicationのためのベースとなる技術は出来つつあるのではと思う。何となく新しくWebを始めた人は、もはや何も考えずReactから使い始めるかも知れない。「JSXはわかるけどHTMLはわからない」、そんな人が現れてもおかしくない。

こんな勢いを見せつけられては、人々はそのパッションに押し流され、「まだHTML吐いてんの?」と言われる時代が来てしまうかも。だから「Railsと心中するんじゃだめだ、Railsを離れてもっと最先端についていこう」、そう考えてしまってもおかしくはない。

技術がレイヤーを積むように発展した経緯を考えれば、このまま徐々に、OSI参照モデルのようにして、全くHTML/CSSについて知らなくても何かいい感じのWebが出来上がる未来があるのかもしれない。とはいえ今のところは、Reactを触るにはHTML/CSSを知っていないとまず仕事にならないと思う。

このとき、重要なのはレイヤの役割だろう。JavaScriptによって本当に全てのフロントの要件を満たせるのならば、HTMLのような構造化文書が前提となっている必要はない。もしかすると、Web100.0の世界では、HTML/CSSは廃止され、ネイティブなDOM操作APIだけが提供されれば十分な世界が来るかも知れない。その時にはHTMLは、現世のFlashのごとく古風なソリューションとして認識されていて、「Chromeでtext/htmlをレンダリングするには、ブラウザにエクステンションを入れて下さい」的なことになっているかも。

さてそのようにして基本的にリッチなWebを前提とした世界があるとしよう。きっとその頃にはネットワークオーバーヘッドは今より遥かに小さく、リッチWebを表示するためにブラウザの描画速度は徹底的に磨き込まれている。私たちはきっと、もっと簡単に画面構築をするため、「JSONの代わりに画面の構造をそのまま表現したデータを返すのは、結構アリなのではないか?」と思うだろう。かくしてWeb200.0の世界に再びVery Very SmartなHyper Textが爆誕するのである。

こんな世界の変化を想像した時、HTMLを吐くだけというRailsの考えは現時点で少なくとも古い考えではないし、むしろ私たちは現代において何も我慢すること無く、洗練されたAPIであるHTMLを活用するという効率的な選択肢が目の前に存在しているのである、と考えることが出来る。とても良い時代ではないだろうか。考えてみればブラウザにサクッと情報を描画すべく生まれたHTMLは、極めてリッチで無駄のないAPIではないかと思える。とにかくややこしい動的操作は排除する、強烈な思想を持って作られたモノである。ああ、MARQUEEタグ、BLINKタグのあった時代が懐かしい。