HN 日本語サマリー

← 一覧へ戻る
Web開発

柔軟なソフトウェア = 堅固な基盤とカスタムコード

Malleable software = solid bases and custom code (mdubakov.me)

40 pointsby tablet8 コメント

要約

著者は22年間の生産性ツール市場の観察に基づき、AI時代のソフトウェア開発における「柔軟性」のあり方について論じている。AIにより開発の敷居は下がったが、コラボレーションにはデータストレージ、権限管理などの複雑な機能が必要となる。理想的な解決策として、80%をカバーする堅固な基盤と、残りの20%を担うカスタムコードの組み合わせを提唱し、各ツールの現状と将来の方向性を示している。

全文翻訳

私は2004年に生産性ツール市場に参入し、22年間そのダイナミクスを観察する幸運に恵まれました。時折、市場は変化し、私は包括的な「先見の明のある」記事を書きます。前回は2019年にノーコード革命に賭けたときでした。今、市場は風景を大きく変えるであろう地殻変動を経験しているので、新しい記事を書く時が来ました。 誰もがAIが参入障壁を下げたことを知っているので、今や誰でもソフトウェアを構築できます。まだOS全体を「バイブコード」(直感的にコードを書くこと)することはできませんが、個人的な問題を解決する小さなアプリを簡単にバイブコードできます。あなたが「コラボレーション」を次元として追加すると、物事はより複雑になります。一人で作業する場合、アプリに満足するまで物事を壊して進むことは比較的OKですが、チームで作業する場合、コラボレーションユースケースをカバーするために必要なすべての機能(ベルとホイッスル)を実装することはより困難になります。突然、リレーションを持つデータストレージ、同時編集、通知、変更履歴、権限などが必要になります。 これは興味深い疑問を投げかけます。AI時代における柔軟なソフトウェアのホットスポットはどこにあるのでしょうか?常にCodexからゼロから始めるべきでしょうか?それとも、カスタムコードで調整できる堅固な基盤を持つべきでしょうか? 10人を雇用している小さなキノコ農場(心配しないでください、ここでは(今のところ)マッシュルームを育てます)を想像してみてください。すべてのオペレーションを実行するソフトウェアを探しています。市場は小さすぎて専門ソフトウェアがない(ハッ!市場は小さすぎるということはない)ので、おそらくGoogleスプレッドシートを使用しているでしょう。 Kinoko。キノコ農場を管理する新しい方法。非常に専門的なツール。 いくつかの選択肢があります。皮肉なことに…どの選択肢も理想的ではありません。 ゼロから構築(Claude Code, Codex)- 2024年より。問題:すべてをゼロからプロンプトコードする場合、ホスティング、認証、基本的な権限、データベースなど、すべてを自分でケアする必要があります。最初の80%は簡単かもしれませんが、最後の20%は困難になります。 将来の希望:ここでは、最終的にAIが非常にクールで強力になり、物事を正しく迅速に実行してくれることを期待できます。 Vibe-code(Lovable, v0)- 2023年より。問題:#1よりもいくらか良いです。ホストされたアプリ、データベース、認証、デプロイがすぐに利用でき、より早く完成したように見えます。しかし、ジェネレーターがうまく機能することを超えると、行き詰まります。 将来の希望:より強力なモデルがそれを改善します。また、これらのベンダーはますます多くのコンポーネントを追加し、「堅固な基盤+カスタムコード」の領域に移行していきます。 ローコード&アプリビルダー(Retool, Softr)- 2017年より。問題:このカテゴリは過去10年間、「堅固な基盤+カスタムコード」を販売してきました。認証、権限、ホスティング、監査ログがすぐに利用できます。しかし、それはアプリの基盤であり、作業の基盤ではありません。あなたのデータはどこか別の場所に存在すると想定されており、これらのベンダーが独自のデータベースを追加した場合でも、それはアプリデータを保存します。コラボレーション、コメント、変更履歴はありません。 将来の希望:「堅固な基盤+カスタムコード」にさらに深く移行することです。アプリの基盤が作業の基盤に十分に速く成長できるかどうかが未解決の質問です。 柔軟なツールで組み立てる(Notion, Fibery)- 2013年より。問題:多くのことをすぐに準備できるので、魅力的に見えるかもしれません。問題は、これらのツールをあなたのプロセスに合わせて調整する方法です。それらはかなり柔軟ですが、あなたの特定のニーズをサポートしていない可能性があり、十分な拡張ポイントがありません。 将来の希望:より多くの拡張ポイントを追加し、ユーザーが欠けている約20%のユースケースをバイブコードできるようにすることで、これらのツールも「堅固な基盤+カスタムコード」の領域に移行します。 専門ツールを購入する- 1999年より。問題:これは依然として非常に良い選択肢です。なぜなら、専門ツールはあなたのドメインを念頭に置いて構築されており、非常に適切に見える可能性があるからです。カスタマイズが必要ない場合は、それを選んでください。 将来の希望:柔軟なツール領域への移行は、これらのベンダーにとってほぼ不可能であり(そして全く必要ありません)、それは専門的であることをやめることを意味します。 80%の堅固な基盤+20%のカスタムコード 生産性ツール市場で何が起こっているのでしょうか?理想的な解決策は、80%をカバーする堅固な基盤(データベース、権限、履歴、コラボレーション、通知など)を持ち、ユーザーがこれらのものを組み合わせてカスタムコードで拡張できるようにすることのようです。 その結果、多くのベンダーはこの方向に進み、欠けている領域のギャップを埋めています。そして、バイブコードとローコードツールがより多くの堅固な基盤を追加している間、柔軟なツールはより多くの拡張ポイントを追加する必要があります。 80%の堅固な基盤+20%のカスタムコードは、生産性ツールにとって理想的な解決策です。 堅固な基盤 過去には、あなたが持っていた唯一の堅固な基盤はコンパイラとOSでした。それ以外はすべてあなたの問題でした。真のハッカーの美しい時代でした! 今、私たちはより高い抽象化の贅沢を持っています。最も興味深い質問は、どこで止めるかです?例えば、カスタマイズなしの専門ツールは、可能な限り堅固ですが、カスタマイズの欠如こそが多くのケースでそれを使用不能にしています。Codexを使用すると、堅固な基盤はほとんど存在しませんが、膨大な表現力があり、ほぼ何でも構築できます(表現力とは、ツールを正確に必要なことを実行するようにどれだけ曲げられるかです)。 私は、生産性ツール市場では両極端は最適ではないと考えており、その中間にあるスイートスポットを見つけるべきです。堅固な基盤は、すべてのチームに共通するものをカバーし、カスタムコードはあなたのチームをユニークにするものをカバーすべきです。 現在の堅固な基盤は種類が異なります。 Vibe-codingプラットフォームは技術的な基盤(サーバー、生のデータベース、認証)を提供します。 ローコードプラットフォームはアプリの基盤(UIコンポーネント、コネクタ、アクセス制御)を提供します。 柔軟なツールは作業の基盤を提供します(データ自体がそこにあり、データに関するチームが必要とするすべてのものがあります)。 以下は、すべてのオプションの詳細な表です。★はカテゴリを定義しており、これがそのカテゴリが存在する理由です。 カスタムコード 基盤がすべてのチームに共通するものをカバーしている場合、カスタムコードは残りをカバーします。あなたのユニークなインターフェース(育成室タブレット用の収穫画面)、あなたのビジネスロジック(キノコバッチの品質ルール)、あなたの接続(卸売クライアントのAPI、湿度センサー)。この20%は量としては少ないですが、それはあなたの会社であり、ベンダーがそれを正確にモデル化することは決してありません。 コードは、LLMとともに2025年末に予期せぬ(私にとっては)復活を遂げました。そのため、皮肉なことに、すべてのノーコードおよびローコードツールはますますコードに依存できるようになりました! しかし、カスタムコードは以下の条件が満たされた場合にのみうまく機能します。 それは基盤を継承します。権限、履歴、データ整合性はカスタムコードに自動的に適用されます。生成された各アプリが独自の認証、ストレージ、監査証跡を必要とする場合、あなたは破滅します。 それは制限されています。カスタムコードはそれ自体を壊す可能性がありますが、基盤を破損させることはできません(そして破損の場合、ロールバックは容易であるべきです)。悪いアプリは不便であるべきであり、データ損失のインシデントではありません。 AIコーディングはすでに2つの新しいツールのカテゴリ(CodexライクおよびLovableライク)をもたらしましたが、ローコードおよびノーコードツールがカスタマイズの問題をより速く、より簡単に、より深く解決できるようにする力も与えています。過去にはカスタムコード拡張は困難でした(Jiraプラグインエコシステムを考えてみてください)、しかし今では簡単になる可能性があります! 生産性ツール市場はどこへ向かっているのか? プログラマーは常に完全な表現力を持っていましたが、プログラマーでさえ多くの個人的なツールを作成しているわけではありません。なぜでしょうか?まあ、それはかなり時間がかかるからです。今、状況は変化しており、あなたは数時間で有用な個人的なツールを本当にバイブコードできます。生産性市場では、常にこのトレードオフがあります。時間を費やしてあなたの会社のためにツールを構築するか、既製のものを購入するかです。専門ツールは多くの人にとってデフォルトの選択肢でしたが、今やAIは設定時間を短縮しています(誰もがプロンプトできます)。これは、柔軟なソフトウェアがそれほど技術に詳しくないユーザーにとって手が届きやすくなり、専門ツールをより頻繁に打ち負かすことができることを意味します。 以下は、すべてのニッチの現在の位置と、それらがどのように緑色の領域に移動するかを示すチャートです。そこでは、高い表現力と短い構築時間を組み合わせることが可能です。 高い表現力と短い構築時間は今や可能です。 誰もが同じ領域を望んでいますが、道はそれぞれ異なります。 Vibe-codeツールは基盤を構築する必要があります。再構築には時間がかかります。