How to avoid user frustration

I think YAB creating native (compiled) apps would be great for beginning Haiku programmers.

Or something like this:

If YAB would create CPP source code that can be easily compiled, you can study the differences between the Basic/CPP code and learn from it.

2 Likes

If I look at the whole thing naively and dryly, then in the end one would only have to export the yab gui elements as cpp or c. Exporting the whole yab program probably doesn’t make any sense, I’m really only interested in quickly building program structures.

These are the possible gui elements of yab: https://www.besly.de/index.php/en/development/yab/the-yab-what-is-what

Because of a platform independent export it would be interesting to export this for qt or other frameworks.

But we’re getting too far off topic now

sounds like a perfect area for yab programming :slight_smile:

  • Commands are fixed in the system, so you can list them
  • Determine the command options
  • Show help (.h or --help) and version info (-v or --version)
  • An input field for executing the command would be possible
  • In addition, a drop zone to insert files, paths, etc too

Basically it’s about whether Haiku can be used without a terminal.
I think it is. However, there are moments when a terminal is still useful or helpful, because not all basic functions of a command are equipped with a gui-based form.
For example create a tar file with options.

For the basic stuff, Haiku is terminalless to use.
I need the terminal.

2 Likes

My start at the Yab to C++ transpiler is at https://github.com/SamuraiCrow/Yab2Cpp. It has no link to the Yab parser but has a code generator based on the C++ state machine mechanism. It follows the following form:

while(state!=terminal_case)
{
  switch(state)
  {
    case label_num:
      ...
    case label_num2:
      ...
      /* jump to label-num */
      state=label_num;
      break;
    case label-num3:
      /* end */
      state=terminal_case;
      break;
    default:
      /* should never happen */
  }
}
4 Likes

@SCollins
Though in this thread there have been comments to the contrary, the original post did propose getting rid of the “Terminal” so let me throw in my vote for continuing to make a CLI available alongside any GUI launchers. One of my favorite programs, Lynx, by its very nature runs in the Haiku Terminal. I don’t need nor want a GUI launcher to make that happen. Also, if I’m having trouble with my Haiku system for any reason, I’m going straight to forums (case in point, this one) and searching for ways to fix it. I may find GUI clicks that need to be made, I may find commands that need to be entered in Terminal, or maybe both. Being able to do both is like a driver who can drive stick as well as automatic, and maybe this ability makes me a power user. Haiku should remain as excellent a system as possible for power users as well as GUI only users in my opinion.

Thanks one and all, for making this system what it is today!

Best,
…Monty.

5 Likes

I think a powerful operating system is one that is usable, scriptable and extendable for both the CLI and GUI and should be easy to use and intuitive all around. Feature and usability discovery should be driven with guessable and common sensical references.

5 Likes

Somebody got what I was trying to convey, if the system cannot be fully used without the cli, fix it

3 Likes

I would actually propose the other way around as well: Make sure everything that can be done in UI can be done on the terminal as well :slight_smile:

Also I think this is clear, but maybe to emphasize: I think this discussion is about the core OS functionality. There will always be additional applications done as GUI or done as CLI, targeting different use cases and audiences.

4 Likes

Well that has been more or less a design goal of Haiku since the very start and everyone agrees on it. I have no idea what you all are screaming about here since everyone agrees.

11 Likes

Me neither. The only productive use of this thread that I see is if people would actually list the things that still need work in this regard in their opinion. Or even better also create tickets.

1 Like

Using Haku with Keyboard only, is not working in some cases!

In Deskbar and with lots of entries…

As going back and forth in Deskbar.

3 Likes

Haiku can run without any shell interpreters installed after some small fixes. Unlike Linux and *BSD, Haiku do not depend on shell scripts so much.

1 Like

I hate to bring it up, but look at Windows as an example (XP-7, not any atrocity made after those). Any average joe can pick up Windows, do a couple things and know how to use it (of course, mastering it is a more complex task that only is for the most dedicated), Windows has a familiar UI with things where you’d want them to be, and it just generally makes sense to use.
Now let’s introduce that same average joe example we just used, and apply it to Ubuntu, they would know how to do the simplest of tasks, but when something a little bit intermediate comes up (office/school tasks, gaming, software development). If they aren’t already very familiar with computers and can easily do very advanced tasks, they are completely lost. Most Linux distros force you to use the CLI for tasks that could’ve easily been done with a little more effort resulting in even the most simple GUI made for it, and even then things are always increasingly more difficult due to the attitude that Linux has adopted in my eyes (Either “free” software or no software), and I think that’s what the basis of this thread was likely made in the eyes of.

1 Like

Mostly accurate, but there have been countless times that I had to navigate to a some kind of Windows support forum and/or shady tutorial website and enter some cryptic CMD.EXE commands. Not to even mention CHKDSK.EXE is still a thing. Mostly applies to disk partition related problems too.

1 Like

Yepp ! … smitty was rulez !..

Also I used YaST too, was great.

Such people like me, who socialized on DOS – the computers are machines with keyboards and screens – and the magic happens AFTER a command issued : you get response ! … not necessarily happens big thing but starts interaction with a machine without a person. Of course the person was there - the programmer, the developer - but actually you are there and the machine and what happens … depends on your knowledge and the programmed possibilities of the machine itself.
AFTER GUI – all of the people who HATES TO LEARN something how it works, just want to USE something without knowing how it works - and as computers are complex and universal machines basically it should have known by their users how to use it well.
Many times the GUI cause frustrations and disappointment when used - you accomodated to one, and after you struggle to get it on all systems as you know that well, and you feel lost when an another should use just as that system (UNIX, Mac, Linux, BSDs, Android, etc…) uses different.
You can use GUI against intended way - this way stories about simple knowledge users. One who thought he “copied the program” when he copied the launcher icon to a floppy … and others. For them the program was its launcher icon, so for me the GUI that cover the machine complexity and structure that should understand to use it efficiently and talk about when you have a problem with it. I don’t hate people for that they don’t wanna learn what is in the deep or why that just does not work as they figured, but later they say " this and this just crap - it does not work " and that’s what I don’t like.
I admit not all programs written such way to give back prompt and clear error or warning messages and / or handles errors such way to support their users what could happened … but as you can use terminal .: you have a chance to search for logs or other files, simply see all filesystems’ status, filter the logs, read the end of file without roll down to the end with a mouse wheel, find a file, etc. that just simply faster as it is on a GUI.
I can do there exactly what I intended to do – if I’m careful and know well what I do.
Please, just stop whinning about character driven input methods – simply avoid to use it if you do not like it. Simple.
Thank you.

EDIT : fixed some few typos – those left after my first checks

2 Likes

Not everyone is interested in dealing so deeply with a computer, they use the PC, laptop, whatever to look for information on the Internet, make purchases, watch videos, listen to music or write and read e-mails. Why does this person now have to learn to talk to the system using a computer language? Haiku is a single user desktop system, which means it is exactly what it says it is, a system for using applications for personal use. So while it’s nice to be able to work in the black hole if you’re familiar with it or need to use it for other reasons, but for a normal user, someone who doesn’t program, who doesn’t write scripts, someone who uses the system for business that completely unnecessary. I am for user interfaces for all applications that are beneficial to that user, making it easy for them to use the system. These should be simple, largely self-explanatory, free of extras, require no study in computer use, work and most importantly be found in the application menu after installation.

Who are these regular users? Certainly not us haiku friends, programmers, porters, testers. No, they are old people, like young people. Perhaps there will soon be many women who have interests that have nothing to do with computers, except that they use them as tools.

I love HaikuPorts more than a YAST or other installation tool, even though I still find it modest that with a you don’t get everything listed with a, but everything with an a in it, it’s easy to set up, contains explanations, installs only the bare essentials are clear, meaning it does what you expect it to do if you’re not the haiku guru.

In my opinion, less is more, but what is necessary has to be. If users demand a gui for this or that program, why not give them this one? For example, I do this for myself in yab. I like working with a gui (yes, it can also do it in a black hole) and it doesn’t bother me a bit as a user that not all possible functions are included, but only the most frequently used, target-oriented functions (inexperienced people are killed by the mass of functions and can often cause more damage than they get help from it).

2 Likes

Are you sure it is not your own bias because you already know about Windows?

If you never used a computer before, it is not that much obvious. In fact, some user experience studies in the 80s shown that it might be easier to understand and use a command line.

That doesn’t mean we should give up on GUIs: they are great at showing a lot of information and allow quite quick navigation in it. That makes them very efficient and, if designed well, self-explaining for the trained users. But, that relies on a lot of conventions that have to be learnt (how a button looks like, what’s the difference between a checkbox and a radio button, etc).

And, yes, of course Haiku is primarily a GUI based system and this is what we go for. I still don’t understand why everyone has to repeat this obvious thing here as if it was under the menace of, I don’t know? Linux users who think command line is okay? And just as obviously, Haiku will also keep its command line interface and we will do our best so that it is just as friendly and easy to use as the GUI, because there is no reason it would be any less good. Then everyone can decide for each task how they prefer to do it.

4 Likes

Do you have links for these? Makes sense if you think about it, would make for interesting reading.