This is also true for CLI interfaces. It illustrates the popularity of GUIs - much to the dismay of CLI enthusiasts everywhere.
Edit: Yes, a -help or "help" command can be used to list the menu. But then this command has to be known beforehand. What if a clever designer decides to use -assist or "assistance" instead?
IVR, is supposed to be 'intuitive' or 'natural' or however one's preferred marketing dialect describes it. The assumption is usually flipped - that tools are supposed to assist those ignorant of their use[1].
It has been a long time since normal users have been expected to use a CLI. If you're looking at one, you choose to. This is not at all true of IVR/Sirlextana.
[1] Of course, they don't serve the caller, they serve the robot's owner, so interests are only aligned to the extent the robot efficiently helps the caller with their goal, which adds an additional layer of opportunity for frustration.
swipes to the right
> Message archived.
No wtf.
undo
Guess it doesn't.
You really don't have this option with voice. On the other hand, when I visited my mother I was surprised that she figured out that Google Assistant can provide her with nutrition information. She would have never figured out by herself on a CLI or menu because it's very intimidating.
This somewhat contradicts my previous comment about how much I dislike voice interfaces but they probably have some strengths.
And you get to enjoy fumbling around trying to guess whether this particular program's magic incantation to summon help is "help", "-h", "--help", "?", "/?"...
On voice interface, your best chanse is to connect to an actual intelligent being as soon as possible because getting the options is a frustration by it's own.
If I'm saying 'help' it means I've tried that and failed, so it's not clear what the benefit is.
Think back to the earliest programming courses people take:
What's your first name: Jack
What's your last name: Ch
Hello Jack Ch!Linux Newbie:
"I need to find out how much space I have left on this machine."
> freespace
bash: freespace: command not found
> diskspace
bash: diskspace: command not found
> disk info
bash: disk: command not found
> diskinfo
bash: diskinfo: command not found
> man disk space
No manual entry for disk
No manual entry for space
> help disk space
bash: help: no help topics match `space'. Try `help help' or `man -k space' or `info space'.
(looks it up on the internet) > df /dev/sda1
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 19478160 1370768 17094912 8% /
... AND that's why GUIs are preferred by most non-technical computer users.EDIT: Maybe I should have said 'CLI Newbie' - I am in no-way singling out Linux here.
$ apropos space
CORE (3perl) - Namespace for Perl's core routines
arpd (8) - userspace arp daemon.
CMSG_SPACE (3) - access ancillary data
CUDA_ERROR_INVALID_ADDRESS_SPACE (3) - (unknown subject)
cudaErrorInvalidAddressSpace (3) - (unknown subject)
df (1) - report file system disk space usage(Seriously though, reading the manpage for man is where I first learned about apropos.)
Google "linux how much space on drive" and the first hit tells you exactly what you need.
Another question someone might ask is "how do I change my password". Google for "linux change password" and there is a special help box right at the top of the search results.
apropos password and you get this enormous list:
apg (1) - generates several random passwords
chage (1) - change user password expiry information
chgpasswd (8) - update group passwords in batch mode
chpasswd (8) - update passwords in batch mode
cpgr (8) - copy with locking the given file to the password or gr...
cppw (8) - copy with locking the given file to the password or gr...
cracklib-check (8) - Check passwords using libcrack2
create-cracklib-dict (8) - Check passwords using libcrack2
crypt (3) - password and data encryption
crypt_r (3) - password and data encryption
des_read_2passwords (3ssl) - Compatibility user interface functions
des_read_password (3ssl) - Compatibility user interface functions
doveadm-pw (1) - Dovecot's password hash generator
endpwent (3) - get password file entry
endspent (3) - get shadow password file entry
EVP_BytesToKey (3ssl) - password based encryption routine
expiry (1) - check and enforce password expiration policy
fgetpwent (3) - get password file entry
fgetspent (3) - get shadow password file entry
fgetspent_r (3) - get shadow password file entry
getpass (3) - get a password
getpw (3) - reconstruct password line entry
getpwent (3) - get password file entry
getpwnam (3) - get password file entry
getpwnam_r (3) - get password file entry
getpwuid (3) - get password file entry
getpwuid_r (3) - get password file entry
getspent (3) - get shadow password file entry
getspent_r (3) - get shadow password file entry
getspnam (3) - get shadow password file entry
getspnam_r (3) - get shadow password file entry
git-credential-cache (1) - Helper to temporarily store passwords in memory
gitcredentials (7) - providing usernames and passwords to Git
grpconv (8) - convert to and from shadow passwords and groups
grpunconv (8) - convert to and from shadow passwords and groups
grub-mkpasswd-pbkdf2 (1) - generate hashed password for GRUB
lckpwdf (3) - get shadow password file entry
login.defs (5) - shadow password suite configuration
lppasswd (1) - add, change, or delete digest passwords.
Net::LDAP::Control::PasswordPolicy (3pm) - LDAPv3 Password Policy control object
Net::LDAP::Extension::SetPassword (3pm) - LDAPv3 Modify Password extension ob...
pam_pwhistory (8) - PAM module to remember last passwords
pam_unix (8) - Module for traditional password authentication
passwd (1) - change user password
passwd (1ssl) - compute password hashes
passwd (5) - the password file
passwd2des (3) - RFS password encryption
putpwent (3) - write a password file entry
putspent (3) - get shadow password file entry
pwck (8) - verify integrity of password files
pwconv (8) - convert to and from shadow passwords and groups
pwunconv (8) - convert to and from shadow passwords and groups
seahorse (1) - Passwords and Keys
setpwent (3) - get password file entry
setspent (3) - get shadow password file entry
sgetspent (3) - get shadow password file entry
sgetspent_r (3) - get shadow password file entry
shadow (5) - shadowed password file
shadowconfig (8) - toggle shadow passwords on and off
smbpasswd (5) - The Samba encrypted password file
smbpasswd (8) - change a user's SMB password
ulckpwdf (3) - get shadow password file entry
unix_chkpwd (8) - Helper binary that verifies the password of the curren...
unix_update (8) - Helper binary that updates the password of a given user
vigr (8) - edit the password, group, shadow-password or shadow-gr...
vipw (8) - edit the password, group, shadow-password or shadow-gr...
xcrypt (3) - RFS password encryption
xdecrypt (3) - RFS password encryption
xencrypt (3) - RFS password encryption
If you didn't already know you were looking for the "passwd" command it might be hard to pick it out of the list. $ apropos -a change password
chage (1) - change user password expiry information
kpasswd (1) - change a user's Kerberos password
passwd (1) - change user password
PKCS12_newpass (3ssl) - change the password of a PKCS12 structure
$ apropos -a space disk
df (1) - report file system disk space usage
df (1p) - report free disk spaceman -k -S1 password
I use man and apropos all of the time, but I have no illusion that they're new user friendly. They're amazing when you just need to look up some options or get the syntax for a system call, but if you've not assimilated the Unix way of thinking they're quite obtuse.
Apropos would be a powerful part of a "help" command, but in 50 years nobody has ever written a help command that gained enough traction to be included in the standard toolchain.
Apropos doesn’t do it’s job because it isn’t named — or integrated with — help.
The tools themselves leave a lot to be desired from a UX experience too. Things like nonsense names, bad defaults and/or no inherent intelligence in the program, means you have to specify numerous options manually for things that should be easy to automate.
The whole experience would benefit greatly by telling people about things like man/apropros on first startup and other one time tutorials.
There are some days where I feel tempted to write small helper scripts whose sole purpose would be to rename/reorient the default experience/flags of various CLI apps, so that it is not a jumbled mess full of historical accidents that can no longer be changed.
“I need to find out how much space I have left on this machine.”
Now what?
"Oh there's an entry called My PC" (click)
"Aha, there's my disk and little bar showing the free space"
It's two clicks if you have your wits about you, maybe a few more if its not that obvious.
I don't know why you singled out Windows. It's just as easy in Gnome or KDE etc - the point here is that CLIs can never be as intuitive as GUIs. As the original article said - Humans are very visual people. Seeing things in a visual space is much easier for us.
Personally I think the experience is very similar for noobs.
But then again, why wouldn't the Linux guy search google in the first place?
Or if it is a total newbie, look for the disk icons, the information is there as well.
then it's a really bad one.