GUIクライアントを使っている人にGitの扱い方を教える機会というのがここ数年たびたびあって,最初のうちはGUIアプリわからんし,,,とかいってぽーいとぶん投げていた.途中から良くないなと思いGUIアプリとかも見ながらやってたんだけど,いろいろつらい.
どういうことかというと,Gitってソース管理の複雑性を解決しないまま,そのまま複雑なソフトウェアとして落とし込んでいて,使う側に学習を強いるアーキテクチャだと思っていて,根本的にはこれがつらい.ソフトウェア書いてるとソースコードの管理が簡単じゃ無い問題なのわかってるから,使い方覚えるモチベーションもあると思うけど,ソフトウェア書いてない人たちが使おうとすると,なぜ複雑なのかを覚えたり学んだりするところからになる.これは通常であれば完全に無駄なコストで,ノーメリットであると言える.もちろんそういうのすっ飛ばしてコマンドだけ教えても良いのだけれど,そうなるとただしんどいし,コマンドは覚えれてもなぜそういうステップがあるのか,みたいなのわからない気がする.
さらに悪い事に,そういう複雑さってGUIアプリケーションと相性が悪くて,たとえばソースツリーの画面とか見て欲しいんだけど.こういう感じでボタンいっぱい並んでる.
CUIでgit使ってるとサブコマンドがここに並んでるのか〜って感じだけど,GUIの方が簡単でしょとかいってこれ見せられても困惑すると思う.
GitHub for Mac/Windowsっていうアプリケーションがあって,そっちはこういう感じ.
良くないポイントいくつかあって,
- 変更とファイルの追加がまとめてchangesにされてしまっている
- pull/pushがまとめてSyncになってる(右上のボタン)
あたりは特に気にいらない,あとRepositoryメニューからTerminal開くんだけど,ほんとうにただMacのターミナル開くだけで,GitHub For Macのgitじゃなくてシステムのgit参照するからいきなりXCode Command Line Toolkitのダウンロードを求められる.Windows版はよく知らない
仕方が無いと思っている面があって,とにかくGit自体が複雑性を複雑なまま扱っているのが問題.これは開発者向けのツールとしてはあるべき姿で,仕方が無い.一方でGitHub for Mac|Windowsはその複雑性をがんばって隠していて,GitHub for Mac/Windowsを出した経緯など推察すると正しい方向性なんだけど,結構困る.
結局,Gitは複雑なので,その複雑さを受け入れる価値があるところでだけ使いましょう,という意見です.