この記事は、以下の動画のダイジェスト版です。動画のライブ感を楽しんだり、音声だけで情報を得たい方など、ぜひ動画も御覧ください。(チャンネル登録もお待ちしております)
テックでディープな15分!「Tech Talk Fifteen」始動!
-- Tech Talk Fifteen、始まりました。この企画は「テックでディープな15分。」をキャッチコピーとしてまして、テクノロジーのエキスパートに、15分一本勝負でトピックを深堀りしていくというものです。ハッシュタグは #techtalk15 です。
-- 今回が初めてで、いわば実験的な回になりますが、その実験にお付き合いいただいたのは、 泉水翔吾(@1000ch) さんです。どうぞよろしくお願いします。
泉水: 泉水翔吾と申します。専門はwebアプリケーション開発を行うエンジニアです。TechFeedさんのほうでも、Web標準チャンネルとJavaScriptチャンネルで公認エキスパートとさせていただいています。
さよならIE11、そしてChromium一強時代
-- まず「R.I.P IE11」についてお聞かせください。
泉水: はい。Web業界に多大な貢献、そして影響を与えてきたInternet Explorerですが、その最後のバージョンであるIE11も近年アップデートされることもなく、Webとしては(残念ながら)負債の一部と言っても過言じゃないかな、と思っています。
そのサポートが、2022年6月15日にオフィシャルに終了するので、(Web技術者の)みなさんにとっては「待望」だったと言えるんじゃないかな…と思って、まずは取り上げてみました。
-- 次のトピックは「Chromiumのシェア」ですが、これは?
泉水: これは、IEの話とつながっていて。IEの後継としてEdgeが登場し、そのEdgeも独自のEdgeHTMLというブラウザエンジンではなくChromiumを使うようになりました。
これにより、Chromiumベースのブラウザエンジンのシェアが、現在どんどん増えている状況なわけです。このままChromium一強になってしまうことには、ある種の「怖さ」を感じていて。Webの「中立性」に関心ある人は、危惧している人もいるんじゃないでしょうか。
-- Chromium一強になった場合の不便とかはあるんでしょうか?
泉水: 使う側からすると、不便は特にないと思います。ただ仕様のリードをしている側、いわばWebを「作っている」立場からすると、理想からは離れてしまっているのかなと思います。「いろんな立場の人々がみんなで作っていく」のがオープンなWebの良いところだったわけなので。
もちろん、Chromiumの内部で様々な議論が行われていることとは思います。ただそれが、Webの仕様を作るという場においては、「Chromiumとしての意見」になってしまうのは、望ましくないかもしれません。
Webの未来…Good or Bad?
-- では、WebにGoodな未来とBadな未来があるとすると、それぞれどんなふうになるとお思いですか?
泉水: Goodな未来としては、やはりプレイヤーが増えることですよね。Web の仕様は複雑になりすぎているので、流石にブラウザをゼロから作るのは難しいと思いますが、体力のあるベンダーがBlink(Chromiumのレンダリングエンジン)を再フォークして新たなブラウザを作る、なんて展開は期待しています。
-- では、Badな未来は?
泉水: このまま、GoogleとAppleが(主導して)作るブラウザだけになってしまうことですね。そうなると、それらの大きなシェアを持つベンダーの意見が強まるでしょうし、Webの中立性は弱まっていくように思います。ブラウザがInternet Explorerとネットスケープだけになってしまった頃、更にはその後IEだけになってしまった頃の悪夢の再来になってしまう…というのがBadな未来じゃないでしょうか。
-- Firefoxも大きくシェアを落としているという話もありますし、今はそのBadな未来に向かっている最中かもしれませんね。
Web開発は「枯れてきた」
-- では、後半のトピック「Web開発の動向全般」についてもお聞かせください。
泉水: 端的に言うと、Web開発や技術の進化が以前と比べるとだいぶ落ち着きつつあるな、という話です。昔は、フロントエンドの技術の流れは早いと言われていました。jQueryとかBackbone.js、Angular 1系が出てきていた頃ですよね。MVCやMVVMと言った議論も盛んでした。
-- それが今は落ち着いてきていると。なぜでしょうか?
泉水: 個人的にはReactやVue.jsが、フロントエンド開発の議論を終わらせつつあると思っています。端折った表現ではありますが、Web開発における複雑性の多くを、ReactやVue.jsがVirtual DOMを使って解決していることが大きいと思いますね。
「あらゆるサイトがReactやVue.jsを使うべき」「jQueryはもう必要ない」なんて話をするつもりはなくて、実装したいものに合わせてライブラリを選べばいいと思いますが、少なくとも一定の複雑さを含むWebアプリケーション開発に関する議論は落ち着きつつあると思います。
-- 次に書かれている「どう配信するか」というのはどういうことでしょうか?
泉水: 昔はWebアプリケーションの状態はサーバーサイドで持つのが普通でした。今で言うところのMPA(Multi Page Application)でしょうか。そうした複雑性は、現在クライアントサイドに移ってきています。そこから、MPAなのかSPA(Single Page Application)なのか、SSR(Server Side Rendering)なのかCSR(Client Side Rendering)なのか、そういう設計上の意思決定が必要で、それに伴って「どう配信するか」が決まります。
パフォーマンスの関心がエッジコンピューティングに移りつつある
-- 配信についての議論は、今活発なのですね
泉水: そうですね。とは言え、これらのうちどれを選ぶかは、例えばデータがダイナミックかどうか、SEOを重視するかどうかなどによって、おのずと決まってくるのかなとは思います。
ですが、ここらへんの議論が盛り上がっているもう一つの理由としては、パフォーマンスの関心にエッジコンピューティングが入ってきたというのもありますね。非常に多機能なFastlyの存在が大きいと思います。
-- Fastlyが実際のWeb開発にどのような影響を与えているんでしょう?
泉水: 昔のCDNは、基本的にキャッシュをどこから配信するか?だけを考えるものでした。Fastlyはそれに加えて、プログラミングの要素が入っています。プログラミングロジックを配備する場所はこれまでサーバーとクライアントだけでしたが、間にFastlyも入って、それぞれで計算を分担することができます。
-- FastlyでWeb Assemblyが使えるようになった…なんてニュースもありますもんね。Fastly上で行うのに向いているロジックというのはどういうものでしょうか?
泉水: 例えば画像の最適化やリサイズなどが挙げられます。そういった処理をFastlyのレイヤーで行うことができれば、元にある配信サーバーではそれをしなくて良くなります。そういう処理は負荷も高いし、なるべくアプリケーションロジックを実行しているサーバー上で混在させたくないものですから。
エッジコンピューティングの可能性は大きいので、今後もいろんな可能性が追求されていくんだろうなと思います。エッジコンピューティングを含めてデザインしていくことになるので、アプリケーションのアーキテクチャがどんどん複雑になっていってしまうかもしれませんけど(笑)
-- そろそろお時間になりました。Web全体の動向から、Webアプリケーション開発の最新動向まで、たった15分でコンパクトにまとめてくださりありがとうございました!