米Yahoo!で議論された、フロントエンドエンジニアリングの将来(後編)
米Yahoo!が11月8日から3日間にわたり開催したWebテクノロジーのイベント「YUIConf 2010」。主にWebアプリケーションのフロントエンド技術を中心にしたセッションが並ぶ中で、著名人によるパネルディスカッション「The Future of Frontend Engineering」が開催され、そのビデオが公開されています。
この記事は「米Yahoo!で議論された、フロントエンドエンジニアリングの将来(前編)」の続きです。
後編では会場からの質問を中心に、IE9問題、HTML5とWebのセキュリティ、そしてフロントエンドエンジニアの採用などについてディスカッションしています。
IE9問題の登場?
Ben Galbraith じゃあ会場からの質問を受けることにしましょう。
参加者 Derrickといいます。ここYahoo!のエンジニアです。僕の質問は、先週YUIがIE6をGrade A対応から落とすという発表があったことについてです。まずはそのことについて、YUIチームに拍手を送ります。(拍手)
さて、ようやくIE6が消えてくれることになるとして、私たちは次はIE7やIE8の問題といったものをまた抱えることになるのでしょうか? あるいはほかにオープンなWebのイノベーションを妨げるような問題があると思いますか?
Douglas Crockford 私が答えましょう。IE9問題を抱えることになるでしょう。(笑)
マイクロソフトに支援されたおかげで、私たちはECMAScript5を策定することができました。マイクロソフトはエディタを派遣してくれ、ECMAScript5について多くのすばらしい設計をしてくれて、私はとても感謝しています。
ECMAScript5にはstrict modeがあり、これはマッシュアップ問題に対する部分的な解決をしてくれます。サードパーティのコードに対して静的解析(Static Validation)をしてくれる、非常に大事な機能です。しかしInternet Explorer 9には、この機能がないようです。マイクロソフトは「標準を実装するつもりですか?」「標準に適合するつもりですか?」といった私の質問に対して「コメントできない」との返事でした。
もしもマイクロソフトが最終的に実装すれば、それは素晴らしいこととしてたたえましょう。でももしそうでなければ、IE9も「亡くなってほしい」リストに名を連ねることになります。(笑)
Tantek Çelik いまの問題はどのブラウザでもありうる問題であり、オープンなWebには永遠につきものでしょう。誰か、まったく問題が存在しないプラットフォームがあると言える人は? いませんよね。
Web開発で学んだことは、プログレッシブエンハンスメント、あるいはグレイスフルデグラデーションなコードを書かなければならない、ということ。そしてデバイスやブラウザをマーケットシェアのどこかで足切りしなければならないということです。私はIEは将来に向けたチャレンジをしているのだと思っています。
HTML5はマーケティング用語になってしまった
Ben Galbraith いまのに関連して質問をしたいのですが、IE9のチャレンジのもう1つは、自身を「HTML5対応ブラウザ」と呼んでいることです。HTML5は、ある意味で新しくてクールなブラウザを示すためのマーケティングキーワードになっていて、仕様を指す言葉としては終わっています。CSS3やWebWorkersなど(W3CのHTML5仕様の)周囲にも多くの仕様があって、僕としてはそれらも含むと思うのですが。
Tantek Çelik Canvasもだね?
Ben Galbraith そうです、Canvasも。ほかにもHTML5仕様ではない部分で多くの仕様があります。そして、こうした多くの機能を含む世界を、私たちはなんと呼ぶべきなのでしょう? それをブラウザに実装する人たちは、その中から何を選んで実装するのが正しいのでしょうか?
Tantek Çelik 実装するひとたちは取捨選択する傾向があります。名前の質問について言えば、Bruce Lawson氏が最近、「NEWT」という言葉を提案しています。New and Exciting Web Technologiesということで。(笑)
Tantek Çelik いやこれはジョークじゃないんです。彼は真剣だと思います。別の人はそれをWeb 3.0と呼んだりもしています。僕にとってHTML5といえば仕様のこと。それなら明白で、自分がなにについて話しているかを(仕様書として)URLで指定することもできます。
けれど多くのブラウザベンダは「HTML5」をHTM5仕様とそのほか全部を含めて、そう呼んでますね? 例えばマイクロソフトでは?
Ben Galbraith HTML5とそのほかの関連仕様を含めていることは明らかだと思います。
Tantek Çelik そう。でも、こうした互換性の問題を解決できるのでしょうか? こうしたHTML5がブランドのようなものとして扱われる未来へ進もうとしているのでしょうか?
HTML5とWebブラウザのセキュリティ問題
Dion Almaer 次の質問へ行きましょう。
参加者 AjaxianのChrisです。セキュリティについての質問です。HTML5や新しいAPIは素晴らしいものですが、一方でセキュリティの問題も抱えていると思います。そうした危険はどこにあると思われますか? そしてその問題を解決するためになにができるのでしょうか?
私はアントレプレナーたちとこのカンファレンスで話したのですが、基本的にセキュリティについて考えることはクリエティブでもイノベーティブでもないと言っています。残念です。こうした問題をどうやって理解してもらえばいいのでしょう?
Ben Galbraith これはまずDoug以外のみんなに聞いてみましょう。
Elaine Wherry この問題はなんとかしたいですね。サードパーティアプリケーションを開発する立場として、この問題を取り上げてくれたことに感謝したいと思いますし、私たちは本当に深くこの問題について考えています。
過去6カ月から8カ月かけて、私たちはMeebo barをiframeの中に組み込んできました。もっとも大事なことは、ユーザーが見ているもの、(Meebo barに表示された)バディリストやそういった情報がほかの誰からもみることができないということでした。ユーザーに、HTTPとHTTPSの違いを確認してもらうようにしましたが、まだまだ理解してもらえる努力が必要ですね。
Tantek Çelik HTML5、Evercookie(期限なしクッキー)などが言及されていますが、答えは「経済性」にあると思っています。「Exploit Kits」を聞いたことがある人は? いないようですね。これは人のマシンを乗っ取るためのソフトウェアで、実際に販売されているものです。もしもこれを「そんなものを売るマーケットに欠陥がある」とするならば、マーケットはこうした脆弱性をどう判断しているのでしょう。 現在のブラウザで最大の欠陥は何だと思いますか?
参加者 エクステンション?
Tantek Çelik エクステンションではありません。
参加者 Flash? プラグイン?
Tantek Çelik Flashでもプラグインでもないです。Javaです。市販されているExploit Kitsの多くがJavaに対して有効なんです。HTML5やEvercookieについてとやかくいわれていますが、まあくだらないことです、まだExploit Kitsでは使われていないのですから。
もしセキュリティについて心配しているのならば、最初にするべきことはJavaをオフにすることです。あまり言いたくありませんけれど。
Ben Galbraith ではDougに話を聞きましょう。
Douglas Crockford HTML5やその関連についての……なんと呼べばいいかな?
Ben Galbraith 私はNEWTが気に入っていますが。
Douglas Crockford NEWTや、あるいはWeb 3.0、4.0では、クロスサイトスクリプティングが解決されていないのです。
ブラウザはローカルデータベースやローカルストレージの機能を持ち始めています。アタッくによってそれらは全部抜き取られる可能性があります。HTML5以前にはできなかった多くの悪事ができるようになるのです。
私に言わせれば、これは機能を追加する前にセキュリティの問題を修正しようとしないW3Cの無責任感にあり、私たちは15年もこの問題にさらされています。彼らは新しい機能を追加するのではなく、基本的な問題をまず解決すべきだったのです。
Thomas Sha このパネルの最初の方で、私たちはさらなる機能追加を求めているのだろうか? という話があったと思います。
セキュリティの問題は、単にコードだけの問題ではなくて、ソーシャルエンジニアリングにもかかってきます。このパネルの参加者の多くはアプリケーションを作っていますし、自分以外の誰かが作ったアプリケーションを共有し、対話をしようとしています。こうしたことも問題の根底にあると思っています。ユーザーは何が起きているかを知る必要がない、といったことこそ、もっとも危険なことで、新しい機能追加というのは全体としては小さな問題になっているのではないでしょうか。
例えば、Geolocation機能を備えているけれども、そうしたことをユーザーに知らせるのが無頓着なアプリケーションがあった場合。コードにセキュリティ上の欠陥がなくとも、誰かが知ろうと思えばあなたの居場所を知ることができるかもしれません。これがみんなにとって欠陥かどうかは分からないけれど、私にとっては怖いことです。
こうした新機能は広がっているけれど、アプリケーションそのものはそれに対して一貫したセキュリティになっていない。これはどう考えるべきなのでしょうか?
Douglas Crockford ブラウザはアプリケーションデリバリシステムとして、ほかの何よりもセキュアになってきていますし、Webのもっとも優れた機能の1つになるでしょう。しかし現時点ではそれは間違ったものになっています。
いいフロントエンドエンジニアについて
参加者 採用について質問です。いま、いいフロントエンドエンジニアがなかなか採用できないと多くの企業が言っています。私も個人的にそうしたものになろうとしていて興味があります。そのためにグーグルやYahoo!のような大きな企業へ行くことはかしこい選択なのでしょうか?
Dion Almaer 私たちもいいエンジニアを採用できないでいます。本当に難しい。だから彼らを育てなくてはなりませんね。
Douglas Crockford そうなんです。歴史的に見ると、私たちは「Webマスター」といったたぐいの人たちを採用してきました。振り返ってみると、彼らはあまりかしこい人たちではなかったですね。(笑)
Douglas Crockford 私がYahoo!で誇りにおもっていることの1つは、フロントエンドエンジニアリングというものを規定したことです。非常に幅広いスキルを要求するものとして。私たちは社内外において、Webアプリケーションを作るための多くのスキルを必要とする人たちにトレーニングを提供しようとしています。
とはいえ世の中にはWebマスターが満ちあふれていて、フロントエンドエンジニアを採用するのは難しいのですけれど。
Elaine Wherry 私たちが最初のチームを採用しようとした2005年のことを振り返ってみると、いまの方が状況はよいように思います。当時、JavaScriptのフレームワークをスクラッチから作ろうとする人たちは、ダイヤモンドの原石のようなものだったからです。
いまはそうしたことに熱中しているひとがたくさんいて、オープンソースの取り組みも盛んです。
Dion Almaer 現在のWebマスターといえば、jQueryプラグインモンキーといった人ですかね?
Elaine Wherry ですね。そして、それが履歴書からいいエンジニアを判断することが難しくしています。ただ、JavaScriptに興味を持っている多くの人がWebサイトを持っていますから、そこへいって見てみることが少し役に立つと思います。