I think command-line is considered bad compared to the GUI is the lack of NLP/AI and the use of widely varying syntaxes and semantics for each command line argument.
For example, how do you know that the syntax "play 10 random country songs" would work? If it did work, would it play random (country songs) or (random country) songs? -- is country a type of music or a category to sort by?
The fact that everyone likes to classify things in different (and sometimes seemingly-illogical) ways leads to problems even if the syntax is well known - look at issues with SQL. Can you do "select id from company" on all databases?
Human communication is very difficult and error-prone, even for humans. Redundancy and back-forth is necessary to share understanding.
For example, how do you know that the syntax "play 10 random country songs" would work? If it did work, would it play random (country songs) or (random country) songs? -- is country a type of music or a category to sort by?
The fact that everyone likes to classify things in different (and sometimes seemingly-illogical) ways leads to problems even if the syntax is well known - look at issues with SQL. Can you do "select id from company" on all databases?
Human communication is very difficult and error-prone, even for humans. Redundancy and back-forth is necessary to share understanding.