To get annoyingly serious on a funny post, the one huge danger of GUIs that I’ve personally witnessed in many of my juniors is that they abstract away the need to understand the tool you’re using.
I regularly use a Git GUI, and I might have to google the rebase command for more complex tasks, but I know how Git works. I know what I can do with rebase, even if I don’t exactly know how to. If you only live in the GUI, you can get far never understanding the system. Until one day, when you fuck up a commit or a push, and you’re totally hosed because there isn’t a pretty button with the exact feature you want in your GUI.
Somehow I’ve made it 7 years without messing up a git command that I couldn’t fix in like 2 seconds. I primarily use vscode’s source controller more featured source controllers like sourcetree feel overly complex and typing out git commands is fine but you spend more time doing that than you would with vscode’s approach. I’m really curious about what you mean by fuck up a commit or push
Try reverting a reverted commit (revert of revert, yes) while other team members are working on a branch which has the first revert. It’s super fun merging after that.
(Or something of that effect, can’t remember the exact details of that fuckup)
I don’t think I will, mostly cause I work on a team of 1 right now which makes my branches wonderfully simple.
Yeah, fuck that. It’s perfectly fine to build a GUI that makes things a bit easier, but make the GUI so that it resembles the fucking workflow. I hate that when I want to automate something thats super easy in the GUI and it takes AGES because there is no equivalent to what I’m doing in the GUI
I hate that when I want to automate something thats super easy in the GUI and it takes AGES because there is no equivalent to what I’m doing in the GUI
glares angrily at Azure CLI
Azure CLI and AzPowershell are somehow so powerful and useful until they fall flat on their face.
If you’re using a GUI, that means whatever you’re doing you’re not doing a lot of it, since you don’t need to automate it. I would expect a world-class enterprise engineer to be able to automate most tasks, and from that they would be very comfortable with the command line.
Can you do everything with a GUI that you can on a command line? Yeah probably, if the developer is at all the features properly. Can you automate it easily? No not at all. So the more you do something the more you tend to want to deal with the vocabulary of the command line because it’s more expressive and allows for automation.
I will die on this hill!
Documentation too. Frontends change all the time, but CLI tools usually don’t, so you can usually rely on old documentation. But have you ever tried googling how to do something in MS office, found and article from half a year ago and found that none of the things it mentions exist anymore? It’s ridiculous how much time people waste trying to figure out stuff multiple times because it changes so much.
After long periods of not using GUIs, I found myself very confused every time I want to do something. I was trying to insert a code block into Power Point yesterday, took me half an hour of googling and didn’t manage to do it. With Latex, I googled and in 2 minutes I had a code block.
Given that Latex is a clusterfuck of legacy, it speaks volumes that it’s still so much easier to do things there rather than in powerpoint.
With MS office I’ve also adopted a “fuck it, I’ll just take a screenshot” approach.
A collection of screenshots send around by mail after having poorly drawn arrows and frames in it, is official documentation. Source: my corporation
Yup, I tried doing it properly too when I started and now I don’t give a shit. If the company wants us to use crappy tools, that’s what they get.
Depends on what system you’re running, and especially what task you’re doing. Trying to operate firewall rules via CLI is an exercise in self-inflicted pain, as is trying to set a complex cron schedule without a handy calculator.
Junos CLI is a real treat. I work with the SRX line regularly, particularly the SRX4600 and the SRX300 series.
TIL there are people configuring firewalls via GUIs. Okay … I‘m do that too on my private equipment because I’m lazy. But it feels wrong doing so in an enterprise context.
You using a Cisco firewall or something?
I’ve been using F5 in the past. Not doing that anymore though.
CLI debuggers can’t hold a candle to the Visual Studio debugger. This is generally not something you automate, and I haven’t met many engineers that know
gdb
well. But pretty much anyone can use VS debugger.
Using the right tool for the right task is a big part of being a good engineer.
thank you.
it makes you a Windows engineer which is worse
"Windows engineer’ lmao.
Yeah, keep telling yourself that buddy.
So far I don’t think anyone has interpreted the meme correctly, the wikiHow guy is supposed to be an obvious shortcoming expressed as a guy trying to convince himself it’s not a problem.
Honestly, some things can be done faster/as fast on GUI. So really just use whatever increases your productivity.
IMO GUIs are always faster when it’s something you’ve never used before, or use very infrequently.
CLI is better if you’re used to the task you’re doing, or automating things. But for infrequent tasks looking up the commands (or looking at old notes to find it) is very slow and rather annoying.
Moving files across several subfolder levels tends to be much faster on a GUI. Finding files is usually much faster via CLI, even when you have to look up again how to use the find command of your choice
Is there an instant GUI find tool on linux?
find
is very slow compared to using Everything on windows, and sorting results is really hard via CLI.I usually just make a bat or py script to move and create specific files to specific folders.
I only do this because I’m lazy and numbering, renaming and creating folders is a drag and can be easily automated, but just copy/paste or cut/paste is faster in GUI, especially with alt tab and the new tab file system on windows.
The more you use the commands the more you remember them. I got good at the CLI by forcing myself to use it for things I would normally do in a GUI. Now everyone thinks I’m a wizard which I won’t discourage
A GUI with a search function is always the best way to deal with filesystems, in my experience.
Always orders of magnitude slower and near-infinitely less featureful, in my experience.
You gotta admit, it’s fun to meme the opposite camp. Whether you are a GUI or CLI person.
I use both. I use the CLI for a lot of stuff but I also use the GitHub Desktop fork for Linux lol. I don’t care how powerful git is in CLI, that gui is just so nice imo
It took me forever to realize I could edit config files in a graphical text editor. When you have a really long file it’s just nicer to have properly formated text wrapping and a scrollbar with a preview box.
Exactly. Use the tools you have the way they fit you best. If it aids your work flow learn the CLI commands you use the most. If it’s something obscure or rarely used, use the gui.
Another not mentioned benefit of becoming comfortable with using the cli is that you then can more easily script stuff.
But you look way cooler when using the terminal for most of your stuff 💁♂️ also using a riced out window manager and riced out Vim config for which you spent hundreds of hours on customizing every aspect of it :p normal people don’t know what the fuck is going on on your pc so you can feel instantly feel superior to those normies! Ah also btw i use arch ;)
Use a computer in whatever way you want and/or need to best get the job done. It’s a tool for accomplishing tasks. The amount of random gatekeeping for no goddamn reason in tech/programming/FLOSS is ridiculous.
See: Cisco. At least when I last used it, the web server configuration utility added a lot of garbage to your running config that made it unreadable if you swapped back to the cli.
Systems that built the GUI first aren’t too bad. Palo Alto UI is pretty decent.
I don’t know how fair it is to use Cisco as an example for a GUI.
deleted by creator
Using the best tool for a job makes way more sense than sticking to one because of a principle
deleted by creator
That’s why I use lftp for cli sftp. For most operations it is much faster. Especially when you want to use regex to select files.
deleted by creator
So… my only requirement for my tools is that they have a well-supported CLI, and can be installed headless without graphical dependencies. Tools must be scriptable.
That said, it’s nice to have a UI. My ideal configuration is a scriptable tool with a good API, and a separate GUI tool that can drive it.
One of the best tools I’ve used is SuperSlicer. It’s a slicer for 3D printers. It has GUI, it has CLI and it has a DLL/SO so you can add its features to your own application. And it’s open source if linking against an existing library is too hard for you, lol.
To me, your choice of worlstation OS says a lot more about your priorities.
Mine is Ubuntu. What it says is “I installed it years ago because it was the one I knew most about but now very much regret doing so.”
At some point I’ll have time and switch. Maybe go with Mint or Debian. There’s way too many things that randomly break and it’s become rather laggy over time.
Honestly, portainer makes my life so easy
Right? I’m fully capable of using docker compose. But portainer adds an easy and useful admin layer to it.
What specifically does portainer add?
Pretty buttons and the ability to scroll and see all my configs in one window with a single click
Pretty buttons
Umm okay. Personal preference.
the ability to scroll and see all my configs in one window with a single click
Isn’t scrolling a single
docker-compose.yml
easier to see everything? I mean, if you want to change anything - you just edit and re-run command.Isn’t scrolling a single docker-compose.yml easier to see everything? I mean, if you want to change anything - you just edit and re-run command.
Personal preference. I prefer a gui for some things. I also prefer to not put all my containers in one monolithic config. It can also automate using configs in GitHub which is nice.
It also provides a nice dashboard of container health across multiple hosts and makes it easy to manage those hosts from a “single pane of glass”.
But, personal preference.
I ran a kvm host manually for years. Years. I recently started over with proxmox because it could be exhausting and this is easier.
Click something and you’re there (e.g. viewing logs of a container). You don’t have to remember
docker
commands to do simple and quick operations.
All the good GUIs have a license fee.
What is this thing you call “good gui”?
It’s what you put on bad software to make it palatable.
Like a sugar coating. It’s why no one codes in Java anymore without 80 terabytes of ram for their IDE.
I wonder what’s this “good software” (you meant language?) that doesn’t require an IDE to code efficiently.
Good luck ever doing anything embedded if you always need a clunky IDE. Best thing I ever did was get comfortable in a solely vim/cmake/gcc environment. Even if the majority of work doesn’t require it, it’ll teach you a lot.
I mean, we’re rewriting everything in Rust, so there’s no need to learn cmake anymore /s
To conter your comment a little bit, I think anyone doing coding for a living should absolutely use an editor that supports LSPs. They’re an insanely helpful tool with zero downsides.
Removed by mod
I disagree somewhat with their take, but there’s definitely languages that cmoe with features built-in that reduce the need for a fancy IDE. For example, instead of null checks via annotations that the IDE has to parse and warn about, just have nullable types. Or instead of IDE features to generate a bunch of boilerplate, just don’t require that boilerplate.
That being said, on the other side of the spectrum, anyone writing code without using an LSP is just throwing away productivity by the handfull.
So that’s my point. Don’t write or use bad software. Then the GUI (bad or good) isn’t necessary.
Pshaw! CLI and GUI? Real network engineers make hand crafted API calls!
I love xkcd 🤣