In your opinion what makes a terminal program “more useful” than a GUI program with the exact same functionality? Genuinely curious because it’s a perspective I cannot wrap my brain around lol
It has always just felt a lot faster than navigating through a GUI. I suppose at the end of the day this is entirely dependant on how well designed the GUI is. Should I type in one command I have memorized or navigate through multiple sub pages?
The flaw is in the question: terminal apps practically always include more functionality especially for batch processing and automation of tasks.
I’ll give an example: Find me a GUI application that can quickly convert a gigabyte of .doc files into .pdf format. Pandoc can do that with a single command.
Also: You’re probably comparing the process of “using” a GUI app with “using” a terminal app, in other words, if you spend 8 hours sitting in front of Premiere or KDENLIVE clicking a mouse, you expect to do the same job with ffmpeg by sitting in front of it for 8 hours typing commands, right? But that’s not how it’s designed to work; it’s designed for you to write scripts that do the things you commonly do, which takes time to do once, then you run those scripts, maybe even from the GUI.
I’ll give a real example: the software I use for my personal journal is called RedNotebook. This stores the data in a human readable markup format (I think it’s YAML?) and displays it in rich text, including the ability to display inline pictures. I like putting pictures in my journal.
First problem: what it actually does is store a relative path to the location of the picture in your file system; if ever I was to change the location in my file system where I store the journal or my pictures, or change operating systems, this would break. So I created a Pictures folder within the Journal folder to copy all pictures there.
Second problem: My phone takes 12MP or larger pictures and the journal displays them at full scale so they take up the whole screen. I’d like to shrink them.
Third problem: The app’s “Insert picture” funcionality opens a file browser window written in QT which is different than the one from most of my GTK-based desktop apps use and I’d have to manually find the file.
Simultaneous solution: I wrote a short bash script that calls ImageMagick to shrink the image among a few other cleanup details, and builds the appropriate string to paste into my journal and puts that string in the primary buffer. I then wrote a Nemo Action so that the option to run this script appears in the context menu iff I right click on exactly one image file. Now I can add an image to my journal by browsing to its location in my file manager, right clicking, clicking Add To Journal, and then middle clicking in RedNotebook where I want to paste the picture.
There are hundreds of tedious little things I would do over and over again clicking through endless menus, windows and dialogs that I can script away, like paving my own bypass lane.
Simple example: installing stuff. Much faster and simpler to type “install foo” in cli than open a gui, searching for it, finding the right one, clicking install.
Same for updating: it takes me 2s to type the command to update all packages, that’s less than the time I need to move my mouse to the icon of the package manager.
Sorry, but that doesn’t really work. I can expand your terminal answer as much as you did the gui one. You have to open the terminal, use the man page for apt to find out how to search for a packages name, search for a package and hopefully find it, then you need to run another command with that package name to install it.
Meanwhile, I can shorten the gui example to “It take me two seconds to use the search bar and click install”
They all have their ups and downs, guis are just easier and more intuitive for people who don’t live and breath terminal commands. Terminals can be extremely confusing for them, having never used one before.
There is a bit of bias in your assumptions as illustrated by the “use the man page” step.
It is not always true that GUI means easier or more intuitive. It almost never means faster which is why terminal people like the CLI so much.
One of the major benefits of the command line is that it is almost universal between distros. Package management is one of the few things that differs between distros so let’s use that as an example as even in this case there are only a handful of package systems across dozens of distros.
I know that apt install and apt search work across the entire Debian family including Debian, Ubuntu, Mint, and Pop ( all different GUIs ). If I was at a random Linux command line in any distro, it would take me moments to try apt, dnf, pacman, and zypper. Without even knowing what distro I was looking at, I could be managing packages in 10 seconds. I bet one of these would work on your machine. The commands that did not work would be harmless. In contrast, it would take me at least that long to find the “store” in a menu ( if I even knew how to bring up the menu ). There are almost as many software stores as distros. Some distros have more than one. Once in the store, I would have to discover how to do what I want. I have never used most of them. In half of them, finding out how to do a full upgrade may take a while and I am not sure how confident I would be that it was going to do what I wanted. I may really be lost if I got any errors.
I use an old MacBook every day and booting into Xfce I can type “yay -Syu” before the wallpaper even comes up and certainly before a store would launch. I can also ssh into a number of other machines and update their packages remotely with the same command. Getting a Remote Desktop would be far harder and what methods are available to do that vary from machine to machine. It would be far harder.
Anyway, this comment is way too long. My point is that, for many people, the command line is faster, easier, perhaps more intuitive, more consistent, and often requires less to remember than the GUI. Windows just added a “sudo” command. Why would they need to do that if they are the poster child “everything in the GUI” OS?
It is great to have GUI options and clearly some people will did that less intimidating. That said, once you start using the CLI, it is painful to go back.
I think we will have to agree to disagree. Figuring out the software store guis is so incredibly easy. Install button installs, search box searches. They are all the same. Dont need to know what an update button is doing, because average people wouldn’t even know what is happening while doing it via terminal anyways.
Searching is also 100x times easier in the guis. You dont have a million other packages match your search (ever try apt search chrome?)
Though you are right, I had some bias with the man page bit. Average users wouldn’t even know what man is, making it even harder for them. They would have to open a web browser, describe what they want to do somehow, and hope a copy pasted command does what they want.
However once you’re up to speed with CLI, it becomes much simpler and faster. While a GUI will still be more steps even after you become expert at using that GUI.
In your opinion what makes a terminal program “more useful” than a GUI program with the exact same functionality? Genuinely curious because it’s a perspective I cannot wrap my brain around lol
It has always just felt a lot faster than navigating through a GUI. I suppose at the end of the day this is entirely dependant on how well designed the GUI is. Should I type in one command I have memorized or navigate through multiple sub pages?
It is also just what I am used to maybe
I see. For me, the step of memorization is time-consuming, especially for a program I only need on rare occasions and for simple tasks.
The flaw is in the question: terminal apps practically always include more functionality especially for batch processing and automation of tasks.
I’ll give an example: Find me a GUI application that can quickly convert a gigabyte of .doc files into .pdf format. Pandoc can do that with a single command.
Also: You’re probably comparing the process of “using” a GUI app with “using” a terminal app, in other words, if you spend 8 hours sitting in front of Premiere or KDENLIVE clicking a mouse, you expect to do the same job with ffmpeg by sitting in front of it for 8 hours typing commands, right? But that’s not how it’s designed to work; it’s designed for you to write scripts that do the things you commonly do, which takes time to do once, then you run those scripts, maybe even from the GUI.
I’ll give a real example: the software I use for my personal journal is called RedNotebook. This stores the data in a human readable markup format (I think it’s YAML?) and displays it in rich text, including the ability to display inline pictures. I like putting pictures in my journal.
First problem: what it actually does is store a relative path to the location of the picture in your file system; if ever I was to change the location in my file system where I store the journal or my pictures, or change operating systems, this would break. So I created a Pictures folder within the Journal folder to copy all pictures there.
Second problem: My phone takes 12MP or larger pictures and the journal displays them at full scale so they take up the whole screen. I’d like to shrink them.
Third problem: The app’s “Insert picture” funcionality opens a file browser window written in QT which is different than the one from most of my GTK-based desktop apps use and I’d have to manually find the file.
Simultaneous solution: I wrote a short bash script that calls ImageMagick to shrink the image among a few other cleanup details, and builds the appropriate string to paste into my journal and puts that string in the primary buffer. I then wrote a Nemo Action so that the option to run this script appears in the context menu iff I right click on exactly one image file. Now I can add an image to my journal by browsing to its location in my file manager, right clicking, clicking Add To Journal, and then middle clicking in RedNotebook where I want to paste the picture.
There are hundreds of tedious little things I would do over and over again clicking through endless menus, windows and dialogs that I can script away, like paving my own bypass lane.
Simple example: installing stuff. Much faster and simpler to type “install foo” in cli than open a gui, searching for it, finding the right one, clicking install.
Same for updating: it takes me 2s to type the command to update all packages, that’s less than the time I need to move my mouse to the icon of the package manager.
Sorry, but that doesn’t really work. I can expand your terminal answer as much as you did the gui one. You have to open the terminal, use the man page for apt to find out how to search for a packages name, search for a package and hopefully find it, then you need to run another command with that package name to install it.
Meanwhile, I can shorten the gui example to “It take me two seconds to use the search bar and click install”
They all have their ups and downs, guis are just easier and more intuitive for people who don’t live and breath terminal commands. Terminals can be extremely confusing for them, having never used one before.
There is a bit of bias in your assumptions as illustrated by the “use the man page” step.
It is not always true that GUI means easier or more intuitive. It almost never means faster which is why terminal people like the CLI so much.
One of the major benefits of the command line is that it is almost universal between distros. Package management is one of the few things that differs between distros so let’s use that as an example as even in this case there are only a handful of package systems across dozens of distros.
I know that apt install and apt search work across the entire Debian family including Debian, Ubuntu, Mint, and Pop ( all different GUIs ). If I was at a random Linux command line in any distro, it would take me moments to try apt, dnf, pacman, and zypper. Without even knowing what distro I was looking at, I could be managing packages in 10 seconds. I bet one of these would work on your machine. The commands that did not work would be harmless. In contrast, it would take me at least that long to find the “store” in a menu ( if I even knew how to bring up the menu ). There are almost as many software stores as distros. Some distros have more than one. Once in the store, I would have to discover how to do what I want. I have never used most of them. In half of them, finding out how to do a full upgrade may take a while and I am not sure how confident I would be that it was going to do what I wanted. I may really be lost if I got any errors.
I use an old MacBook every day and booting into Xfce I can type “yay -Syu” before the wallpaper even comes up and certainly before a store would launch. I can also ssh into a number of other machines and update their packages remotely with the same command. Getting a Remote Desktop would be far harder and what methods are available to do that vary from machine to machine. It would be far harder.
Anyway, this comment is way too long. My point is that, for many people, the command line is faster, easier, perhaps more intuitive, more consistent, and often requires less to remember than the GUI. Windows just added a “sudo” command. Why would they need to do that if they are the poster child “everything in the GUI” OS?
It is great to have GUI options and clearly some people will did that less intimidating. That said, once you start using the CLI, it is painful to go back.
I think we will have to agree to disagree. Figuring out the software store guis is so incredibly easy. Install button installs, search box searches. They are all the same. Dont need to know what an update button is doing, because average people wouldn’t even know what is happening while doing it via terminal anyways.
Searching is also 100x times easier in the guis. You dont have a million other packages match your search (ever try apt search chrome?)
Though you are right, I had some bias with the man page bit. Average users wouldn’t even know what man is, making it even harder for them. They would have to open a web browser, describe what they want to do somehow, and hope a copy pasted command does what they want.
I agree that GUI are better at discoverability.
However once you’re up to speed with CLI, it becomes much simpler and faster. While a GUI will still be more steps even after you become expert at using that GUI.