3 ポイント 投稿者 GN⁺ 2023-11-17 | 1件のコメント | WhatsAppで共有
  • TLDrawのMake Realデモを試してみた感想
  • AIを使って、絵を動作するソフトウェアに変えてくれるツール
    • OpenAI's GPT-4Vを使ってベクター画像をHTML/TailWind CSSおよびJavascriptに変換

1件のコメント

 
GN⁺ 2023-11-17
Hacker News の意見
  • tldraw の Steve です。これはセキュリティパターンがひどいおもちゃプロジェクトなので申し訳ない。ローカルで実行したりソースを見たりするならここにあります: https://github.com/tldraw/draw-a-ui
    ほかの例は https://twitter.com/tldraw で見られます。tldraw やこのプロジェクトについての質問には答えられます。誰かの仕事を奪うようなものではありませんが、遊ぶには本当に楽しく、より複雑な例はこちらにあります: https://twitter.com/tldraw/status/1725083976392437894

    • 今すぐリリースすべき。これは本当にひらめきに満ちたプロダクトで、月額5ドルを取り、ユーザーに自分の OpenAI キーを持ち込ませればいい
      MIT ライセンスで公開したばかりのライセンスサーバーもある。Elixir で書かれていて https://go.robocoder.app を動かしている。設定で助けが必要なら連絡してくれていい: https://github.com/emcmanus/robocoder-server/
    • Steve、お金はどこに送ればいい?冗談はさておき、かなり説得力のあるものだ。おもちゃかもしれないが、みんなこれだけ楽しんでいる
    • 素晴らしいプロジェクトで、リリースおめでとう。自分の OpenAI キーを入れてみたら「you exceeded your current quota, check billing」というエラーが出た。月額20ドルの OpenAI Pro サブスクリプションで足りるのか、追加の権限が必要なのか気になった
      答えは GitHub README にあった。「自分の API キーを使うには usage tier 1 へのアクセス権が必要で、現在の tier と上げ方は OpenAI の設定で確認せよ」という内容だった
    • あのフローチャートの例こそが本当に要点で、こうしたツールでは第一級の概念として扱うべきだと思う。おもちゃではなく有用なものを作れるようにする取っ手を提供し始めている
    • 最後の例は面白いし、ああやってフィードバックを与えられるのは驚きだ。生成されたアプリとテキストを一緒に選択すると、実際の入力として何を受け取るのか気になる。以前に生成されたコードと新しいテキストを一緒に受け取るのだろうか?
  • リポジトリにあるシステムプロンプトはこうなっている:

    You are an expert tailwind developer. A user will provide you with a  
    low-fidelity wireframe of an application and you will return  
    a single html file that uses tailwind to create the website.  
    They may also provide you with the html of a previous design that they want you to iterate from.  
    Carry out any changes they request from you.  
    In the wireframe, the previous design's html will appear as a white rectangle.  
    Use creative license to make the application more fleshed out.  
    if you need to insert an image, use a colored fill rectangle as a placeholder. Respond only with the html file.  
    

    ここで「creative license」がなぜ言及されているのかはよくわからない。各生成ごとのユーザープロンプトは次のようになっている:

    [IMAGE_LINK]  
    Turn this into a single html file using tailwind.  
    

    https://github.com/tldraw/draw-a-ui/blob/8a889bf36afc06fbb0c...
    通常の tldraw キャンバスをスクリーンショットに撮って、このプロンプトと一緒に API に渡せば、「非公開で」動かすにも十分単純そうだ

    • 「creative license」は普通の英語で、制約をあまり気にしすぎず、自分が最善だと思うようにやれという意味。ソフトウェアライセンスとは関係なさそうだ
  • Facebook の面接質問に出てきたモックを入れてみた。チェックボックスのリストが2つと、チェックされた項目を相互に移動するボタンが2つあるものだったが、ちゃんとできていた: https://gist.github.com/milesrichardson/2a2f77d4bfb19c3b28dc...

    • toList.appendChild(item.closest('li')); が項目を移動させるとはまったく知らなかった。毎日ひとつ学ぶものだ
    • スクリーンリーダーで確認したところ、ボタンを押しても何も読み上げられない。これは問題だ。「Checkbox B moved to the left」のように伝える必要がある
      何の案内もなければ、ユーザーはボタンを押したとき実際に何かが起きたのか分からない。テストページ: https://output.jsbin.com/jixoqur/quiet
  • こうした最新デモは、最近の機械学習/AIの進歩がどれほど印象的かを示す一方で、世界中の何百万もの開発者が、どれほど反復的で創造性の低い作業を繰り返し再実装しているかも示している
    たいていのUI画面は1〜2段落で正確に説明できるので、比較的小さな埋め込みベクトルの中にかなり詳細に表現できても不思議ではない

    • 大きな方向性には同意するが、こうしたデモの多くが慎重に選ばれた事例だという点も重要。ソーシャルメディアでバイラルになったデモだけを見ると、AIが複雑な作業でも実際よりはるかに先に進んでいると思ってしまう
      実務でAIを本格的に使ったことのない非技術職は特に影響を受けやすい。現場で使っている人たちは、たいていもっと微妙な見方をしている。非常に便利だがミスも多く、プロダクション水準の結果を得るには細かく手を入れる必要がある。AI楽観派としても、価値は本物で、印象的なデモは私たちが向かう方向を示していると思うが、平均的な結果が膨らんだ期待に追いつくまでには時間がかかる
    • ソフトウェアのアイデアを表現する多くの方法も、非常に非効率。実際に興味深い部分、つまりエントロピーはごく小さい
      このデモでは、文字どおりCSSプロパティ2つを調整するスライダー2つなので、UI仕様に含まれる情報量は多くない。適切なUI仕様言語があれば、3行のコードで済んだはず。難しさは、Web UIのボイラープレートを管理しなければならないところから来ている
    • 何百もの「Hello World」的なデモに乗ったB2C AIの過剰宣伝が不快だった理由をうまく表している。「なんてことだ、プログラミングは死んだ!」みたいな空気だ
      奇妙なのは、HNでは従来型のノーコードプラットフォームについて話すとき、スケーラビリティや保守性の限界をすぐ見抜くのに、AIが付くと突然そうした問題が解決され、ブラックボックスが吐き出すスパゲッティを心配しなくてよいかのようになる点
    • これは、私たちのソフトウェアスタックがどれほど愚かかを露呈しているだけ。何もかもが「これもあれも、ついでに不要な細部300個もカスタマイズしたくなるかもしれないだろう」という発想で動いている
      本当に欲しかったのは、機能と表現を分離することだった。偶然にも、1996年の純粋なHTMLのWebがまさにそれだった。何かが想像を超えるほど愚かな形でひどく間違い、誰も改善しなかった。代わりに残ったのは、影や内側のflexboxのようなものだけ
    • 反復的で創造性の低い作業が繰り返し再実装されるのは、開発者だけの問題ではない。データ入力から会計、クリエイティブ業務まで、ホワイトカラーの大半がこれに当てはまる
      ホワイトカラー業務のかなりの部分は同じことの繰り返しであり、別々の会社で本質的に同じ作業を別の人たちが繰り返していることが多い
  • これはUIデザイナー、あるいはプロダクトオーナーを賢く有能に見せるためのツールに見える。だが本当の仕事は、今までどおりプログラマーに回ってくるだろう
    UIデザイナーは「デモ」を渡せるかもしれないが、この基本機能がアプリの残りの部分とどうつながるのか? つながらないだろう

    • 「ほら、もうそこで動いているじゃないですか! アプリに入れるのにどうしてそんなに時間がかかるんですか? そのままダウンロードできないんですか?」といった楽しく生産的な会話につながるのは間違いない
      GPT以前から、ごく初期のプロトタイプやモックアップは、内部機能の完成度に比例して見た目の完成度も低く見えるようにすべきだという主張があった。きれいで、見た目には「動いている」UI専用プロトタイプは、明確に説明しても非現実的な期待を生み、プロトタイプがそのままプロダクションになる proto-duction の可能性を高める
    • デザイナーがFigmaで完成品のように見えるUIを見せるのが嫌いだ。役員の目には完成した製品のように見えるため、本来は反復的であるべきUI設計プロセスに非現実的な期待が入り込む
      ある役員が承認したFigmaデザインの制約のせいで、ひどいシステム設計がエンジニアに押し付けられたプロジェクトを何度も見てきた。もちろん、そういう組織にはもっと大きな問題もあるが、手軽な高忠実度モックはワイヤーフレームよりもこうした問題を悪化させた
    • 方法は簡単。GPT-4に新しいプロンプトを渡せばいい: "Thanks. Please connect it to the rest of this code:"
      もっと上手にやらせたいなら、"it's very important for my career" も付ければいい
  • 箱を拡大して回転させるデモを作っている開発者たちは、もう職を失いそうだ

    • スライダーの整列すらできない人たちだけの話
  • 顧客と、私たちのソフトウェアを顧客のソフトウェアに統合する方法を話し合っていたところ、顧客がメインフォームのスクリーンショットを送ってくれた
    そのスクリーンショットをChatGPTに入れて、「こんな感じのReactフォームをBootstrapで作って」と頼んだ。いくつか調整したあと自分のソフトウェアを接続し、数時間後には、システムがこんなに早く統合された概念実証を見て顧客が驚いていた。Web開発中にCSSレイアウトの問題があると、スクリーンショットをChatGPTにアップロードして解決方法を聞くことがあるが、ツイートのデモもかなり似て見える

    • 基本的なフォームページを作るのは本来単純なこと。驚くべきなのは、約25年のWeb開発を経ても、私たちは新しいWebフレームワークを作り続け、それを必要以上に複雑にしている点
      派手なユースケースには優れているが、よくある基本的な作業には過剰なフレームワークが次々に出てきた。例外もたまにはあったが、ほとんどのWeb開発者はそういうものを好まない。履歴書で見栄えがするわけでもないし、正直、キャリアを通じてWebフォームだけを作りたい人がどこにいるだろうか
    • 顧客は1回目には速さに感心するだろう。2回目にはその速さを期待するだろう。3回目には、要件がChatGPTの手に負えないほど大きくなったとき、スケジュールが破綻したと怒るだろう
    • 顧客とメールやチャットで話している状況なら、顧客のほうもChatGPTに、あなたへ要件を最もうまく伝える方法を聞いていると想像できる
      結局、亀の上に亀が乗っているようなものだ :+)
    • だが、顧客は自分のデータをChatGPTにさらすことを望んでいなかったかもしれない
    • CSSレイアウトの問題のスクリーンショットをChatGPTにアップロードして直すというのは、思いつかなかった巧妙なアイデア。普段は開発者ツールで直してスタイルをコードに移すくらいにはCSSを扱うが、覚えておく価値はある
      コーディングでは、ChatGPTよりもコマンドラインパイプやBashスクリプトでデータを素早く加工する用途に多く使っていた。コマンド出力を渡して、望む整形、集計、ソート、抽出用のBashを頼むと、デバッグや仮説検証のように本来ならやらなかったことも簡単になる。手作業でもできるが遅いし、オプションや引数を覚えるには検索やmanページが必要になる。コードには主にGH Copilotを使っている
  • 懐疑論者と呼んでもらって構わないが、ノーコードソリューションの未来は信じていない。小さなデバイスの解像度でボタンを整列させる必要があり、他言語でも見栄えよく余白を残す必要があり、ほかの要件も次々に出てくる。
    せいぜい、より抽象化された言語でアプリをより速く作れるようにする程度だろう。これは三目並べのような極めて基本的でありふれたものには通用するが、独創的な作業には向かない。

    • LLMベースのノーコードの大きな問題は、出力が非決定的なので、結局は出力物そのものしかバージョン管理に入れられない点にある。
      技術を少しだけ知っている数十人がスケッチを描き、「実際に作って」と押して機能を追加するところを想像すればいい。それぞれが数百行のコードを生成する。一日の終わりには誰かがその出力物を理解しなければならないが、出力は非決定的なので、われわれに残るのはそれだけだ。
    • オートチューンに似ている。音程を合わせて歌える職人たちは、これからも面白いものを作り続けるだろう。
      同時に、音程を合わせて歌う方法を学べなかった、あるいは学びたくなかった新しい人たちが、はるかに少ない労力でまったく新しい音楽ジャンルや大衆向けポップを作ることになる。職人たちも一部のワークフローを強化し、完成度を高め、スピードを上げるために、まれに使うだろう。
    • こうしたデモの多くは、純粋なノーコードアプローチを押し進めようとしているというより、ほぼ即座に動作するワイヤーフレームを作れることを示しているに近い。
      CanvaやFigmaのようなツールは、こうした機能を積極的に取り入れて、高忠実度のワイヤーフレームやデモを大きく改善しそうだ。
    • 最初の直感も同じだった。カスタマイズと統合は完全な悪夢になるだろう。ただし、プロトタイピングには優れている。
    • LLM/AIが完璧になるか、あるいはLLM/AIがずっと簡単に扱えるコードやフレームワークをわれわれが使い始めることになるだろう。
  • SquarespaceやWixなどはすでに市場の下位層を獲得しており、そうでなければインドへのアウトソーシングが取っていたはずだ。
    これは同じ概念の自然な進化だ。ウェブサイトビルダーのプロダクトマネージャーなら、こうしたAIビルダー統合にすぐ飛びつくだろう。ほとんど定義されていない複雑なビジネス作業には絶対に通用しないが、写真ビジネス向けの料金計算機くらいならうまく作れるはずだ。

    • ほとんどの中小企業は、まだアプリやウェブサイトを持っていないか、持っていても役に立たない場合が多い。ニッチ市場と良いツールが入り込む余地は非常に大きい。
    • アイデアを素早く反復できるインタラクティブなデモとプロトタイプの制作ツールとして有用に見える。顧客とのフィードバックループを短く保ち、誤解を減らせる。たとえばFigmaならこういうものを実装できそうだ。
    • なぜ些細な作業にしか使えないと思うのか分からない。それは否定に近い。
      ビジネスプロセスのワークフローソフトウェアはかなり人気がある。人々がドラッグ&ドロップやインタラクティブなウィジェットエディターで似たようなことをするアプリは多く、複雑なフォーム、親子関係、状態遷移も扱える。GPT Visionのようなものを使えば、ウィジェットのドラッグ&ドロップを飛ばして、より自由な描画ツールや手描きスケッチを使える。今日もっとも人気のある例はおそらくNotionで、ずっと以前からさらに複雑な例もあった。
  • もう年を取った気分だ。数十年前にもVBやDelphiで、ほとんど同じ速度でこれができたように思う。ただし、ラベル名からツールが推論する代わりに、結果はもう少し決定的だった。
    われわれはすでにこういうものを持っていたのに、すべてをブラウザに押し込み、生成AIモデルの膨大な計算を使わなくても実現できたという事実を忘れてしまった。雲に向かって怒鳴る老人になった気分だ。

    • 似た考えだ。もう少し挑発的に言うなら、人々がAIでFigmaをHTMLに変換するのを見せてくると、「Dreamweaverって聞いたことありますか?」と言う。
      もちろんDreamweaverのコードは醜くて使いものにならないレベルだったし、AI生成コードは時にはそれほど悪くない。それでも、すでに今日の地点にかなり近いところまで来ていたように思う。
    • これはブラウザの問題ではなく、フレームワークがどれだけ強い思想を持った設計かという問題だ。
      VBは非常に強い思想を持ったツールで、ネイティブなWindows風UIだけを作っていた。デザイナーが持ってきた任意のモックアップや、完全にカスタムされたルック&フィールをピクセル単位でVB上に再現することはなかった。今日のほとんどの製品GUIはブランドの一部だ。良くも悪くも、どの会社も独自のルック&フィールとUIの挙動を望んでいる。だから作るツールははるかに複雑でなければならない。ブラウザ上でもVBを再現できるし、実際に似たものを作った人も多いが、企業は退屈で一般的なUIを望まないため、製品開発ではあまり使われない。
    • 要点は分かるが、最も単純な例にしか当てはまらない。このツールはいろいろなことができる。そのスレッドをさらに見ると、三目並べも実装している。
      基本的には、図のスクリーンショットをGPT-4に送り、「これを実装して」と頼む方式で動作する。
    • 昔、Comdexのグラフィックス展示館で、次の段階として紹介されていた新鮮なOSがあった。ある巨大なオタクがマウスであれこれドラッグ&ドロップしながら、アプリケーションを作るのにプログラマーである必要はないことを「証明」していた。
      その10年後には、当時比較的新しかったJava向けに同じことを提供していたVisix Vibeというものが1〜2年ほど出回っていた。数年ごとに、おおよそ4〜5年あるいは10年に一度、誰かがあらゆる複雑さを消し去りたがる。だが結局、彼らはOSを作ることになる。
    • 主要なネイティブUIツールキットを使えば、今でもこういうものを見られる。RADほど速くはないかもしれないが、ウェブではカスタムで、たいてい不安定なJavaScriptが必要になるあらゆる要素やインタラクションが「無料で」提供される。
      しかも実際にきちんと動作し、ツールキットの他の部分と期待どおりに相互作用し、国際化とアクセシビリティも一貫してうまく機能する。HTMLが標準提供だけではるかに多くのことをできない理由はなく、そうすれば毎年膨大な開発者の時間とユーザーの苛立ちを減らせる。だが、そうしていないだけだ。