<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:series="http://organizeseries.com/"
	>

<channel>
	<title>Promise &#8211; HTML5Experts.jp</title>
	<atom:link href="/tag/promise/feed/" rel="self" type="application/rss+xml" />
	<link>https://html5experts.jp</link>
	<description>日本に、もっとエキスパートを。</description>
	<lastBuildDate>Sat, 07 Jul 2018 03:14:05 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.7.19</generator>
	<item>
		<title>【エキスパートガチトーク】Web技術の未来を「Extensible Web」から探る！（後編）─技術の進化は必要か？</title>
		<link>/shumpei-shiraishi/16641/</link>
		<pubDate>Tue, 08 Sep 2015 01:00:19 +0000</pubDate>
		<dc:creator><![CDATA[白石 俊平]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[Extensible Web]]></category>
		<category><![CDATA[Promise]]></category>
		<category><![CDATA[ServiceWorker]]></category>
		<category><![CDATA[Web Components]]></category>

		<guid isPermaLink="false">/?p=16641</guid>
		<description><![CDATA[本対談記事は、Extensible Webが誕生してから2年で何が変わったのか、そしてこれからWebはどうなっていくのかを、有識者の方々にそれぞれの立場から語っていただこうという企画です。 後編である今回は、Extens...]]></description>
				<content:encoded><![CDATA[<p><style>
.post-detail-contents p {
  text-indent: 0;
  clear: left;
}
b.speaker.komatsu {
  background: url('/wp-content/uploads/2015/08/komatsu.png') no-repeat;
  background-size: 48px;
}
b.speaker.shiraishi {
  background: url('/wp-content/uploads/2015/08/shiraishi.png') no-repeat;
  background-size: 48px;
}
b.speaker.saito {
  background: url('/wp-content/uploads/2015/08/saito.png') no-repeat;
  background-size: 48px;
}
b.speaker.daniel {
  background: url('/wp-content/uploads/2015/08/daniel.png') no-repeat;
  background-size: 48px;
}
b.speaker.asai {
  background: url('/wp-content/uploads/2015/08/asai.png') no-repeat;
  background-size: 48px;
}
b.speaker {
  display: inline-block;
  width: 48px;
  height: 18px;
  float: left;
  padding-right: 8px;
  padding-top: 48px;
  text-align: center;
  font-size: 12px;
  margin-bottom: 4px;
  font-weight: normal;
  clear: left;
}
p {
  overflow: hidden;
}
</style>
本対談記事は、<strong>Extensible Web</strong>が誕生してから2年で何が変わったのか、そしてこれからWebはどうなっていくのかを、有識者の方々にそれぞれの立場から語っていただこうという企画です。</p>

<p>後編である今回は、Extensible Webの現在、そしてWeb技術の未来にフォーカスしたお話になります。Extensible Webの概要や、Extensible Web以前からあるWebの問題点について知りたい方は、<a href="https://html5experts.jp/shumpei-shiraishi/16597/" data-wpel-link="internal">前編</a>をご覧ください。</p>

<p><img src="/wp-content/uploads/2015/08/DSC_0187.png" alt="" width="640" height="407" class="aligncenter size-full wp-image-16716" srcset="/wp-content/uploads/2015/08/DSC_0187.png 640w, /wp-content/uploads/2015/08/DSC_0187-300x191.png 300w, /wp-content/uploads/2015/08/DSC_0187-207x132.png 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<h2>HTML5は（ついに）モジュール化される</h2>

<p><b class="speaker shiraishi">白石</b> では、Extensible Webの考え方が提唱されてから2年が過ぎたわけですが、どのような変化が起きつつありますか？まずは皆さん、思いついたものから教えていただけると嬉しいです。</p>

<p><b class="speaker daniel">ダニエル</b> 最近の話で言うと、<strong>HTML5の仕様がモジュール化されます</strong>。例えば<a href="http://w3c.github.io/charter-html/timed-media-wg.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Timed Media Working Group</a>というワーキンググループが提案されていますが、もともとはHTML5の一部でした。このように、専門的なグループに分かれて仕様策定が進められるようになろうとしています。</p>

<p><b class="speaker shiraishi">白石</b> Extensible Webは、標準化の話とも密接に関わっているかと思うので、詳しく教えて下さい。HTML5.1がバラバラになっていくということでしょうか？</p>

<p><b class="speaker daniel">ダニエル</b> そうです。まだ詳細は決まっていませんが、<strong>今後仕様書も分割されていきます</strong>。ちょうど、CSSがバージョン3になって、多数の仕様書に分割されて、それぞれメンテナンスされるようになったのと似た感じになるでしょう。</p>

<p>また、ワーキンググループが分かれていくというだけではなく、もっと開発者が参加しやすくなります。その一つが、<a href="https://www.w3.org/community/wicg/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Web Incubator Community Group</a>の作成です。これができたのもつい最近（2015/7/2）ですね。ここは仕様を提案する場というよりは、質問してアドバイスを受けたり、デモを投稿したりと、一般の開発者のサポートが中心になります。</p>

<p><b class="speaker saito">斉藤</b> これは素晴らしいですね。最近すごく思うのは、仕様書がGitHubに置かれるようになって、<strong>別にGitHubが大好きというわけでもないんですが、開発者に見られるサイトNo.1ということで</strong>、変更の履歴すらも簡単に見られるようになり、どういう経緯で仕様が変更されていったかが追えるようになったのは素晴らしいと思います。</p>

<p><b class="speaker daniel">ダニエル</b> 10月のTPACまでに細かい作業を終えて、TPAC以降にフィードバックをもらいながら改善していくという感じだと思います。</p>

<h2>APIの低レベルさはどこまで許容される？</h2>

<p><b class="speaker asai">浅井</b> 最近はExtensible Webの流れを受けて、低レベルなAPIを提供して開発者に使ってもらおう、ということを意識するようになりました。例えば最近、センサー類のAPIを作ろうとしているのですが、大きく２つの方向性があるという議論になったんですよ。</p>

<p>一つは光センサーとか、既存のセンサーを抽象化するようなもの。またそれと合わせて、組み込み向けの通信制御のAPIを提供してはどうかというものでした。こちらはまあ、普通ですね。</p>

<p>でももう一つはぶっ飛んでて、<strong>Low Level File System APIっていうのを作ってしまってはどうか</strong>、と。
UNIXって、<code>/dev</code> 以下のファイルを通じてデバイスにアクセスできるじゃないですか。だったら、ファイルにアクセスできる手段を一つ開発者に与えてあげるだけで、どんなデバイスでも操作できるようになるじゃないか、と。本当に低レベルなものを作りさえすれば、開発者が必要なものを作れるよという考え方です。</p>

<p>でもこれは完全にぶっ飛んでる。だってプラットフォームに思い切り依存するじゃないですか。やり過ぎ感はすごくあるけど(笑)、それをマジメに議論できるようになったというのが、Extensible Webから来る発想なんじゃないかな、という気がします。僕としては、ちょっと低レベルすぎるんじゃないかと思いますが。</p>

<p><b class="speaker shiraishi">白石</b> そのうち、システムコールとか叩けるAPIが出てきそうですね。</p>

<p><b class="speaker asai">浅井</b> あまりAPIが低レベル過ぎても、今度は（JavaScriptライブラリによる）パフォーマンスのロスが大きすぎるし、OS依存のAPIを露出するのはよくないという考え方もあるので、どこまで低レベルにいくべきかというのは、今Extensible Webの中で本当に議論していかなくてはならないんじゃないか、という気がします。</p>

<h2>「Extensible」なAPIたち</h2>

<p><b class="speaker shiraishi">白石</b> なるほど。ではここでちょっと話を変えて、実際にExtensible Webに関連するAPIといえば何があるんでしょう？まず<strong>Fetch</strong>（※）とか。あと、<strong>ServiceWorker</strong>（※）もでしょうか。</p>

<p><b class="speaker saito">斉藤</b> <strong>Promise</strong>（※）とかもそうだと言っていいんじゃないでしょうか。Promiseの原型になったAPI（Deferとか）は、Extensible Webの提唱以前からありますが。</p>

<p><b class="speaker komatsu">小松</b> 他には、<strong>Object.observe</strong>（※）とかもありますね。</p>

<p><b class="speaker asai">浅井</b> <strong>Web Components</strong>（※）もそうでしょうね。</p>

<p><b class="speaker daniel">ダニエル</b> Web Componentsは便利ですよね。Polymer 1.0が出た時に使ってみましたが、とてもよかった。でも、Polymer自体がものすごく巨大なので、便利さの代償も大きいな、と(笑)。</p>

<p><b class="speaker asai">浅井</b> Web Components、小規模なプロジェクトならいいですが、大規模で長期的なプロジェクトとかでは、まだあまり使われてないんじゃないでしょうか。
そういう点では、Mozillaはむしろ積極的に使っています。しかも、Firefox OS本体で。<strong>本当に大事なAPIは、誰かがガチで使わないと熟成されないので、我々は必ず本番プロジェクトにガンガン入れるんです</strong>。</p>

<p>Firefox OS 2.5とかになると、Web ComponentsだけじゃなくてServiceWorkerとかも思い切り使って、アプリケーションのアーキテクチャを大幅に変更しようとしてます。どこよりもServiceWorkerを思い切り使って、悪いところを見つけ出そう、くらいの勢いですね。
ただ、ServiceWorkerをフルに使用して、複雑なキャッシュ処理とかを行うコードを見ていると、これはもう一般のWeb開発者が気軽に触れるレベルじゃないな、と思います。WebGLを生で扱うコードとかもそうですけど。</p>

<p><img src="/wp-content/uploads/2015/08/DSC_0175.png" alt="" width="640" height="426" class="aligncenter size-full wp-image-16719" srcset="/wp-content/uploads/2015/08/DSC_0175.png 640w, /wp-content/uploads/2015/08/DSC_0175-300x200.png 300w, /wp-content/uploads/2015/08/DSC_0175-207x138.png 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<p><b class="speaker komatsu">小松</b> WebRTCなんかについても、「一般のWeb開発者にとっては、使うのが難しい」という話はよく聞きます。でも<strong>WebRTCは、低レベルすぎるという意見もあれば、あれでもまだAPIのレベルが高過ぎるという意見もあって</strong>。</p>

<p>もともとはビデオチャットをユースケースとしてAPIを作っていたんだけど、実際にやってみると双方向のビデオチャットだけじゃなくて、例えば監視カメラみたいに「一方向だけ」というユースケースも重要だったりとか、多人数会議とかやるときは映像のネゴシエーションとかもっと柔軟にやりたい、という話が出てくると、実は今のWebRTCでも高レベルすぎると。その議論が、今のORTCに繋がったりしているわけです。しかし、APIのレベルを低くすればするほど、柔軟性は向上するんだけど取り扱いは難しくなって、一般の開発者が触るには難しいものになっていくだろうな…とは感じています。</p>

<p><b class="speaker shiraishi">白石</b> なるほど…WebRTCみたいな、高度なネットワーク処理を伴うAPIについては、TCP/UDPのソケットを直接触れるような低レベルAPIがあればよさそうですよね。Socket APIとかは既にあるんでしたっけ？</p>

<p><b class="speaker asai">浅井</b> ありますよ。Firefox OSではよく使われています。</p>

<p><b class="speaker shiraishi">白石</b> ああそうか、Firefox OSやChrome OSだと、かなり低レベルなJavaScript APIが既に実装されてますよね。Bluetoothとか、シリアル通信とかも可能だったような。</p>

<p><b class="speaker daniel">ダニエル</b> BluetoothのAPIは使ってみたんですけど、やっぱりChromeブラウザじゃなくてChrome OSでしか使えないんですよね。ブラウザで（通常のWebアプリで）使いたいとは感じましたが、それは叶っていません。「危険だ」と。</p>

<p><b class="speaker komatsu">小松</b> <strong>APIのレイヤーを下げていくことと、セキュリティやプライバシーはトレードオフがあります</strong>よね。</p>

<p><small>
※ Fetch…ブラウザがHTTPを使用してリソースを取得する操作をAPIとして利用できるようにしたもの。XMLHttpRequestに近いが、よりAPIが洗練されている</p>

<p>※ ServiceWorker…バックグラウンドで動作し、アプリケーションのHTTPリクエスト・レスポンスをフック可能なAPI。詳しくは<a href="https://html5experts.jp/iwase/7006/" data-wpel-link="internal">こちらの記事</a>を参照のこと。</p>

<p>※ Promise…JavaScriptの非同期処理を扱いやすくするAPI。いわゆる「コールバック地獄」から開放される。</p>

<p>※ Object.observe…オブジェクトのプロパティ変更を監視できるAPI。AngularJSなどでユースケースが発見され、標準化提案がなされている。</p>

<p>※ Web Components…カスタム要素を利用できるようにできるAPI
</small></p>

<h2>低レベルAPIとセキュリティ・プライバシー</h2>

<p><b class="speaker daniel">ダニエル</b> 今お話に上がったように、「低レベルなAPIは危ない」という問題もある。皆さんここはどう考えますか？</p>

<p><b class="speaker shiraishi">白石</b> 僕が今回の対談を準備するにあたって、いろいろ情報を集めた中では、「<strong>そういうセキュリティやプライバシーの部分こそ、標準化のリソースを費やすべき点だ</strong>」という意見がありました。ひとりのエンジニアが、自分の力だけでセキュリティやプライバシーを完璧に実装することは不可能なので、標準化というプロセスを踏んで様々な知見を集約することで、そういったAPIの安全性を担保するという。</p>

<p><b class="speaker asai">浅井</b> ただ今の時代、<strong>APIだけでセキュリティを担保するのは難しくて、結局はアプリケーションのエコシステム全体でサポートしていかなくちゃいけない</strong>んですよね。例えばWebを全てHTTPS化するとか、アプリケーションマーケットでセキュリティレビューが行われるから安全になるとか、ほかの仕組みと組み合わせることで安全性を担保するという形になってきている。</p>

<p>まあ、一方で、そういう他の仕組みで担保してもらえるからエンジニア自身はあまりセキュリティのことを考えなくなっている…というのもあると感じています。もし低レベルのAPIが使えるようになるなら、実際躊躇なく開発者は使うわけですよ。Firefox OSでもふんだんに使われています。セキュリティレビュー前提でね。でも、そのセキュリティレビューが、どのエコシステムでも行われるわけではない。もしそういうAPIが、（セキュリティレビューのない）一般のWebコンテンツでも使えるようになったらまずいんです。</p>

<p><strong>エコシステム全体で安全性を保っているのに、エコシステム抜きでAPIだけ持ってきて使えるようにしてしまうと、安全でなくなってしまう。そこをどうやって担保していけばいいのか</strong>な、というのはすごく難しく感じています。</p>

<p><b class="speaker shiraishi">白石</b> HTTPSが前提だったり、Firefox OSみたいな環境の上でサンドボックス化されたアプリケーションであることが前提だったりとか、APIを取り囲む様々なコンテキストだったり環境を含めてこそセキュリティが担保されるのであって、APIだけ切り出して安全性を担保するというのは難しいということですね。</p>

<p><b class="speaker saito">斉藤</b> なるほど… 正直、「ServiceWorkerがHTTPSのみになりました」と聞いた時「なんだとコノヤロウ」と思ったくらいなんですが(笑)。よくよく考えてみると「そうだよね」と納得は出来るんですが、一方で「誰がそのSSL証明書代払うねん」という感じでもあります(笑)。</p>

<p><b class="speaker asai">浅井</b> <a href="http://www.mozilla.jp/blog/entry/10442/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">MozillaはHTTPSの無料化を推進しようとしています</a>けどね。</p>

<p><b class="speaker shiraishi">白石</b> そうですよね、頑張ってくださいよMozillaさん！世界中がMozillaに期待してます(笑)！</p>

<p>でも、ServiceWorkerはHTTPSオンリーです、というのは少し乱暴な感じも受けるのですが。<strong>今後、Extensible Webの思想に則ったAPIがどんどん現れるとして、「とりあえず危ないかもしれないからHTTPS限定にしておこう」という感じになっちゃわないんでしょうか</strong>？</p>

<p><b class="speaker saito">斉藤</b> まあ、流れとしてはWebは全部HTTPSにしていこうという感じですしねえ…</p>

<p><b class="speaker komatsu">小松</b> そうそう。iOS9のWebViewは、<a href="http://dev.classmethod.jp/smartphone/iphone/ios-9-intro-ats/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">デフォルトではHTTPS接続しかできなくなるしね</a>。</p>

<p><b class="speaker daniel">ダニエル</b> 標準化のほうでも、実際そういう流れはあります。「<a href="https://w3c.github.io/webappsec/specs/powerfulfeatures/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Secure Contexts</a>」というドキュメントがあって、<a href="https://w3c.github.io/webappsec/specs/powerfulfeatures/#threat-risks" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">「こういう場合はHTTPS接続が必要」というシチュエーションを列挙しています</a>。
これによると、センシティブなデータやセンサーデータにアクセスするAPIは全て対象となっていますので、（今まで非HTTPS環境でも利用できていた）<strong>Geolocation APIなども、将来的にはHTTPS限定になるかもしれません</strong>。</p>

<h2>世界は、開発者からのフィードバックを求めている</h2>

<p><b class="speaker shiraishi">白石</b> ここまでは、Extensible Webを中心として、Webの過去や現在についてお話いただきました。では、<strong>未来のWeb技術はどうなるんでしょう</strong>？</p>

<p><b class="speaker daniel">ダニエル</b> 簡単に言うと、<strong>低レベルなAPIが増えて、高レベルなライブラリが増える</strong>、ってことじゃないかと思います。</p>

<p><b class="speaker saito">斉藤</b> 一般の開発者や企業もライブラリを作るようになり、もっと言えば、それで利益を上げる企業が出てきてもいいと思います。今はWebのプラットフォームやライブラリを作っているのって、結局ブラウザベンダ周辺の方々ばかりです。もしそこで利益を上げられる仕組みが出てきたとしたら、もっと一般の企業や開発者がWebのプラットフォームづくりに貢献できるようになるんじゃないかと。今は、あまり貢献できる余地がない。</p>

<p><b class="speaker asai">浅井</b> <strong>（Webプラットフォームへの）貢献という点では、ブラウザベンダの立場から言うと、一番求めているのって開発者からのフィードバックなんですよね</strong>。Webブラウザのエンジニアは、フィードバックが欲しくてしかたがないんですよ。自分たちが仕様を書いても、他の人が作って使ってくれないと標準化できないんですから。そこを、どんな方法でもいいから解決したくって、だからこそこんな考え方（Extensible Web）になったという流れもあると思います。</p>

<p><b class="speaker shiraishi">白石</b> そうですよねえ…前編でいくつか挙がっていた「使われていないAPI」なんて、ほんとに使われてなさそうなので、フィードバックも何もあったもんじゃないですよね。</p>

<p><b class="speaker asai">浅井</b> そうなんです。少なくとも僕らは、W3Cにインパクトを与えるためにもどんどん開発者は意見をあげていってほしいと思っていますし、ダニエルさんが紹介していたWeb Platform Incubator Groupにも参加してほしいと思っています。Mozillaに限って言えば、<strong>Bugzillaに日本語でもいいからガンガンコメント欲しい</strong>ですね。「英語で書かなくちゃならない」と思って書かない方も多いんですが、翻訳サイトを使って読んでみて、わからなければ日本のエンジニアに質問が来るので。</p>

<p><b class="speaker saito">斉藤</b> なるほど、そういう貢献であれば、気軽にできそうだし人にも促せそうです。</p>

<p><b class="speaker asai">浅井</b> <strong>わかりにくい英語でフィードバックもらうくらいなら、専門用語満載で日本語で書いてくれたほうがありがたい</strong>んです。フィードバックをもらえないことで発生するコストに比べたら、日本語のフィードバックをもらってそれに日本のスタッフが応えるなんて安いもんです。今はそれこそ、縦書きの仕様とかあるじゃないですか。ああいうところって、日本でしか通用しない用語がたくさんある。それを無理に英語にする必要はなくて、そのまま日本語で書いてほしい。</p>

<p><b class="speaker saito">斉藤</b> そうですよね…「禁則処理」とか英語でどう言えばいいのか、よく考えたら知らない(笑)。</p>

<p><b class="speaker asai">浅井</b> そういうフィードバックを世界中の開発者がくれる、という未来を僕らは目指しているんです。それに、Extensible Webが進むことで、例えばライブラリやミドルウェアをビジネスにするような企業も出てきたとしたら、そういう企業ってブラウザベンダとの協業にも本気なので、更にフィードバックが熱くなって嬉しいし。</p>

<p>例えば3Dにしても、UnityとかUnrealとか大きな企業がガンガンフィードバックをくれるので、WebGLやasm.jsも —— 今は WebAssemblyの方向に向かっていますが —— どんどんよくなっていったわけですし。</p>

<p><b class="speaker komatsu">小松</b> 確かに、ビジネスで使われると急激にフィードバックが貰えるようになりますよね。</p>

<p><b class="speaker saito">斉藤</b> 「趣味」のレベルと「ビジネス」のレベルだと、フィードバックするモチベーションもぜんぜん違うかもしれませんね。</p>

<p><b class="speaker komatsu">小松</b> そうそう。趣味でやってる時って、例えバグに遭遇したとしても「このバグは仕様である」って済ませちゃう(笑)。</p>

<p><b class="speaker saito">斉藤</b> 「ま、いっか」で済ませちゃいますよね(笑)。Web技術の進化がビジネスに直結するのであれば、フィードバックのモチベーションは確実に高まると思います。</p>

<h2>今あえて問う: Web技術の進化は求められているのか？</h2>

<p><b class="speaker shiraishi">白石</b> ここで一つ、ちょっと刺激的に聞こえるかもしれない問題提起をさせてください。
<strong>Web技術の進化って、今そんなに求められているのでしょうか？</strong>
現状で言うと、Web技術って主にデスクトップブラウザで使われていて、モバイルはネイティブでいいよね、と世間に認知されている感覚が僕としてはあって。
しかも、デスクトップは進化が停滞していて、イノベーションはモバイルアプリで起こっている。WebのAPIをどんどん拡充していっているけど、それで喜んでいる人ってどれくらいいるのかな？と。</p>

<p><b class="speaker daniel">ダニエル</b> 確かに…最近そういう議論がありましたね。<a href="https://twitter.com/ppk" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ppk</a>（※）を中心として、<a href="http://www.quirksmode.org/blog/archives/2015/07/stop_pushing_th.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">「Webは一年くらい開発を止めておこう」という発言がありました</a>。</p>

<p><b class="speaker saito">斉藤</b> 僕もppkの発言は読みました。普通、僕らの開発でも、2年も経てばたくさん技術的負債が溜まっていってしまうものなのに、<strong>Webは壊れたままでどんどん新しい機能を追加していこうとしている</strong>。「一旦止まってしまうと死んでしまう」「止まることは後退することだ」というある種の強迫観念のようなものがあるのかもしれません。</p>

<p><b class="speaker asai">浅井</b> 実際には（Webの進化は）長い間止まってましたけどね(笑)。</p>

<p><b class="speaker shiraishi">白石</b> (HTML)4と5の間ね。</p>

<p><b class="speaker saito">斉藤</b> あの（進化が止まっていた）悲しさを繰り返しちゃダメだと、みんな思っているんじゃないでしょうか。僕は、Webはなくなってほしくないと思っているので、Web技術の進化は続いてほしいと考えています。ただ白石さんが仰るとおり、モバイルはネイティブでいいじゃん、という流れもあるのは確かです。</p>

<p><b class="speaker shiraishi">白石</b> 僕自身も、モバイルアプリであってもCordovaを使って開発していたりするので、Web技術は進化し続けてほしいと考えてはいます。CordovaやFirefox OSと言ったプラットフォームが今よりもっと力を持てば、先ほど僕が言った問題提起は不要だと思うんですけどね。</p>

<p><b class="speaker asai">浅井</b> 今はiOSやAndroidのシェアが非常に大きいですからね。そこら辺の状況が変わってくれば、Web技術の立ち位置ももう少し変わってくるんでしょうけどね。</p>

<p>また、先ほどあれだけ開発者に「声が欲しいんです」と訴えましたが、一方で仕様を作っているメンバーが念頭に置いているのは、<strong>5年10年先まで互換性を保ち、しかもあらゆるプラットフォームで動作する</strong>ことです。最初からこれを念頭に置いたプラットフォームは、人類にとって唯一のものだと思う。だから、5年10年先を見据えて絶え間なく技術を進化させていくというのは、誰かがやらなくてはならないと思っています。</p>

<p><b class="speaker shiraishi">白石</b> そう考えると、<strong>昔の「ユースケースありき」で仕様を決めていくというのは少し無理があったのかな、と思えます</strong>ね。5年10年経ったら、ユースケースなんて同じなわけがないですし。そう考えても、Extensible Webというのは正しい方向なんじゃないかと思えてきました。</p>

<p><b class="speaker daniel">ダニエル</b> そうですね。HTML5の世界は、長らくユースケースベースでした。例えばHTML5に何かを提案しようとすると、Ian Hickson（※）の答えは決まって「あなたのユースケースを教えて下さい」（「What&#8217;s your use case?」）でしたし。Extensible Webは、そうしたパラダイムからの脱却という面は少なからずあると思います。
<small>
※ ppk…Peter-Paul Koch氏のこと。著名なWebエンジニアで、<a href="http://www.quirksmode.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">QuirksMode</a>というサイトを運営している。</p>

<p>※ Ian Hickson…HTML5を始め、近年の様々なAPI仕様を策定するにあたって中心的な役割を果たしていた人物。相性はHixie。
</small></p>

<p><img src="/wp-content/uploads/2015/08/DSC_0090.png" alt="" width="640" height="403" class="aligncenter size-full wp-image-16720" srcset="/wp-content/uploads/2015/08/DSC_0090.png 640w, /wp-content/uploads/2015/08/DSC_0090-300x189.png 300w, /wp-content/uploads/2015/08/DSC_0090-207x130.png 207w" sizes="(max-width: 640px) 100vw, 640px" /></p>

<h2>新たなライブラリ、仕様書の変化 &#8211; Extensible Webがもたらしつつある変化とは</h2>

<p><b class="speaker daniel">ダニエル</b> CSSの方でも、ユースケースありきの考え方から脱却しつつあります。例えば<strong>「<a href="https://github.com/w3c/css-houdini-drafts" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">CSS Houdini</a>」は、ユースケースを考えずにCSSの基盤を公開して、その上に新たな機能を載せていく</strong>というアイデアです。</p>

<p>例えば、「新しいセレクタが欲しい」という場合、CSSの低レベルAPIで独自のCSSセレクタを作ったり…ということが想定されています。</p>

<p><b class="speaker komatsu">小松</b> 正確ではありませんが、「Web ComponentsのCSS版」といえばわかりやすいんじゃないかな。</p>

<p><b class="speaker saito">斉藤</b> 「独自のCSSセレクタを作る」というのを実現する<a href="http://www.hitchjs.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">hitch.js</a>というライブラリはすでにありますね。</p>

<p><b class="speaker shiraishi">白石</b> （READMEの例を一見して）自分の好きなセレクタを書ける！これはすごい。いやー、未来的な話になってきましたね。</p>

<p><b class="speaker saito">斉藤</b> CSSにまつわる話で言うと、<a href="https://github.com/marcj/css-element-queries" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">CSS Element Query</a>っていうのもありますね。</p>

<p><b class="speaker shiraishi">白石</b> （こちらもREADMEの例を一見して）ああ、これは使いやすそうですね。メディアクエリで「巨大なif」みたいな感じになるのが防げますね(笑)。</p>

<p><b class="speaker komatsu">小松</b> ほんとだ、これは便利そう。</p>

<p><b class="speaker daniel">ダニエル</b>
ちょっといいですか？<strong>今ここで起きていることこそが、Extensible Webが目指す形だと思いました</strong>。</p>

<p>これまでは、まず英語でできた仕様書しかなくて、その後コードやデモが整備されるまでは中々APIを理解できない。英語がよく読めない人たちにとってはなおさらです。</p>

<p><strong>でも今ここで起きていたのは、アイデアがコードで示されていて、皆さんは説明よりも先にコードを読んでいました。そして、「これはいい」とか「これは良くない」とかそういう話で盛り上がっていた</strong>。</p>

<p><b class="speaker komatsu">小松</b> 確かに。それに、仕様書にコードスニペットが記載されるという動きも、どんどん広がってますよね。そっちのほうがずっと分かりやすいから。</p>

<p><b class="speaker shiraishi">白石</b> そうですよねー、<strong>WebIDL</strong>（※）で示されたインターフェース定義から、どう動くのか想像するのとかって、割としんどかったですからね。そもそもWebIDLの読み方を勉強しなくちゃならない。</p>

<p><b class="speaker saito">斉藤</b> 「仕様書の読み方」みたいな講座があってもいいかもしれませんよね(笑)。</p>

<p><small>
※ WebIDL…W3Cのドキュメントで使用される、Web技術用のインターフェース定義言語（IDL:Interface Definition Language）
</small></p>

<h2>Extensible Webから探る、Webの未来</h2>

<p><b class="speaker shiraishi">白石</b> では、最後のトピックとして、Webブラウザの未来を探ってみたいと思うのですが、いかがでしょう？例えば以前、「Webは死ぬか」という対談を行った時に、Googleの及川さんが、「ブラウザコードもコンポーネント化が進んで、必要に応じてコンポーネントがダウンロードされる」という可能性を示唆してくれたのですが。</p>

<p><b class="speaker komatsu">小松</b> 例えばLinuxディストリビューションを想定してみるのもいいかもしれませんね。Linuxのカーネルに当たるのが現在のブラウザエンジン（のコア部分）で、その他の部分、例えばJavaScriptライブラリや利用頻度がそこまで高くないAPIとかは、パッケージみたいな扱いになるとか。</p>

<p><b class="speaker daniel">ダニエル</b> 未来のブラウザという話で言うと、<strong>もっと専門的なブラウザが出てくる可能性もある</strong>のかな、と考えています。例えば<a href="http://www.espial.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Espial</a>という会社がありまして、別にここは新しい会社ではありませんが、TV専用のブラウザを作っていて、結構使われています。
こういうブラウザが、TVに関係する機能だけ実装すればいいのと同じように、家電専用のブラウザとか、色んな用途に特化したブラウザが出てくる可能性は大きいと思います。</p>

<p><b class="speaker asai">浅井</b> ブラウザが様々なデバイスで使われるようになっていくと、そのうちブラウザというのはユーザから見えなくなって、意識されなくなっていく。四角くなくなるとか、UIのないブラウザとかが普通に使われるようになっていく。</p>

<p><b class="speaker saito">斉藤</b> ブラウザがどこにでもある、って世界ですね。</p>

<p><b class="speaker shiraishi">白石</b> ただ例えば、ウェアラブルデバイスにブラウザが乗るのは当面ないような気もしますね。パフォーマンスの問題もありますし。</p>

<p><b class="speaker saito">斉藤</b> それは確かにそうかもしれません。が、何をもってブラウザと呼ぶのか、という話もありますね。例えば最近読んだのは、車通勤している最中に、Mediumの記事を読み上げてほしいという話があって。そのためのAPIを作ってはという話だったのですが、サーバ側でMediumのHTMLを解釈して、音声データだけをダウンロードしてクライアントで再生するようにすれば、HTMLを解釈する「ブラウザ」はクライアント側になくてもいいわけです。このように、Webページを「聞く」という行為、それすらも「ブラウジング」と言えると思います。</p>

<p><b class="speaker shiraishi">白石</b> なるほど、<strong>「ブラウザがどこにでもある」という世界を考えると、逆にブラウザが手元になくてもいい</strong>わけですね。HTMLが単なる音声データのためのデータソースになっている。</p>

<p><b class="speaker asai">浅井</b> そういうサービスを作るにあたっても、Web技術を使うようにすると、特許の問題とかが起きにくいんです。</p>

<p><b class="speaker saito">斉藤</b> ああ、それはありますね。</p>

<p><b class="speaker asai">浅井</b> …新しいものを作るときに、エコシステムが広がるのをブロックしてしまう原因を、Webは比較的解決していたり、最初から意識していたりすることが多いので、Web技術が広がってくれると、</p>

<p><b class="speaker shiraishi">白石</b> 広がってくれると？</p>

<p><b class="speaker asai">浅井</b> <strong>より人類は幸せになれます</strong>。</p>

<p><b class="speaker shiraishi">白石</b> 話でかい(笑)。〆の言葉としていい感じのフレーズが出たところで、本対談を終わりにしたいと思います。皆様、本日はどうもありがとうございました！</p>
]]></content:encoded>
			</item>
	</channel>
</rss>
