Skip to main content

Week 6[19-25.11.18] CLI vs GUI - Which one is better?


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.
2. Functionality
  • 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
Questions:
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 can use CLI, in fact I worked in FreeBSD at some point in my life, with no GUI at all, and it was not a plesant experience, and here is why: colours. Black background and tons of white small letters. Eyes get tired in an instance, and I have to constantly wipe tears out. Same effect with windows powershell, where background is blue. I am ok with sacrificing performance and robbing me of some functionality in order to be able to customise what I am seeing on my screen.
Wojtek Protasik said…
Depends on the use case. Considering I get the functionality I need using both I use mostly graphical interfaces, unless there task I'm about to get done is connected with other tasks done using cli. I think we programmers can all agree that you should know how to handle both.

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.
Filip Sawicki said…
First question is pretty hard to answer as it depends on type of software I use. Most commonly I use CLI as it’s more flexible and I have more control over what I’m doing. GUI’s are fine for simple and collaborative tasks or working with non-technical people. My experience with both approaches is pretty limited as I’m always choosing CLI as this usually yields best productivity for me. However this comes from the perspective of IT professional thus I’d strongly recommend everyone else to use GUI as it’s easier to navigate and the risk of making mistakes is also way lower.
Vladlen Kyselov said…
Thank you for your response, I struggle from bright interface and if I am using GUI I try to choose dark theme with big enough font.
Vladlen Kyselov said…
I am starting to use GUI only if it has all functionality that I am using and it really optimizes my work process, otherwise I always prefer to use CLI for more control.
Vladlen Kyselov said…
So, as I understood, you prefer using CLI, but recommend using GUI, am I right?
1) What do you use more CLI or GUI? Please, explain why.
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.
Vladlen Kyselov said…
Actually that`s why people are using GUI, it`s easy to use and there is no need in understanding all the process under the interface.
Unknown said…
I prefer using CLI over GUI just because it’s faster and more pleasant for my eyes. It’s actually pretty hard to create GUI which will be beloved by everyone but you mostly have 1 standard CLI that’s why it’s good to familiarize with it. As you’ve mentioned in your article GUI demand lower knowledge (the barrier of entry is lower) that’s why firstly I would try to use GUI in order to get to know how new system/software works but then I would definitely start using CLI because it gives lots more for me.

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.
Artem Lipovatyi said…
1. Initially, I used only the GUI. Recently I decided to compare my everyday tasks between GUI and CLI and I was surprised that some of them can be performed faster using the command line, rather than a graphical interface.

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.
1) What do you use more CLI or GUI? Please, explain why.

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.
Vladlen Kyselov said…
Unthoughtful copy-pasting could lead to even worse consequence rather than simple button clicking in GUI.
Vladlen Kyselov said…
I also prefer using CLI, because to my mind it is must have skill for anyone who deals with programming.
Iman Masjedi said…
in my opinion to execute a certain task with a CLI could possibly be faster than the exact same task in a GUI, but remembering what commands to type, is a lot harder than executing that same task by using your mouse or finger to point and click.
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.
Unknown said…
I think it depends on the case. Some things are easier to do in the console, such as searching files, changes in the directory structure, or using a git. The console can also be a bit unintelligible. GUI often makes it easier to understand what is being done and is more intuitive. I suppose that people outside of IT often do not know about the existence of something like CLI, so they do not even have a choice.
Unknown said…
1. It depends on the scenario, e.g.: I use above-mentioned GUI Git client integration in IDE as I find it faster than typing commands into terminal, copying files is also easier for me when I can see folders side by side and it is clear from and where to I am copying/moving files. However, there are cases when it is more convenient to use terminal-based tool e.g.: for accessing remote machines via SSH I don’t see a point of using GUI.
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.
Foodocado said…
It depends on the use case. In the work, I mainly use command lines because it's faster. However, programmers should know how to use both.

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.
Unknown said…
I hate Unix. I really hate this command stuff, because it is too unintuitive to use. You must google every single command you want to use, every single sign. And if you make a typo, you have to spend some time to find it, and when the command you wrote is big, it is even worse. That is why I prefer GUI and try to be as far from Unix as possible. It is too uncomfortable for me to work with it.
1. I use both. Depending on work I do. For small programs/scripts I don’t see the need of GUI .
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.
Unknown said…
I prefer GUI more than CLI. I think that working with GUI is faster than working with CLI, in GUI you can understand everything faster, to understand how to work with CLI you should read dozen manuals. For common tasks I use graphical interface.
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.
Unknown said…
This comment has been removed by the author.
Unknown said…
This comment has been removed by the author.
Unknown said…
Definitely GUI is better for me. Maybe because I'm not such a good programmer, maybe because a concept of CLI interfaces should be forgotten at the end of the 90's. I don't really know the reason why. But there was a time when I used to use CLI for git until I realize that many tools or git platforms have GUI for it. And I'm a happy person now because I think that GUI has more advantages than CLI. For example it's clear and simple and you don't need to remember all commands. Modern programming is something about "make it simpler", isn't it?
Cezary Róg said…
I mostly often use GUI. Graphical User Interface gives me the possibility to work fast with my everyday stuff. But some things are much easier to do with CLI. There's one main problem with GUI - it has to be good. In many cases it is, but it happens that using some programs becomes a nightmare. I don't think I can find any other advantages and disadvantages because it was covered well in this post. I don't have too much experience with different interfaces.
Unknown said…
I've use both CLI and GUI, but I propably use GUI way more. As for why, learning CLI commands takes a decent amount of time, and time is something that I have in quite short supply. Because of that, I prefer GUI, as learning to use them takes significantly less time, or even no time at all. However, as a developer I use CLI for certain things as well, as it is faster to use if you know it well (or sometimes there simply is no GUI - only a CLI). As for advantages and disadvantages, I'd like to mention that in certain cases GUI can be faster in absolute terms when you take the time that the user needs to perform an action into account - doing a certain thing in a GUI can take less time simply because it is easier for the user to do.
Marcin Mróz said…
I think that I use GUI more, I like when something has a nice and intuitive interface which enables you to do some tasks even if you don't have any experience in given environment. Also I work in Microsoft environment like Visual Studio or Sql Server Management Studio that I believe put strong impact on having GUI for every possible task which I really like about it. But it doesn't mean that I don't use CLI at all, in fact, some programming environments like Node.js or Docker that I also work with are used only with CLIs and it's not something that bothers me. Actually, I find them sometimes better and more suitable for some tasks, because you can do them quicker than when you would use GUI.
So to sum up, in general I rather prefer GUI, but using CLI is not a problem for me.
I prefer to use GUI, just because visual communication with a computer is better for me to understand what is going to be. I think, all the advantages of each of these methods depend on a personality. I know you and you prefer to work more with CLI, but for example, we have our classmate, who is in love with git desktop app which is GUI, you know who i'm talking about. Yes, sure, i used a lot git console and i'm using it still almost everyday, what about gu interfaces, i use a lot of them too.
I use more GUI than CLI because it is easier to use and looks much more friendly then CLI. Also very important difference for me is need of memorizing almost every option in the interface in order to work efficiently on CLI based systems because I really don't like memorising things by hard. Of course always it is possible to check existing options in help menu of CLI but if you need to check it everytime you want to do something is much less efficient. I don't have any unusual experience with interfaces but just from mu life I know that it was always easier, better and less error generating experience to work with GUI than CLI.
Szymon Gibalski said…
This comment has been removed by the author.
Unknown said…
1. For programming I use more CLI because it is easier and faster to use a terminal for running or debugging code. But I use also a GUI when it comes to operation system. I think that we can't say that CLI is better for everything because I don't think thank you dream about coming back to DOS systems.
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
1) What do you use more CLI or GUI? Please, explain why.
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.
Szymon Gibalski said…
1) What do you use more CLI or GUI? Please, explain why.
- 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.
I've been using GUI for my entire life. Ofcource I head about console but I always underestimated it just because I didn't now how to use it. Few years ago we had this course about operational systems where we had bunch of practical lessons dedicated to
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.
Mykhailo Reznyk said…
I was 9 years old when my family bought us a computer. It had Windows 98 OS. My father used it for work, but I, as a kid, was using it only for computer games. I started to learn programming when I was 15 years old. So all these six years my IT knowledge were pretty basic. I didn’t even know about existence of CLI. Well, of course I did, but I used to think that it’s only needed for some advanced computer magic. So, of course, GUI was way more natural for me and I couldn’t see any advantages of using command line. Now I look at things differently. I still use GUI a lot, but for work I prefer CLI. As was mentioned above, graphical interface is easier to use, since for most of the people visual representation is more natural. As it’s said, “Better to see something once than to hear about it a thousand times.”. But at the same time command line has way more options. A single command can have tens of sub options. For GUI it’s almost impossible to fit everything, since computer screen will be filled with tons of icons and tabs. But today, luckily, you don’t even have to choose between these two options, since a lot of modern software has both options.
Piotr Ciesla said…
For me, it's mainly gui but I also use a lot of cli to enter git commands for example. Why GUI because it's much more convenient I can multitask with ease.

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 use whichever makes more sense in the environment I’m currently in – if I’m browsing Internet and playing games on my Windows PC I’ll surely use GUI, but when I’m configuring things on a Linux server or managing code, I’ll rather use the CLI. I feel that comparing the two is very much apples and oranges, as they serve different users and different tasks. Speed is a relative thing, as I can imagine cases where performing a few clicks in a GUI might result in a faster execution than typing in a longer command. There are some tasks that CLI is simply not capable of, as displaying images or videos. Advanced tasks such as formatted text editing or 3d modelling are in the domain of GUI. I believe that both methods of interacting with your computer are tools that a consummate user should have experience with, and should know when to use either of them. One of my favourite examples of getting the best of both worlds is to have a Windows running a virtual machine with Linux, wired up so that both systems share resources, and Linux sends its program windows over the local network to a client program that displays them on Windows. Setting up a thing like this is a rather involved process, but gives you near limitless power over your computer, assuming you know how to utilize both GUI and CLI to their fullest extent of course.
I use GUI most of the time in my work and in usual life. I think that GUI is much more simpler to understand to people that have logical mind because when you see CLI you don't know what exactly you can do right now because you see usually black screen with line to write commands. All of the commands need to learn and remember but in GUI in most cases you see what you can do right now.

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.
Unknown said…
I find CLI much more faster that GUI so i rather use command line interface.
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.
Marcin Zając said…
1) What do you use more CLI or GUI? Please, explain why.

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.
Illia Lukisha said…
1) What do you use more CLI or GUI? Please, explain why.
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.
ExoKuzo said…
If a gui is done well i take enjoyment from using it, thus said if its done poorly i do tend to look for CML alternatives if they are aviable.

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.
To provide interaction of the user with the operating system and with application programs the interface is necessary: transmission system of commands of the user to the operating system and answers of a system back to the user. Such interaction represents "dialog" of the user with the computer in special language, whether it be the language using the signs similar to words and expressions of a natural language, or language of images. For today two basic opportunities of the organization of the interface are known: graphic interface and command line. And in each other case the option is used. That which is more convenient. I think, the graphic interface is what the normal user wants to see. And the command line interface, more is suitable for advanced users.
I’m an iOS software engineer. I use both CLI and GUI, 50-50. I basically use them according to their advantages you mentioned. I use CLI with tools that require granular control, automation and with tools that I don’t use very often. I switch to GUI when it makes my work easier — e.g. I code in IDE, not in vim because it gives me more contextual features.

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.

Popular posts from this blog

Week 12 (12.01-18.01.15) Are you an early bird or a night owl ?

Owls are nocturnal creatures. They’re wide awake at night and they sleep during the day. If this sounds like bliss to you, then, like about 20 percent of the population who find themselves most active at around 9 pm, you may fall into the same category as our feathered friend. Night owls often have difficulty waking up in the morning, and like to be up late at night.  Studies of animal behaviour indicate that being a night owl may actually be built into some people’s genes. This would explain why those late-to-bed, late-to-rise people find it so difficult to change their behaviour. The trouble for night owls is that they just have to be at places such as work and school far too early. This is when the alarm clock becomes the night owl’s most important survival tool. Experts say that one way for a night owl to beat their dependence on their alarm clocks is to sleep with the curtains open. The Theory is that if they do so, the morning sunlight will awaken them gently and natura...

Week 11 [03-09.06.2019] The problem with ecological cars emission in UK

The problem with ecological cars emission in UK Since the adoption of the European Emission Allowance Directive in the European Parliament, all car makers have tried to submit. Since 1992, the Euro I standard has been in force, which limited the emission of carbon monoxide to the atmosphere. The Euro VI standard currently applies, which limits the series of exhaust gases. These include: hydrocarbons, nitrogen and carbon oxides, and dust.   The most significant change was brought by the Euro IV standard. For the first time it introduced the limitation of nitrogen oxides, which are responsible for the harmful compounds of smog.   What is smog?   Smog consists of sulfur oxides, nitrogen and carbon. In addition, solid substances such as suspended dust (PM). Dust suspend in atmospheric aerosols may be in liquid and solid form. These can be particles of sea salt, clouds from the Sahara and artificial compounds made by people. These compounds...

Week 4 [06-12.11.2017] This is what happens when you reply to spam email.

James Veitch is a British comedian. In today’s Ted Talk James with characteristic for himself a sense of humor shows how he deals with spam emails and why responding to junk messages may be sometimes dangerous. Questions: What do you think about James’s  way of dealing with spam? Why are junk messages legal, even though it sometimes may be a fraud? Dou you have a problem with spam? How do you deal with with it?