GUIs vs. CLIs

I beg to (totally) disagree. No GUI will ever offer the same functionality as CLI does. With the huge number of commands (and flags for each one,) this it is just impossible. Therefore GUI is and will always be inferior to CLI.

The worst operating system is the one that tries to convince the user CLI is “unnecessary” and their GUI does it all equally well. That’s exactly what that very popular bloat/spy-ware “operating system” does.

2 Likes

Instead of emulating a teletype, one could have a graphical environment that is fully programmable and malleable. Consider a Smalltalk environment for example.

Textual interaction does not go away, but one could have better graphics and much better interactivity.

2 Likes

That’s not true. GUIs are incredibly good at showing information live, the mouse allows to navigate extremely quickly, and the information density can be quite higher than what you can do with just text.

The two are completing each other.

You can very well have bloat and spyware in CLI tools. What about the Go compiler that sends telemetry data to Google? What about the ubuntu package manager which shows ads about their paid offers for security updates?

The fact that other operating systems have bad GUI or bad CLI experiences is not a reason for Haiku to go the same way. We can have both a good GUI and a good CLI.

5 Likes

I’m glad haiku developer think have GUI is just not afterthought. We not living in 80’s anymore, with limitations on ram and underpowered CPU. Have graphics user interface is like standard requirements these days

So does pkpgman itself with very nice progress bars during system update…
I would also argue that the mouse is way slower than the keyboard, especially in programming sessions.

I never said GUIs are useless, never said Haiku should go the CLI way - how could it be anyway, considering the iconic GUI legacy it preserves?
All I am saying is, for simple tasks both GUI and CLI are of course more than capable to get the job done. But when things get serious, you will need the CLI.

Of course you can. The fact there are bad CLIs - as well as the fact there are bad GUIs - is irrelevant. The point is, someone said a good OS should eliminate CLI, making it “unnecessary”. And my reaction was this is completely wrong. A good OS should provide a good GUI, but that GUI will never do as much you can do with CLI. That doesn’t mean GUIs should not exist.

I was not aware Go compiler does telemetry, but I am not surprised at all, considering who is backing it. I am also not surprised Ubuntu ended up spitting ads. I just tried it many years ago, quickly called it “Crapbuntu”, and never used it again.

It is the standard, and it works, to an extent - not for everything. The problem is because of that people tend to be afraid of even opening a Terminal. I heard people saying “I don’t use the Terminal because I don’t know machine language” (sic). A good OS should have GUI without disencouraging the use of Terminal.

Another problem is that once GUI became the standard, big corporations make use of it by oversimplifying it and do all kinds of nasty stuff in the background. This is practically the norm nowadays. Have you ever tried to install a certain “operating system”? It asks as little as possible - basically nothing - and in the end there is a big button saying “Click here and leave it all to us”, with alternate options in tiny letters. That’s just bad GUI, you may argue. But that bad GUI becomes the standard as well.

Using both the mouse and keyboard is faster than using just the keyboard. How could it be otherwise?

Making it unnecessary is different from eliminating it. It only means “if you don’t want to use it, you don’t have to”. You can pick the tools that match what you are doing and how you want to do it. For some people, that’s the GUI. For others, that’s the CLI.

The natural conclusion here is that all tasks should be doable using the GUI, and also all tasks should be doable using the CLI.

That is completely unrelated to GUIs. Big corporations would have done it with a CLI, will do it again when it’s a VR headset, and probably also would do it with neural implants pushing ads directly into your brain if they could. The problem here is not GUI, it’s big corporations.

Why not? If that covers the needs of 99% of the users. We will probably do something like this for Haiku installer as well, because people are lost otherwise and fail to install it. And there is no reason to make it such a complicated process where you have to know if your machine is based on EFI or BIOS, you have to copy some files manually, make sure to create a partition and format it, and so on.

Clearly, that’s not up to the standards of ease of use we are pretending to have, and it’s one of the things where we’re lagging behind other systems. And it’s also the first thing most users will experience of Haiku. Talk about making a good first impression.

Once people manage to have the system set up and working, and do some basic tasks, maybe then you can progressively guide them towards making more effective use of their computer, and maybe learn a CLI trick or two. But not if they are drowned in technical details before even having seen the desktop.

3 Likes

+1

… with an “Advanced” option as well, of course.

3 Likes

Agree 200%

Exactly. Like most good OSs had in the times of yore.

2 Likes

You have to move one hand away from the keyboard to reach the mouse, then move the mouse pointer it to the right position, then click the right mouse button - and then you have to move your hand back to the keyboard to type. This is always way slower than just using the keyboard. It is more pronounced in programming sessions - but I’m sure you already know that better than me.
You don’t need to be a programmer to learn to avoid the mouse. Let’s say I just want to startup a program. I’ll use a shortcut I made for that, or at least I could use QuickLaunch. Using the mouse to navigate the menus would be too slow to even consider it as an option - it should be there for novice users, sure, but it’s still slow.

For some simple tasks (such as simple selections from menus, etc), and provided you will need the mouse after that (e.g. for internet browsing - although even that is debatable), it’s perfectly fine.

Because it also means the user learns nothing about the operating system they use. And that’s the best-case scenario, when the operating system was not made with the user being treated as the product (this includes Haiku, but it is the exception rather than the rule). Otherwise it’s way worse than that.

In most cases, it means “Click here and you will get a spyware and advertisement galore before you even log in. You will use our browser, our store, our everything. We will take pictures of your screen and violate your privacy in all imaginable ways, then sell all your data. Oh, and we will make sure it’s hard, if not impossible, to escape this trap”.

Yes, it could be otherwise… but it almost never is. And yes, the same could be done with a CLI, but this is rarely the case.

The Cli is named a shell because you use it to interact with the operating system. It is not the operating system itself, the only thing you learn by using the CLI is how to use the CLI. Not anything about the OS itself. Similarily all you learn with a GUI is how to use this GUI.

There is nothing more technical or more nuanced about a CLI than a gui. Other operating systems beeing trashy, or some wanting to wrap their UI around the cli (by wrapping CLI tools) doesn’t change that.

Sure, if on linux your UI is only a “frontend” for a bad scripting interface just using it directly is probably faster and offers more options. But that isn’t what a UI normally does (and in particular isn’t how UI on Haiku works)

Anyhow, any particular reason you replied to a 4 year old post to tell them they are wrong about not wanting to use a CLI on their desktop? (especially with Haikus beeing exactly as terrible as the one linux has)?

1 Like

Not for me.

I use both. I use vim keyboard shortcuts but also use the mouse a lot. Text selection, using middle click to paste things, menus for options I don’t use frequently, drag and drop, …

Maybe there are some quirks to my setup. For example, I’m left handed, which means my hands do not have to go over the arrow block and numeric keypad to grab the mouse. It is right there, and easier to reach than the cursor keys.

If you are not left handed, that explains the popularity of “85%” keyboards (removing the arrows and numeric keypad) as well.

I also use several open windows and the mouse allows to quickly move and rearrange them, and, using focus-follows-mouse, to switch focus to the window I want without having to remember their focus order in the window manager and how many times I should press alt-tab to go to a specific one.

That only means they have spyware AND a good user interface. The good user interface is what makes the user use their system despite the spyware. If they had spyware and a CLI only system, no one would use it.

It is a statement to how important a good user interface is. Even if everything else about the system is bad, people will still use it. And the opposite is also true: you may have the greatest, fastest system around, if the user interface is not friendly, no one will use it but you.

1 Like

Be realistic, 99% user don’t care about “learn os” we just want install software and use it.

1 Like

That makes sense. Being right-handed myself, that’s also the reason I have a TKL keyboard (85%), and recently I tend to use my 65% keyboard more often.
As for managing windows position/size, on GNU/Linux there are some (not all) window managers that let you move a window around with the keyboard very quickly (like move it to the top-left, top-right, center, etc). You can also resize them (vertically, horizontally, or arbitrarily) with keyboard shortcuts. I didn’t find a way to do such things in Haiku, but I still use the keyboard whenever I can, e.g. for switching to another window.

GUIs tend to be as simple as possible and, as such, they tend to hide most of the details. Usually you don’t need them, but what when you do? Even the name of the commands used in the background are unknown to the GUI-only user; so are most of the flags you can (and sometimes should) use. At the very best GUIs just include some of those flags as options; never all of them.
The devil is in the details, as they say, and I’m not sure how well you learn an operating system (or at least the commands you use to communicate with it) if the interface you are using just hides them.

None other than the thread was renewed recently (two days ago, and not by me).

I would also argue that CLI is not terrible at all in both GNU/Linux and Haiku; neither is Haiku’s GUI, and some of the GUIs in the GNU/Linux world (some others are terrible indeed). To each their own, I guess.

By the way… speaking of CLIs, is there any reason command line in Haiku supports common command-line shortcuts such as Ctrl-A, Ctrl-E, but not Alt-D (to delete a word to the right of the cursor)?

The Alt+key combinations are treated as GUI shortcut keys and not passed directly through to applications without jumping through some hoops in the code. Unknown or unregistered shortcuts are just blocked completely. Terminal does allow using the windows key as alt, but it’s not quite the same :frowning:

I actually use a kludged version of Terminal that allows alt keys by responding to KeyUp() calls which do get passed to the app, but it’s not a real solution. It would be better to allow Terminal to override the DispatchMessage() call and handle them properly.

Without arguing against CLI or GUI, I believe that using one or another is the matter of:

  1. Personal habits. Somebody is more comfortable with GUI, somebody else with CLI.
  2. Specific task. Some tasks are easier to be done in GUI, others in CLI.

Probably the following illustration is worth mentioning. CLI is like a spoken language with vocabulary and syntax, GUI is like a sigh language, very descriptive and intuitive. When somebody does not speak local language, he / she uses many signs in attempt to ask or explain something. But when the language is known, speech is preferred way to communicate.

Likewise, when somebody is new to computer interface, point & click experience helps discovering what a computer can do. But for somebody more experienced, one long and sophisticated command is usually easier to write than explaining the same idea in countless clicks.

2 Likes

I don’t really know why this discussion was started or what the OP wanted to achieve with it.
As far as I understand the goals of Haiku we are a desktop OS that aims to be user-friendly, also for non-technical users. Going by that it’s pretty clear to me that it is important that all important functionality is available via GUI before we release R1. That said, as someone who likes to use the commandline I’m happy that many (if not all) tasks can also be done on the commandline.

Why argue about GUI vs. commandline when we can have both?

2 Likes

In the discussion about Haiku’s Native Shell proposals, discussion abounded about alternatives to BASH. I’m not fond of POSIX command-line utilities as a whole but scriptable shells seldom use GUIs and those that have used GUIs are seldom long-lived.

I like visual languages for scripting purposes and find collapsible tree gadgets useful for structured programming representations. Unfortunately, where visual languages excell is primarily in locale support, such that native iconic representations don’t require English knowledge as a spoken language.

Where they fall flat is that most code is so ingrained around plaintext that the developer needs to reinvent tools and libraries to such an extent that no effort is saved in using graphical scripting languages anyway.

1 Like

CLI is great, because you can document. Show what you need to do, in a complicated sequence to address some problem or objective. Show what you did, to relate a sequence that didn’t work and ask what was wrong. (Even just know what you did - yesterday I did something by accident to that little window at the top of the desk bar, when I clicked on what turned out to be not exactly the right place. No idea what really happened.) There are other good things about this concise way of expressing some kinds of info, but the tie to documentation is sufficient.

CLI is terrible, because you have to start with documents. No one wants to read documents to learn about a system they may not be using for long, and nothing is for long any more.

40 years ago I was sitting around in the computer room listening to a girl moaning about her password access not working. I had to go down to the computer center for something and looked at the manual for the application she was trying to use, and came back and solved her problem: her password was “password”. Documentation can do only so much.

1 Like

GUI has the advantage of discoverability, i can use Haiku Depot to discover what Software is available, i have categories to filter, sugessted packages, even Pichtures and ratings for the different programms, great.

However if i know exactly what packages i want, the cli will always be fater and more convenient:

pgkman install libreoffice putty inkscape gimp

Also it is easily transferable to other systems:

Debian/Ubuntu Linux: apt install libreoffice putty inkscape gimp
Windoes (shudder): winget install libreoffice putty inkscape gimp

It is also MUCH easier to tell vebally “type pkgman install falkon”, eg over telefone than “Go to menu applications haiku depot …”

2 Likes

Try to tell it to someone who doesn’t speak English. I did, it was not fun.

4 Likes