meanwhile Windows users: let me drop into this random strangers discord who claims he will make my PC faster by dropping this .bat file that will run thousands of commands to “debloat” my install. also let me edit the registry and add random values to keys that I don’t know what they’re used for. this process is basically irreversible because I will inevitably forget which keys I’ve edited over time, wow windows is so simple and easy and intuitive 🤡
Amen. I remember having to frequently reinstall the system to keep it performant. Thanks windows rot.
I actually used to make backups (Export) of each edited key and keep them in folders with context, so I could later look them up or even set them again in case of a reinstall.
Now, they are lying, forgotten, on some NTFS drive that I haven’t opened in years.
The only thing worse than reading documentation/tutorials about how to do things in GUIs is writing documentation about how to do things in GUIs. It’s just screenshot after screenshot. And following it is like playing a ScummVM game, only less fun and lots more alt+tabbing.
Screenshots? Look at Mr. Speedy Pants over here!
In my experience, half the time it’s a bloody YouTube video. Nothing says “fun” like having to seek back around in a video to find the next step without waiting 20 extra seconds because you already had to seek back and pause the video after it breezed past an overcomplicated and poorly explained step.
Unregistered hypercam 2 + notepad instructions + evanescence is an aesthetic tho
If the GUI is good, then it’s self documenting.
I’ve got a new favorite quote: “I don’t need tutorials, I need verbose tooltips.” -Wonderbot
Are there people who are mad at other people for using the terminal? Is this really a thing that exists?
Not really. But you know, gotta find ways to feel smarter than other people so here we go.
Yes, that’s a real thing. They use it as an excuse to dog on linux distros & say “Muh linux not great yet”
Maybe I misinterpreted the meme, I thought the yelling guy is also a Linux user.
I don’t think so, but I do criticize not having an option, that is why I stopped using Cisco personally and professionally, some things are fast using the cli, some things just need an Ui, you need both.
Like I get and appreciate the CLI and for networking, that’s pretty much all I’m using anyway, but I am shocked that enterprise networking doesn’t even bother to do any GUI. Once upon a time Mellanox Onyx bothered to do a GUI and I could see some people light up, finally an enterprise switch that would let them do some stuff from a GUI. Then nVidia bought them and Cumulus and ditched their GUI.
There’s this kind of weird “turn in your geek card” culture about rejecting GUIs, but there’s a good amount of the market that want at least the option, even if they frankly are a bit ashamed to admit it. You definitely have to move beyond GUI if you want your tasks to scale, but not every engagement witih the technology needs to scale.
In a pretty high end high tech company, there’s still lots of people who see a terminal and think “ha hah, they are still stuck in old mainframe stuff like you used to see in the movies”.
My team determined long ago that we have to have two user experiences for our team to be taken seriously.
A GUI to mostly convince our own managers that it’s serious stuff. Also to convince clients who have execs make the purchasing decisions without consulting the people that will actually use it.
An API, mostly to appease people who say they want API, occasionally used.
A CLI to wrap that API, which is what 99% of the customers use 95% of the time (this target demographic is niche.
Admittedly, there’s a couple of GUI elements we created that are handy compared to what we can do from CLI, from visualizations to a quicker UI to iterate on some domain specific data. But most of the “get stuff done” is just so much more straightforward to do in CLI.
Speaking from experience… Yes. Absolutely yes.
I have a coworker that likes to pick fun at my usage of CLI tools. He said it’s confusing “why would I use a terminal when the GUI was made after?”. They vehemently hate anytime they have to work with CLI.
I watched them use an FTP program to download and change one value in a .conf file. Like they downloaded the file, opened it in notepad++, changed one thing, saved it, reuploaded / overretten the original. I tried to show them how to just use nano and got told their way was “better since you could ensure the file was replaced”. Its okay, I’ve secretly caught them using it a couple times lol
To me apt is confusing but that’s because I’ve become so used to pacman. The only package manager that comes close to pacman for me is xbps.
Yeah apt tends to shit itself very often. I don’t like how it’s actually two different programs (dpkg and apt) glued together with perl and python. It all feels too fragile. A friend once tried updating a package, and it failed because… he was issuing the apt command from with a python virtual environment. Can’t say for pacman because I’ve never used arch, but xbps is just one set of self-contained binaries, which feels much more robust. Alpine’s APK fits that bill as well, lovely little package manager. Tho I guess apt predates both of those, so it’s not a fair comparison. Someone had to make those mistakes for the first time.
I also really dislike the Debian/Ubuntu culture of fucking around with the sources file to add other people’s repositories on top of the distro-default ones (ubuntu calls this PPA). It’s a good idea in theory, but in practice those third party repos always fuck up in some way and brick your package manager. Just search for “apt Failed to fetch” in your favourite internet search engine, and you will see hundreds of people confused about it. You can do it with almost any package manager, but for some reason it’s mainly the debian/ubuntu people who like shooting themselves in the foot like this.
Usually it’s the other way around
Having started out in programming before the GUI era, typing commands just feels good to me. But tbh Linux commands really are ridiculously cryptic - and needlessly so. In the 1980s and 90s there was a great OS called VMS whose commands and options were all English words (I don’t know if it was localized). It was amazingly intuitive. For example, to print 3 copies of a file in landscape orientation the command would be PRINT /COPIES=3 /ORIENTATION=LANDSCAPE. And you could abbreviate anything any way you wanted as long as it was still unambiguous. So PRI /COP=3 /OR=LAND would work, and if you really hated typing you could probably get away with PR /C=3 /O=L. And it wasn’t even case-sensitive, I’m just using uppercase for illustration.
The point is, there’s no reason to make everybody remember some programmer’s individual decision about how to abbreviate something - “chmod o+rwx” could have been “setmode /other=read,write,execute” or something equally easy for newbies. The original developers of Unix and its descendants just thought the way they thought. Terseness was partly just computer culture of that era. Since computers were small with tight resources, filenames on many systems were limited to 8 characters with 3-char extension. This was still true even for DOS. Variables in older languages were often single characters or a letter + digit. As late as 1991 I remember having to debug an ancient accounting program whose variables were all like A1, A2, B5… with no comments. It was a freaking nightmare.
Anyway, I’m just saying the crypticness is largely cultural and unnecessary. If there is some kind of CLI “skin” that lets you interact with Linux at the command line using normal words, I’d love to know about it.
typing commands just feels good to me
That’s because for the most part, it’s faster. You don’t have to lift one hand off the keyboard. Also using the cursor and clicking on something requires more precision and effort to get right compared to typing a word or 2 and hitting enter.
This is me kinda bragging, but at my typing speeds, something like
ls -lais under half a second. Typing cd proj (tab to auto complete) (first few letters of project name if it’s fairly unique) (tab to auto complete), hitting enter, and then typing a quickdocker compose upis an order of magnitude faster than starting the containers in docker GUI.But tbh Linux commands really are ridiculously cryptic - and needlessly so.
Agreed. Okay, to be fair, for parameters, most of the time you have the double-dash options which spell out what they do, and for advanced users there’s the shorthands so everyone should be happy. But the program/command names themselves. Ugh. Why can’t we standardize aliases for copy, move, remove/delete? Keep the old binaries names, but make it so that guides for new users could use actual English aliases so people would learn quicker?
At least part of this is the decentralized/complied nature of a FOSS operating system. You don’t get a command called grep because someone making design decisions about a complete system holistically decides that tool should be called grep. You get it because some random programmer in the world needed a way to find patterns in text so they wrote one and that guy called it grep and someone else saw utility in packaging that tool with an OS. It’s a patchwork, and things like this are a culture of sorts.
interesting you used grep because it’s a command that has a very clear origin.
in ed/vi the g command was used to run commands on some pattern. eg
g/[regex pattern]/[command]the p command was used to print current line so to print any line that matched the string “grep” you would do:
g/grep/p.when this was made into a seperate command it was called grep:
g/re/p. using re to denote regex.
The standard VMS text editor (EDT) assigned editing functions to the number keypad. Using it became so natural to me I eventually didn’t think about pressing keys, it was like using a car gearshift. I’ve never gotten to that point with any GUI editor, even with heavy use of keyboard shortcuts.
I’ve never met any windows evangelists to be honest. Lots of Apple evangelists though who will spend forever talking about windows. Every developer I’ve met who uses Windows always had a tongue in cheek sort of “well it kind of sucks in some ways but it’s what I’m used to, one day maybe I’ll get off my ass and change OS”.
Reminds me of the “I use Arch Linux btw” meme which doesn’t really happen as much anymore other than as a joke. Also, I use Arch Linux btw
Every developer I’ve met who uses Windows always had a tongue in cheek sort of “well it kind of sucks in some ways but it’s what I’m used to, one day maybe I’ll get off my ass and change OS”.
This used to be me, kind of. I’ve been an engineer for over 20 years, with the last couple being full time “developer.”
But I finally made that switch at work over a year ago (booting into Linux instead of using a VM) and at home a few months ago. This probably goes without saying, but I am never going back! It’s one thing to know there are options out there that people like you prefer, but it’s another entirely to get used to the better option then try the enshittified one again.
Im not an evangelist for windows (I won’t try to convert you) but I’m unashamed of being a software engineer who uses Windows as my main dev platform
This is a wild guess but is C# one of your most used languages?
At work everything I do is in the Javascript/Web world. Typescript backend, webpack react, etc. I use C++ and C# for personal projects because I personally despise Javascript world
That’s like my opposite haha, all my own projects are TypeScript and vite react, at work I was working with C#. Though I do prefer static typing much more.
When I work on web projects at home I don’t use any javascript at all. Just html and css. Interactions are handled via form submission. I’m working on a forum in asp.net mvc without any javascript at all
It’s all a matter of preference anyway (assuming you have both options anyway). CLI is less intuitive and takes longer to learn, but can be wicked fast if you know what you’re doing. GUI is more intuitive and faster to pick up, but digging through the interface is usually slower than what a power user can accomplish in the CLI.
It depends on what your use case is and how you prefer your work flow. The only dumb move is judging how other people like their setup.
CLI is effective because every command serves a specific purpose. UIs are the opposite, you have to imagine all possible intentions the user could have at any given point and then indicate possible actions, intuitively block impossible actions, and recover from pretty much any error.
CLI is effective also because of its history (i.e. one can go back, repeat a command as-is or edit it then repeat) but also the composability of its components. If one made a useful command before, it can be combined with another useful command.
Rinse & repeat and it makes for a very powerful tool.
The Unix principle of piping between two or even multiple programs, together with “all data should be in the simplest common format possible” (that is, largely unformatted strings), was a really clever invention to be popularized. As proven by the fact it is still so useful decades later on a myriad of computers unimaginably more powerful than what they had back then.
It’s not perfect by any means (alternative title: why something like Nushell exists), but it’s pretty good all things considered I dare say.
Absolutely. I learned about that decades ago as a teenager and never would I have thought it would still be useful today… yet, in 2025 if you want to do anything powerful, in the cloud, on your phone, even in your XR headset, it is STILL relevant!
PS: I project I’m contributing to on the topic https://nlnet.nl/project/xrsh/ ideas welcomed!
CLI is being able to speak a language to tell your computer what to do; GUI is only being able to point and grunt.
Terminal is fun. I like being hackerman
Yesterday I showed a local business owner how he could set up the signboards and menus in his shop using a raspberry pi. The guy is a windows guy. the second he saw the boot screen he balked. I told him they needed to be set up one time and the rest of the time he could manage them with a windows program (winscp). I don’t expect to hear back.
They fear CLI.
Another local guy had a huge archive of forestry images. They were all folders that had been renamed for the location and time they were taken but underneath they were all the standard filenames you get from a digital camera. It was nearly twenty years of pictures and he was getting five figure quotes to rename them all to match the folder names. I told him I could build a script to do it so he brought me one of his backups and I promptly did it using CLI before I was going to build a script. The next day he calls to say he talked it over with one of his vendors and they decided to drop their price down to a two thousand dollars. He wasn’t interesting in me doing it. I hung up and a few years later when he called me to come fix something someone had messed up I hung up again.
I have no doubt the people he was talking to did something similar probably using bash scripts. So now when I tell someone I can sort out their file naming or some other sorting task I don’t let them see how I do it.
My guy, it’s because you’re the vegans of tech.
Nobody cares. It doesn’t need to be your personality.
I do most of my work at the command line, my co-workers do think I’m nuts for doing it, but one of our recent projects required us all to log into a client’s systems, and a significant portion of the tasks must be done via bash prompt. Suddenly, I’m no longer the team weirdo, I’m a subject matter expert.
Noooo, you cannot have a consistent UI/UX experience across platforms with decades old commands and tools, my imaginary grandma might get confused, also you need three IT degrees to type “man command” into a term window.
It’s more about most people don’t have time to learn all the commands to be a sufficient enough user. I don’t want to dig through an endless stream of AI slop articles hallucinating me the commands I need for something, nor have the time and money to retreat from society “to learn it properly”. Also often the things I do is more intuitive for a button or shortcut press (I have made a card for my keyboard for F-keys) rather than typing in every time the commands.
Going CLI from GUI feels like ripping out the interiors and the dashboard from your car to make it slightly lighter the same way race cars are done, but instead you’re doing it to the family car. Sure, a lot of GUI is now a web app, because some techbro in the 2010’s wanted to
collect our data for advertisement opportunities and creating the Torment Nexusfree us from software installations, so we could just type www . wordprocessor . com into the URL bar of our browser instead of running the spooky and scary wordprocessor.exe after running the even spookier and scarier wordprocessor_install_1_6_5.exe. This in turn lead to a lot of student being over-reliant on HTML-like formatting for UI, and GTK and Qt not being taught in turn, which also could serve as lightweight and mostly cross-platform GUI. I even created my own GUI subsystem in my game engine for its editors.A lot of problems caused by those on the top are being blamed on “normie users”, because we need to be “ideologically neutral”, except when it comes to “supressed” ideologies…
you don’t have to memorize the commands, just use
tldr commandandaproposto your advantage.Everything will seem difficult when you’re not used to it and are changing habit, it’s not just a GUI to CLI thing.
Imo I don’t memorize commands. Everything on my zsh is so aliased that I don’t think I can teach someone else how to use any other cli.
It just turned into me telling the machine what I want it to do and let it figure out how to rather than me do every little button click step.
An alias is tantamount to a button click. That’s why this whole thing is so stupid.
It’s actually even more efficient because one can search through the list of all available buttons.
So you’re right… To an extent… I usually say I’m making a new button when I’m figuring out an alias.
I guess a better way to express my point is that I’m not geared for interpreting graphics to tell what a button is supposed to do, nor am I cool with needing to press the same buttons in order multiple times.
On the CLI, all the buttons are named with (impo) meaningful names, and I can combine them into new just-as-accessable buttons whenever I want for free! It might align more with my working frustrations, I hate dragging my eyes over the same text/iconography every time I wanna do something, I want it to just ‘happen’. I need a user interface that can react to me faster than I can think and to achieve that I just limit my UI to exactly what I want and I keep it easy for me to expand as I need it.
reverse-i-search (typically ctrl-r) or ~/.bashrc (or whatever your alternative shell configuration file equivalent is) means one doesn’t have to memorize much indeed, especially while commenting properly.
GUI is a generic swiss army knife. It’s easy to introduce to someone, and it has a whole array of tools ready for use. However, each of those tools is only half-decent at its job at best, and all of the tools are unwieldy. The manual is included, but it mostly tells you how to do things that are pretty obvious.
CLI is a toolbox full of quality tools and gadgets. Most people who open the box for the first time don’t even know which tools they’re looking for. In addition, each tool has a set of instructions that must be followed to a T. Those who know how to use the tools can get things done super quickly, but those who don’t know will inevitably cause some problems. Oh, but the high-detail manuals for all the tools are in the side compartment of the toolbox too.










