While implementation matters as well as language, this probably represents what we typically see for binary size.
In my own testing, I like gitui pretty well. It seems like a nice replacement for git add --interactive where you can easily stage chunks of a file for commit. tig has a nice default view which shows all branch paths and merges – similar to gitk.
For new users, it seems gitui is the most intuitive because it does not require memorizing a bunch of keyboard shortcuts. I plan to try it over the next week in my own development and see how it goes.
It is interesting that the gitui binary (Rust) is completely static – from the name of the download binary, I assume it is statically linked to musl – looking at the CD config, that appears correct.
The Go binary likely could have also been made completely static if the build process had turned off CGO.
I kind of fizzled out on this until I recently integrated LazyVIM into my editor, which includes LazyGit integration. LazyGit is quite nice – very fast and quick to do things and keyboard shortcuts are fairly obvious. I’ve tried vim-fugitive, but it never quite clicked with me – always found myself reverting to Git command line. We’ll see if LazyGit is different …
LazyGit seems to be a more active project than GitUI.
I’ve been using lazygit for a while now and its solid!
There have been some updates over the last 6 months which improved the keybindings and menu system as well.