I made a tweet the other day which definitely struck a chord
Ben Halpern 🤗@bendhalpernNo matter how much you love the CLI, don't GUI-shame. Lots of perfectly amazing programmers like working with GUIs, and it's perfectly fine.
There's some weird gatekeeping tendencies centered around the command line. #DevDiscuss02:15 AM - 28 Nov 2018
This is the kind of hot take tweet which leads to many more hot takes, so I felt like unpacking the thought a bit.
Roo@andrew_lowDon't _____-shame period. We need more diversity in programming if we are going to have any chance of making software less bad twitter.com/bendhalpern/st…01:30 AM - 29 Nov 2018Ben Halpern 🤗 @bendhalpernNo matter how much you love the CLI, don't GUI-shame. Lots of perfectly amazing programmers like working with GUIs, and it's perfectly fine. There's some weird gatekeeping tendencies centered around the command line. #DevDiscuss
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.
leeand00@leeand00@bendhalpern I've seen few good GUIs; also when you really need to get something done, GUIs are so much more complicated and harder to automate. GUIs are for people who don't want to invest the time and effort in trying to find out how something really works.16:56 PM - 28 Nov 2018
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.
Ben Lesh 🧢🏋️♂️💻🎨@benlesh@bendhalpern 100% agree... But if you're a mentor or senior/lead, it's worth learning the command line for things like git, because you're going to be on other people's machines and they may use different GUI tools or not have your favorite one installed.02:36 AM - 28 Nov 2018
I agree. This is good useful advice. It's a good pitch for learning CLIs in general.
JMS@jessmadeline@bendhalpern I'm surprised at this attitude. I've stuck with CLI as that's what I was first taught and always found GUIs intimidating glancing at colleagues screens. I put myself down for NOT being comfortable with a GUI.20:56 PM - 28 Nov 2018
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.
Sean Steimer@shsteimer@bendhalpern @tkeeney My guideline as a tech lead is that you can use any tools you like, as long as they support a common sense wf to get things done. But if you need my help doing something, I’m only supporting the toolset I know, so you may be on your own for certain things.04:42 AM - 28 Nov 2018
This is a reasonable approach, if approached reasonably. (This is how I talk sometimes. Yikes.)
Stéphane Bjørne@stebjoerne@bendhalpern As an avid user of the CLI, what I experience when I see others using a GUI is a little pain: it is so slow and for me complicated that I don't understand how people feel comfortable using them. Then I remember that everyone has its own preferences, so whatever floats your boat17:11 PM - 28 Nov 2018
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.
Be like Mac.
Hyperion ⛓@ygghuur@bendhalpern 100%. I love GitHub Desktop.13:08 PM - 28 Nov 2018
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.
Rebecca Conley@rlconley@bendhalpern Was just talking to some students at @MomentumRDU about this today. I'm glad my current manager, who has more experience than I, encourages the use of GUI tools. There's an implied value judgement about visual expression and graphics with this kind of gatekeeping.03:44 AM - 28 Nov 2018
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.
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.
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:
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.
Happy coding ❤️
This series of posts document a high-level process to use when planning a modern web application, from project organization, collaboration considerations and tooling choices during development, all the way through deployment and performance strategies.