CLI (Command Line Interface) or GUI (Graphical User Interface) , which one is better. Nowadays more and more often developers are getting used to use GUI solutions rather than CLI. To be honest with current powerful hardware it doesn`t really matter which solution to use, but what if we are dealing with some high loaded program?
To decide which one is better we simply have to compare their pros and cons:
1. Ease of use
- GUI offers easy to use visual presentation with immediate visual feedback in most cases, whereas there is often no obvious feedback in CLIs responses. This helps to learn much faster and easier.
- Starting from CLI requires higher degree of memorization and familiarity.
- GUI can basically not include some functionality that is available in command line interface. So the CLI provides greater flexibility of use.
3. Speed
- No doubt that using graphical interface requires additional resources, thats why CLI wins in this part.
4. Multitasking
- Depending on what graphical interface offers it generally has a higher ability to operate multiple tasks at the same time with ease.
5. Scripting & Automation
- With a CLI, users have all the control over the file system and operating system, and the tasks become simple. You can create a script that contains a few lines of command and it will do the work for you.
- Although GUI’s can create shortcuts, they do not readily support scripting or automation. For common tasks, a user must repeat each action within the GUI manually. That helps to prevent errors or typos.
After analyzing advantages and disadvantages we can say that it depends on the requirements. One tool might be better for this situation but the other one can be the best tool for another occasion.
When to use command line interface:
- Less memory consumption
- Strong system control over system
- Something needs to be scripted and automated
- Do things at scale
When to use graphical user interface:
- Simplify your work
- Make results visible and more user friendly
- Make the barrier of entry lower
1) What do you use more CLI or GUI? Please, explain why.
2) Do you have other advantages or disadvantages of using CLI/GUI?
3) Do you have some interesting experience using different interfaces?
Links:
https://www.cybrary.it/0p3n/command-line-interface-cli-vs-graphical-user-interface-gui/
https://techdifferences.com/difference-between-cli-and-gui.html
https://tableplus.io/blog/2018/08/cli-vs-gui-which-one-is-better.html
https://www.computerhope.com/jargon/c/commandi.htm
https://www.computerhope.com/jargon/g/gui.htm
Comments
I think you covered basically everything important. I could thrown one more, sometimes it's easier to understand what is going on when you have visual representation of it. On the other hand you can read logs from cli, but those get you confused even more, so...
I've been using many cli tools and i always appreciate it when they are done aiming for perfection and assuming I'm an idiot. It's always nice to learn something only by using it when it's well documented, or even better, when it's intuitive.
Depends what I'm doing - e.g. for Git I prefer using GUI - IntelliJ has a great integration with Git, and it's simply faster and more redeable.
For files traversing or other operations I prefer using CLI, because if You work a lot on remote servers, You have to learn CLI.
2) Do you have other advantages or disadvantages of using CLI/GUI?
Maybe a disadventage of using GUI might be a fact, that You can use some tool for a really long time, without any knowledge hot it works under the hood.
It’s hard to add other advantages or disadvantages of using CLI/GUI because the most important ones have already been mentioned and I can’t come up with another one now.
Summing up, I would say that non technical people would mostly prefer using GUI because it’s more intuitive and understandable for them and on the other hand technical people will find CLI better because of flexibility but I know lots of developers that prefer using GUI over CLI.
2. For me, the main advantage is that I can easily repeat the command I need. For example, in the case of a GUI, I have to repeat the clicks of certain buttons, but in the CLI it is enough for me to copy and paste the desired command (or return above) and press Enter.
3. No, I do not have.
I use both, it's hard to say for me how it looks in percentages or something. Why? Because I work as a software developer, so command line is something I have to deal with every day.
2) Do you have other advantages or disadvantages of using CLI/GUI?
The main problem with CLI is fact that it should be used only by experts. I can not imagine a regular person that is using CLI over GUI. Also there are programs like PhotoShop that simply can not be without GUI.
3) Do you have some interesting experience using different interfaces?
Nope.
A CLI is far more dense than a GUI, i.e. a lot more information can be communicated in a small amount of time than what would otherwise be possible in GUI-land, where interaction is based on Windows, Icons, Menus and Pointers (WIMP).
The big draw-back of a CLI however, is that it is not very natural and takes a lot more cognitive processing to remember and execute the different command combinations.
2. The biggest advantage of using CLI is that it is always supported method of interacting with operating system and GUI tools are often not supported when it comes to connecting to remote servers or services.
3. Even if I use some GUI-based tool for performing some task, from time to time I try to perform this task using terminal so I am not out of touch with useful commands.
Sometimes we can forget the command and we need to be supported by the GUI. I always had problems with remembering GIT commands. With the assistance of GUI, I am able to do everything.
No, I can't recall any.
2. I would say that it is also kind of comparing apples to oranges. Some programs can’t be done only by using CLI. It is also super uncomfortable for common user not to have GUI. I think that the best part of CLI can be that it can help automate some processes. But it is also extremely frustrating that there isn’t much of standardizing in CLI commands. Even similar programs can have entirely different commands for the same things.
3. Not really, only with text-based user interface when need of going into BIOS.
GUI is more user friendly, you shouldn’t read manuals, remember commands and arguments for this command. I agree with mem above, for example to unzip zip archive in UNIX/Linux you should remember full command and arguments or use browser to get it. It’s slower than click several times in GUI.
I usually use CLI when working with server part of application. Now I’m making my diploma work and I use Tomcat for server. For me it’s better to use CLI than write GUI for server. Also I get all information that I need to know from CLI.
So to sum up, in general I rather prefer GUI, but using CLI is not a problem for me.
2. Sometimes when GUI is not well over-minded it is hard to use it but I think that also CLI programs can be hard to use because of their complexity.
3. I use CLI and GUI everyday but I don't know if I had any special adventures related with interfaces. :D
It depends from on the type of task. Usually, I use more GUI then CLI.
I think, because I live in Win OS ecosystem :) All the specific programmer tasks I do in CLI, for example Git Bash or Docker (no GUI support). When I use CLI, I exactly understand what I'm doing :)
2) Do you have other advantages or disadvantages of using CLI/GUI?
No, I don't have any other minds about advantages or disadvantages of using CLI/GUI, except listed above.
3) Do you have some interesting experience using different interfaces?
In Win OS a good choice for terminal is ConEmu/Cmder.
- I use GUI more often because I really enjoy products made by JetBrains. I use RubyMine for coding and managing my database. I like how they created a simple and clear GUI for interacting with Postgres, it helps a lot if you have to create an index or debug a large SQL query. Of course, I also use a CLI for running my server or for debugging my code.
2) Do you have other advantages or disadvantages of using CLI/GUI?
- No, just use what you like. We can say that "CLI is faster" but when you do not know how to use it you will probably spend more time on googling the answer rather than simply using a GUI.
3) Do you have some interesting experience using different interfaces?
- I can only recommend "ITerm 2" and "oh my zsh" if you want to improve your console experience while using MacBook.
Linux CLI. And still I didn't find that helpful. Half year ago I got a job where I was also provided with remote linux account. Then I started using CLI and to be honest I really liked.
One of disadvantages of CLI is that you're not able to visualize the content of a directory. You can see only list of text with names and bunch of additional information about files.
One of advantages is for instance if you want to move or copy a file/directory in CLI you new to type only one command 'cp path_to_file destination_path' where in GUI you need to open directory with the file then copy and than open destination directory and finally paste it.
I guess there is nothing special in my experience of using CLI I just enjoy doing it.
Another advantage of GUI is that if it's designed correctly it's simply beautiful. Beautiful things attract humans. Cli is just a combination of text and sometimes color but GUI is so much more than that. It's positioning of the text size of it, animations and a lot of interactions for user.
I have used also voice commands to control computer but at this time their have poor interface so I think at this time this two interfaces is most useful.
I think that GUI is much more simpler than CLI but can do less. On the other hand with CLI you can do much more complicated stuff but it is harder to be familiar with.
No I don't have any.
It's difficult question, becouse as a developer I use both. I think I use more GUI, becouse it's easier to use and more comfortable, but ofcourse not always for example in case of automation CLI is much better option. When I start working on a new project one of the first thing for me is write makefile. Tools like git, I use both mainly CLI commands, but to compare files I prefer GUI.
2) Do you have other advantages or disadvantages of using CLI/GUI?
In reference to speed for remote access for example to server is better to use CLI and as said Andrzej Niewiadomski I can't imagine regular person who use CLI.
3) Do you have some interesting experience using different interfaces?
No I haven't.
I prefer GUI, well created GUI will include all features available in command line, but instead of remembering thousands of commands, you just need to remember where the button is. Also GUI help to create common and comfortable interfaces, there're all important things are under the hand, while less important are hidden under menus.
2) Do you have other advantages or disadvantages of using CLI/GUI?
GUI is more user friendly, because command line scares people that are not developers, and they don't need to actually. So for me, casual user don't need to meet with CLI.
3) Do you have some interesting experience using different interfaces?
Sometimes when my source control tool fails to do some stuff, I open the terminal and look what went wrong, and often when I do the same work form command line, it magically works. But I think it depends on what you need to do.
With Nicely and intelligently done GUI we can show more to the user than in CLM on one screen and in easier to read and use format. Designing good and easy to use GUI goes miles into the projects life.
Yes as stated earlier one of the programs i tried using had horrible GUI that too many tries to get used to and still felt bad, while its command line options were easy to use and intuitive tasks done in minutes in GUI were simply done in 3rd of the time with a simple to use command line command.
I think expertise in CLI is very important for devops and people who work with UI-less computers, such as servers. Another advantage of CLI is that it has the same interface no matter the operating system — e.g. Git commands are the same on Linux, macOS and Windows.
I don’t know if there are any other interfaces than GUI and CLI for interacting with a computer. Well, maybe voice recognition. I sometimes use Siri while I’m driving. It provides me with some utility, but it’s generally stupid so I don’t rely on it much.