I made a tweet the other day which definitely struck a chord
This is the kind of hot take tweet which leads to many more hot takes, so I felt like unpacking the thought a bit.
I agree. CLI/GUI is a special enough case I've seen so often whenever the conversation comes up that it seems like it belongs in its own category.
This is exactly the type of shaming. GUIs are not "for people who don't want to invest the time and effort in trying to find out how something really works." They are a tool like any other. I actually agree that there are few good GUIs, but also see this as textbook shaming that doesn't help anyone. Like special effects in movies, we only notice the bad ones anyways. I really don't like the GitHub desktop app compared to using the command line, but it is still fairly useful in some cases. I really don't like actually looking at git diffs in the terminal, so while I manage things via the CLI, I still visualize with a GUI (VSCode has become that GUI for me).
Anyway, not to be too harsh, but I thought that was a bad take, and just what I was talking about.
I agree. This is good useful advice. It's a good pitch for learning CLIs in general.
This is kind of a big point of this in the first place. Everyone has a different path and putting yourself in the other shoe is not so straightforward.
This is a reasonable approach, if approached reasonably. (This is how I talk sometimes. Yikes.)
Exactly. I feel the pain. But probably less than you. Within our own office, @maestromac probably feels this pain the most. He's really good with CLIs and vim, and deep down would probably love if everyone did things his way.
But Mac doesn't get religious about it.
Vim won't make you a more productive developer
Mac Siri ・ Sep 5 '18
Be like Mac.
I just got done talking about how I don't really like the app. And I'm glad others do. I'm sure plenty of people really do.
As the person who said I don't like it, I can't actually give really good advice on how to improve it either. This is probably because I haven't taken the time to learn it, so I probably shouldn't jump in to shit all over anyone who has done so.
And that's back to the original point. It hurts the whole industry if we put people down for the tools they use. Many people do end up learning important command line concepts, but many do it after a lot of work, maybe years professionally, working with more visual tools. And if they never do, it seems like they are probably doing fine anyway.
In conclusion
It can be very painful to watch anyone operate a computer who doesn't make good use of shortcuts you feel everyone should be using. Some people copy-and-paste exclusively with the mouse. Some people use caps-lock-on-caps-lock-off instead of shift. It can be painful, but if you see someone doing something "wrong", as you perceive it to be, being an asshole about it isn't helping anyone.
One last aside
As a tangent, I feel that some developers don't put enough time and energy into their basic computer/desk/environment set up. You don't need the best, most expensive, stuff, but you should have a good setup and a good routine.
I feel like this post has some good ideas:
How to Improve Your Development Experience
Nick Karnik ・ Sep 22 '18
I felt like bringing this up because it's related to tool-shaming. A lot of folks will see someone with a bad setup or flow and give them shit about it. I'd rather proactively take the opportunity to provide some helpful resources to anyone who might not already give this a lot of thought with regards to their own productivity.
</brain-dump>
Happy coding ❤️
Latest comments (49)
I'm one of those using GUI tools, on a daily basis, when managing branches, performing reviews, cherry picking, solving merge conflicts, etc.
I tried many times just using CLI and I found everything much more difficult to use and to spot errors, when they occurred.
I don't see what's the issue in having a nice visual tool, which behind the hood is just calling some GIT commands? Is just an enhancement, which improves the quality overall.
At the end of the day, that's the beauty of engineering: we're building tools to used for building other tools and so on. Why should the progress just end with a CLI, beats me.
The post and the comments are really good. And there's certainly nothing wrong with using GUIs.
I can say that I'm pretty comfortable with the Git command-line interface and I absolutely love it. But I always have GitKraken open in the background. ALL-THE-TIME. I use it to visually see the timeline, read commit messages, check logs and explore commits.
I write dev docs; here are some tools that I use regularly (the * are command-line; the + are GUI), in no particular order:
I still haven't found a great editor for RST files. I've tried Atom, Sublime, etc., but often just go back to emacs, although you have to be careful with tabs versus spaces. I usually just run a cygwin script that uses expand, especially for RST files as the Python-ish format can get hosed results if you screw that up.
Yup, the "GUIs are for people who don't want to invest the time and effort in trying to find out how something really works." attitude makes my eyes roll. Just because I don't have to send emails like:
gmail send --email recipient:a@a.com message:who the hell would want to send emails like thisDoesn't mean I don't understand how emails work or how to use them. We developed GUIs in, like, the 1970s for a reason? Perhaps the world of programming needs to catch up a bit.
People who decide to dog on others for using a GUI (or whatever) continually confuse me. It seems to me that they are assuming they know what a person is trying to accomplish and what the person needs to get it done. A person isn't losing out on anything by using the GUI version of an app if it provides what they need, right? It seems really to be a case of some people equating their way with the right way. That doesn't strike me personally as a very rational worldview -- that may be why you see discussions on this subject deteriorate so quickly into useless name calling and tweet wars, etc.
I suppose you can analyze it all day long but it seems to me if we could all try and worry about our own stuff, what works for us, and mind our own business it would go a long way towards offering us all a bit more piece of mind. And in the event someone else's choice has caused an actual problem, well, coming at them with shaming and insults is not the way to fix it. But it can sure cause you all kinds of new problems.
As someone who used to teach folks how to use git with only the command line, I just taught another person to use it via the Github Desktop app... it's so so so much better than it was in the past, and it's so much nicer for someone with less CLI experience to grasp the concepts and not get caught up in the syntax.
As someone who's already used to using git from the command line, I don't see myself switching — but it was a wonderful teaching tool, and I'm sure a great part of the development workflow for some folks.
Totally agree - no more GUI shame!
I've found that a GUI benefits new or casual users, while the CLI (depending on its robustness) may help heavy-duty users more.
I've also found that it's good to build both, because it keeps the business logic out of both, and in the shared underlying code where it belongs.
I think this is related to each individual and certain trends related to each “group” of people/users. I guess theres not much fun to it If everbody did things the same way; no room for feedback. I agree on the fact of not being an asshole at pointing things out.
Great post!
I've honestly never seen what you're talking about in the wild. If anything I've been shamed as a dinosaur for using the terminal so much.
Some comments may only be visible to logged-in visitors. Sign in to view all comments.