Web は十分すぎるほど

Paul Ford はデータを URL に保存するオフィススイートを作り、それによってブラウザが今地球上でソフトウェアを作るのに最も安上がりな場所だと確信した。

日本語
コピー
一个老式浏览器窗口,中央是一只尖叫的黄色橡皮鸡,背景是紫红两色的漩涡星系

ウェブブラウザは驚くほど豊かなアプリケーション開発を支えられる。しかも、かつてよりずっと簡単になった。

古いブラウザウィンドウの画像。中央に、叫ぶような明るい黄色のゴム製の鶏。背景には紫と赤が渦を巻く銀河。

全部手に入れていいんだぞ、わが alert() 帝国よ。

先週は面白かった。tinylittleoffice.com を公開した(最初に知ったのはここだ!)。すると、「データを URL に保存するオフィススイート」を求める人が結構いることがわかった。

来訪者が多すぎてサーバーが落ちた(まあ、CloudFlare の無料枠を使い切っただけだが)。結局クレジットカードを登録し、最終的に数十万人が見に来た。Hacker News では完全な時間の無駄だと主張する人がいて、GitHub では機能要望や修正が上がり始めた。どれも検討中で、いくつかはすでに着手している。The Register も記事を書いたし、一時期 Product Hunt のトップ 10 にも入った。

悪くない話だ。少しずつでも保守と改善は続けるし、並行して顧客向けの安定したソフトウェア開発の仕事も普段どおり続ける。ただ、その前に一つ、この過程で意外だったことを書いておきたい。

ウェブブラウザは、アプリを作るうえで極めて、極めて、極めて強力なソフトウェアだ。

当たり前のことだと承知している。この 20 年、いつでもそう言えた。だが、この文には補足が要る。

ウェブブラウザは、アプリを作るうえで極めて、極めて、極めて強力なソフトウェアだ。そして、その能力を手に入れるコストは、ほぼ毎日下がっている。

ウェブベースのオフィススイートを一つ作るのに要した労力は、普段の長めのニュースレターを一本書くのに要する労力の二倍程度だった。才能があるからそうなった、という話ではない。やりたいと思えば、あなたにも作れるようになる、という話だ。

速くて、安くて、良い。だが、クレジットカードを登録せざるを得なかったにもかかわらず、CloudFlare のホスティング代は……$0 だった。どこもかしこも安上がりに最適化したせいもあるし、今はそういう時代だというのもある。速いのか?コンピュータは速いし、ソフトウェア開発も昔より速い。だが、ウェブアプリを書く中で、自分が知らなかったブラウザの隅を次々に見つけた。中身は……とにかく野性的だ。

  • Web Crypto API はブラウザにおける随一のセキュリティ基盤だ。
  • Web Assembly を使えば、ブラウザの中でネイティブ速度でコードが動く。
  • WebGL はブラウザに高品質な 3D と 2D のグラフィックスをもたらす。
  • Web Audio API を使えば、ブラウザの中で音をミックスできる。

枚挙にいとまがない。今やウェブは、間違いなくソフトウェア配布の最適なプラットフォームだ。多言語対応は最初から備わっている。TinyLittleOffice は 21 言語で公開した(いずれもニューヨークで最もよく使われる言語なので、クレオール語やイディッシュ語も入っている)し、アクセシビリティの基盤も大量に組み込んだ。もちろん JavaScript は機能豊富なプログラミング言語で、HTML はコンピュータ文書にできることのほぼすべてを表現できる。もっと古風なものが必要なら、PDF.js があるのでブラウザ内で PDF を扱える。今ではテキストのハイフネーションさえ信頼できるようになったと思う。疑ってはいるが。

こうしたものの存在はずっと知っていたし、それを使ってプログラミングもしてきた。だが、ちゃんと中を覗いたことはなかった。既製のオープンソースコードをダウンロードしてビルドを楽にし、あとはどうにかソフトウェアをゴールまで引きずっていくだけだった。

私の奇妙な 1990 年代風オフィススイートでは納得してもらえないかもしれない。変だし、小さいし。ならば、Simon Willison が新しく作ったウェブ版 3D ブラウザゲーム Battle Drones を見てほしい。GitHub でホストしていて、コードは本人が書いた。彼はゲーム開発者ではない。ゲームはブラウザで直接開いて遊べる。マルチプレイ対応で、オフラインでも動く。

Battle Drones のスクリーンショット。見下ろし視点で、緑の陸地と青灰色の建物がいくつか。

Fab Plant を置く番だ。

本人がこう書いている。

……だが今は、こうした vibe coding 製のゲームが真面目に評価される道筋が見えている。Battle Drones は面白く、見た目もよく、革新性もある(私の知る限り、音声によるマルチプレイは RTS では初めてだ)。私よりセンスがあって、本当に非凡なものを作りたいという情熱を持つ人が何を作れるのか、ぜひ見てみたい!

クールなブラウザ技術は何年も前から存在するが、どれも途方もなく巨大だ。Web Audio を極めたら、Web Crypto や Web Assembly、WebGL まで極める時間はまず残らない。

これらがこれほど複雑なのは、基本的に個人向けではなく Google のようなチーム向けに作られているからだ。かつてウェブは、人がウェブページを作るためのものだった。今でもウェブページは作れるが、この十数年、ウェブは巨大企業のために設計されてきた。何十億人もの人がクレジットカードで買い物をする相手に、ソフトウェアを安全に届けるために。これらの巨大なライブラリがブラウザに詰め込まれたのは、大きなチームが大きなものを作れるようにするためで、個人開発者はほとんど後回しにされていた。だが今は、音付きの 3D ゲームを作って、飛行機の中でも快適に動かせる。

まさにこういうところで、「我々は AI バブルの中にいるのか」という問いが、私にはぼやけてくる。AI の巨人たちがこぞって AGI のペンキの匂いを吸っているのは明らかだが、同時に、もし本当にある種の経済的転換が起きたら——たとえば百倍の人数が互いのためにソフトウェアを作るようになったら——それは今のテック経済に巨大な穴を爆発的に開けるだろう。あの巨大な工業用織機が織るカーペットが気に入らない? ファームウェアを自分で書き換えて、一枚一枚を完全に個別化すればいい! Instagram の投稿をそのまま巨大なフロアマットに変えることもできる! とたんに、すべてのカーペット会社が競争のためにファームウェアを書き換えざるを得なくなる。それはどんな姿になるのだろう?

アプリストアの経済も揺らぐ。現実の世界で Web サーバーを一台立てて、数週間、0 ドルでアイデアを検証できるなら、アプリストア向けに開発するために払う高い税金は割に合わなく見えてくる。Mozilla はもう一度携帯電話に挑戦すべきかもしれない!(今のはなかったことに。)ともあれ、かつて大規模な工業的プロセスが必要だったことが、今ではその気になれば一人でできてしまう。ブラウザが極めてリッチなアプリ開発を可能にした。そしてそれは、かつてより根本的に簡単になった。

これは諸刃の剣だ。私は長年文章を書いてきたが、一週間経つごとに、ソフトウェア開発は私の目にはますます文章を書くことに似てくる。この比喩が気まずいのは、一般的に、人は書き手に一銭も払いたくないと思っているからだ。書き手はそれに慣れる。だがソフトウェアを作る人にとって、長く過小評価され続けるのはまだ新しい経験だろう。とはいえ、何かをするためにソフトウェアが必要なら——たとえば我々の顧客のように、業務の流れを整理したい、データベースを片付けたい、大型の工業設備にもっと価値を出させたい——今は本当にいい時代だ。ほとんど何でもできるのだから。みんな最終的には中間地点に落ち着くと私はかなり確信しているが、それには時間がかかるし、そこに着いたときには状況は違っているだろう。

出典: ftrain.com← ホームへ戻る