Pshaw! CLI and GUI? Real network engineers make hand crafted API calls!
I love xkcd 🤣
it makes you a Windows engineer which is worse
"Windows engineer’ lmao.
i feel you bro. people in here talking shit like they don’t know that some net devices are literally made for webgui first and foremost, and programmatic changes don’t work for every api even if it says it’s supported (fucking looking at brocade).
if you’re used to cisco cli, shit like juniper or palo alto or f5 can be intimidating when looking at the configs.
but i swear to fucking god if you use gui instead of cli for cisco, we gon have words.
Cisco and Juniper CLIs are terrible imo… Why won’t they just use a proper modern set of tools instead of their own proprietary shit that doesn’t interface with anything else?
because cisco fears change and doesnt innovate technologies so much as acquire other companies’ tech and frankenstein it into their portfolio.
Had to get some metrics out of an old Cisco box that weren’t available through SNMP, and the only solution I could come up with was to periodically SSH some commands and regex the results.
That required way too much shell-foo and the SSH daemon would just randomly refuse/drop connections.
If only there was some kind of standard metric API that every other modern software supports out of the box…
I’d argue that if you only know how to start your own project using the play button, then you aren’t a software engineer.
I’ve written a pretty big application for my employer in visual studio. Never once have I run a “dotnet build” command. Only ever used the little play button. Guess I’m no software engineer
The real software engineers are those who can 2 minute Google “how to build with cli” their Hello world console app.
The point isn’t whether you use the GUI. The point is whether you are capable of doing your job without it. I’m not going to throw shade but personally I hate being at someone else’s mercy - such as when the GUI breaks and I am forced to wait for someone else to fix it. One reason I stay away from the JavaScript browser/electron ecosystem is because there are so many opaque, inscrutable tools (namely bundlers and module resolvers) and I have no freaking clue how they work under the hood and they’re virtually impossible to debug.
But you knew about
dotnet build
Tbf, I looked it up on Google. I know you can do everything you can with Visual Studio also in the CLI, but never bothered checking out the specific commands. 2 second search on Google returned
donet build
.A software engineer isn’t defined by what commands he knows or what functions he can remember off the top of his head or what languages he used to write hello world. Those are easily Googlable things that have little to no value irl. The ability to actually solve a problem or build an architecture, a system, even if only in pseudocode is much much more valuable than knowing any specific command.
Case in point, I routinely Google stuff I already used or self reference previous code I’ve written cause I can’t remember how I did certain things. Nothing wrong with that.
There’s no shame in being a play-button corporate programmer who’s in it only for the money! In fact, most employers prefer this kind of people.
deleted by creator
I don’t. Looked it up on Google, not that hard. I also never use git from the terminal, I know I could, but I don’t and if you were to ask me off the top of my head how to use it from the cli, I probably wouldn’t be able. Not because I can’t use git, I just can’t be bothered to remember all the commands when a gui is available and does the exact same thing I needed to do anyway. If and when I’ll need to use the terminal for git, I’ll check the docs for the exact syntax.
Again, knowing the exact syntax it’s not what defines a software engineer, IMO.
deleted by creator
Yeah… that’s literally my job… but keep on gatekeeping, don’t let my existence stop you.
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!
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.
on the contrary, CLI is the BEST way to deal with firewall rules.
Personally, I’d take it a step further. Firewall rules should be defined as code in a git repo. So if you’re building rules in a gui, you’re simply doing it wrong. While a cli and/or api should be used, that should be automated and invisible to a human.
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.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.
What are you saying? The project is finished, the new stuff implemented and now you want to buy some fancy software and shedule 100 hours for documentation? We dont need that! Just help out your colleagues, when they have a question. They’ll all know what to do in no time!
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.
Someone told me that windows server UI interface has more options than CLI. I got scared of windows server (how do you repeatedly Setup the same server, with a screenshot documentation ???)
Newer versions of Windows can give you the exact Powershell code it’s executing based on what you’ve configured in the gui. This is still extremely inconsistent across Windows services though. I don’t know that I’d feel comfortable running a headless windows server yet. Too much stuff still assumes you’ll use the gui for most things.
To be honest, if you really need Windows servers you should run core if possible. Basically all Microsoft’s management shit can be run remotely from your jump/management host. That said a lot of shit requires gui and refuses to run on core, like adsync
Is there a significant performance difference? I’m assuming the attack surface is lower.
There’s slight difference in resource usage of course, which does scale if you’re unlucky enough to have lot of them.
Minimum ram required is 512mb for core, 2gb for desktop experience so we can safely assume keeping the gui usable eats some 1.5gb memory. 500 servers adds some 750gb overhead in theory.
Then there’s of course the fact that less bloat will generally add up to less problems. Ever rdp to a server and start menu refuses to open or other weird gui shit. That’s just wasting your time.
It’s been a while since I’ve found that true. You can do everything you want to do in powershell now days.
Yeah, I think MS started adding PowerShell for everything after server 2012 R2.
First of all, most Windows settings are in the registry, so you don’t have to go to the UI, you can just upload new settings straight into the registry through CLI.
Second, PowerShell exists and it’s awesome!
And third, you can always use UI automation tools if you’re bad at registry and PowerShell. Just record your session and run whenever needed.
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.
PSA: Since his finger and the reflection touches, he’s likely looking into a one way mirror. There’s someone behind the glass.
Or it’s an extremely thin glass.
Or just a reflective surface.
Or his name is Truman Burbank
I just walked around my house touching all my mirrors and they all do this. Hope they’re not on to me now… Think I’ll wait for night and try to make a break for it.
I often prefer GUI/TUI, but I always like a good CLI. It makes automating things so much easier
In my experience, CLIs are easier to design but harder to design well. Because of that, when I find a good CLI tool it runs as smooth as silk, but I would easily take a decent GUI over a shitty or rushed CLI.
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
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
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.
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.Oh, you’re not aware of “locate”
I am but searching via CLI I’m not sure how to easily sort by last modified time, or restrict to a specific root path first.
I don’t know about GUI tools, but:
Everything is so fast because it uses the index built into NTFS to find files by filename quickly, and NTFS is the definitive file system on Windows so it works everywhere.
On Linux, there isn’t really an index built into the filesystem - some might have that, but I don’t know about it. That said, plocate is a common tool that uses its own index. You have to update the database when files change (you’ll probably have a job doing that daily), but searching the index is very fast.
locate
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.
Your filesystem must be monstrously huge if it’s actually perceptibly slow. I also get tired of typing in long filenames with a ton of special characters I have to escape.
You’ve never had to search through hundreds of gigabytes of source files, I guess. Congratulations.
No, I’ve never had that displeasure, Nothing I’ve worked on has been that big. My condolences.
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
Using the CLI lets you automate things a lot easier, which makes you a better engineer.
Excellent
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.