概要
- ターミナルやコマンドラインインターフェース(CLI)との関係性の再評価の必要性
- SwiftUIなどによるネイティブUI開発の容易さと利便性
- TUI(ターミナルユーザーインターフェース)の限界とGUIの優位性
- CLIの有用性とTUIの時代遅れ感
- アクセシビリティやSSH対応などTUIの主張への反論
ターミナルとコマンドラインインターフェースの再評価
- ソフトウェア開発分野 における ターミナルやCLI との複雑な関係性
- ネイティブUI開発 の推進、SwiftUIなどのモダンフレームワークによる効率化
- Macアプリ や SageMathフロントエンド など、AIや自動生成によるUI構築事例の紹介
- LaTeXレンダリングやオブジェクト操作の容易化
- 独自のショートハンド入力による作業効率化
- Apple Musicプレイヤー「DJ Roomba」 のような、LLMエージェントによるパーソナライズ機能の実装
- 自作のLLMwiki や 食事記録アプリ、 温度センサー管理アプリ、 Apple TV用リモコン など、日常用途のネイティブUI開発例
TUIとCLIの本質的な違い
- CLI(コマンドラインインターフェース) は依然として不可欠な存在
- TUI(ターミナルユーザーインターフェース) は1970年代の制約から生まれた時代遅れの産物
- モデムやUIフレームワーク(Motif)回避のための苦肉の策
- Curses等の簡易フレームワーク採用の理由
- TUIフレームワーク (Ratatui、Textual、Bubbletea等)でも、ネイティブUIの完成度には及ばない
- スクロール、ドラッグ&ドロップ、テキスト選択、画像ハンドリングなどでの限界
- 標準コントロールの品質や合成性に劣る
TUIの主張への反論
- TUIの情報密度や操作速度 は事実だが、GUIでも設計次第で実現可能
- MagitやLazygitのような高密度UIはGUIでも構築可能
- SSH経由の操作 にTUIが必要という主張への疑問
- 実際にはCLIを用意し、ローカルUIから操作する方が合理的
- Emacs TRAMPのような先行事例の紹介
- アクセシビリティ に関するTUIの優位性にも疑問
- TUIはスクリーンリーダーでの操作性が低い傾向
- SwiftUIなどのモダンUIフレームワークはアクセシビリティ設計が優秀
結論:これからのUI開発の方向性
- CLIは今後も重要 だが、TUIの新規開発は推奨しない
- ネイティブUIの自動生成・カスタマイズ が容易になった現代
- 個人用途や日常作業 もGUIで効率化可能な時代
- TUIの時代的役割 は終焉に近づいているとの認識
TUIの最大の利点の一つは、何個でもTUIインスタンスを立ち上げられることだよね。一方で、GUIの開発者は、複数のウィンドウを開く権利を与えてくれるかどうかを決める必要がある。「タブ付きインターフェースで十分だ!」って、同時に2つの情報画面を見ることなんてできないじゃん。