世界を動かす技術を、日本語で。

TUIsが再び注目される理由

概要

  • 現在、Terminal User Interfaces(TUI)が再評価されている状況
  • Windows、Linux、macOS それぞれのネイティブUI戦略の混乱と課題
  • Electronアプリの普及とその一貫性・ユーザビリティ問題
  • TUIの利点と現代UI設計への回帰の必要性
  • ユーザーインターフェース設計理論の重要性と今後の提言

TUIの復権とUIの多様化

  • Terminal User Interfaces(TUI) の再評価、即時フィードバックと自動化容易性が主な魅力
  • DHHのOmarchy に見られる3種類のUI:TUI、Webアプリ、ネイティブアプリの混在
  • 10年前のコードエディタ界隈でも、ネイティブからElectron系への移行と、vim/emacsへの回帰が発生
  • WindowsのGUI戦略 の迷走、複数APIの乱立と一貫性の欠如
    • MFC, OLE, COM, ActiveX, Winforms, WPF, Silverlight, WinUIs, MAUIなどの歴史
    • 新層ごとに前世代の機能や一貫性が失われる傾向
  • LinuxのUI分裂 は設計思想の違いによるもの
    • GTKとQtが主流、クロスプラットフォーム対応の試みも限定的
    • 異なるツールキット間でも見た目の一貫性はある程度保たれている
    • 膨大な組み合わせのテスト難易度から、ネイティブアプリ開発は敬遠されがち
  • macOS はかつて一貫したUI設計が特徴だったが、近年はガイドライン無視や一貫性の崩壊が進行
    • Fittsの法則無視やメニューの乱雑化など、使い勝手の低下

Electronアプリの課題と現状

  • Electronアプリ はメモリ消費や一貫性のなさ、キーボード操作性の低さが問題
    • メニューやショートカットの非標準化、UI統合性の欠如
    • Slackなど一部は努力しているが、全体的には改善の余地大
  • 新規UIツールキットの試み も失敗傾向
    • GoogleのFlutter UIやZedのGPUIなど、OS統合性や市場規模の壁
    • 高速描画よりもOSとの連携や一貫性を重視する声

TUIの強みと現代的役割

  • TUI は高速、OS横断性、自動化容易性が特徴
    • X forwarding不要でリモート運用も簡単
    • AppleやMicrosoftの統一感喪失後、TUIが「最後の砦」として機能
    • ClaudeやCodexなど、コマンドライン中心の新世代ツールの台頭
  • アプリケーション間の一貫性 が失われる中、TUIのシンプルさが再評価

良いUI設計への回帰と今後の提言

  • インターフェースは思考量を減らすことが最重要
    • チェックボックスやショートカットなど、直感的な操作性の重要性
    • 一貫した操作体験(例:Command+Cでコピー)がユーザー負担を減らす
  • UI設計理論(Nielsen, Norman, Johnsonなど)の学習必須化
    • ソフトスキル扱いせず、ソフトウェア工学カリキュラムの必須要素に
    • UIが不合理なプロジェクトは不合格とすべき
  • OS・ツールキット開発者への要望
    • 開発者が使いたくなるアクセシブルなツールキットの提供
    • 参入障壁の低減と長期的なプラットフォーム維持
    • クロスプラットフォームの絶対性は求めないが、選択肢としての価値
  • ElectronやTUIへの依存減少のための基盤整備 の必要性

結論

  • UIの一貫性・使いやすさの回復 が今後の最大課題
  • TUIの価値再認識 とともに、良いUI設計への回帰が求められる
  • 開発者・ツールキット提供者・教育機関 が一体となった取り組みが必要

Hackerたちの意見

それに関しては、複雑なシステムの開発者としてLARP(ロールプレイ)できるのも一因だと思う。インターフェースがあって、まるでl33t h4xx0rsみたいに見えるから、実際には15回「続ける」を押してるだけなのにね。

結局、これが全てだと思う。みんなが自分で作ったTUIやclaude/codex CLIでやってることは、簡単なIDEや見やすいUIでやった方が多分簡単だし、でももっとやってる風に見えるのがいいんだよね。みんな、ターミナルにこだわる「合理的な」理由を持ってるけど、実際にはもうコーディングしてないのにね。どうしても必要ならターミナルの横にウィンドウを置くのも簡単だし、まあ、自由にやればいいんじゃない?自分が幸せならそれでいいし、みんなマネージャーになっていくしね。私もサイバーパンクなインターフェースが好きだよ、必要なくてもね :)

悪いUIがソフトウェア開発をずっと悩ませてきた。原因はAIじゃない。良いUIデザインはスキル(またはアート?)であって、後付けじゃないんだ。でもほとんどの人はそう見てないから、今の状況になってるんだよね。

まるでl33t h4xx0rsみたいに見えるから、実際には15回「続ける」を押してるだけなのにね。 それ、めっちゃ共感する。絶対に、全てが膨れ上がったElectronアプリになるのに反発する要素があると思う。もしまだ起こってないなら、アプリの中には、TUIレイヤーをフロントエンドとして実装したElectronアプリを真剣に出荷するものが出てくるだろうね。

Claudeを--dangerously-skip-permissionsで動かしてるけど、すごく快適で、戻れなくなりそう。15回続けるボタンを押すのは意外と重いけど、もうやらなくていいって気づくまでは気にならない。

2000年代初頭から開発に関わってきたけど、開発がもっとアクセスしやすくなったのは素晴らしいと思う。古い世代が「開発者であること」を制限しようとするのはあまり好きじゃないな。エンジニアになるにはもっと資格が必要だと思うし、昔からそうだった。でも、自分が開発者だと感じるなら、それはそれでいいと思うよ!

ちなみに、これが私が時々Vimを使う理由だよ。JetBrainsではめちゃくちゃ生産性が上がるけど、時々はヒロ・プロタゴニストになりたい気分になるからね。だからVimを使うんだ。

自分もそうだと思ってたけど、先週デスクトップアプリでClaude Codeを使ってみたら、めちゃくちゃひどかった。遅いし、グリッチも多いし…すぐにTUIに戻っちゃった。

CLIプロンプトと100wpmでタイピングしながらログをスクロールするのはl33tって感じだけど、Claudeのコードはもっと1992年のDOSプログラムっぽい雰囲気だね。

開発者がCLIを使うことを学ばず、可愛いインターフェースがなくてもターミナルに慣れないのが理解できない。画面にテキストが表示されるだけでそんなに嫌がる人がいるの?tmuxってそんなに難しいのかな?

このコメントありがとう。FAANGのプリンシパルエンジニアとして、これが正しい答えだと思う。

見たTUIは、ほとんどがNPMに依存してるみたい?エージェントたちがセキュリティの問題を抱えたものに書き換える時間がないのは奇妙だね。これを見ると、エージェントが支配するのは、結果を気にしないゴミスタートアップで働いてる人たちから来てるんじゃないかと思っちゃう。

Hacker Newsで議論の続きを見る