The power of command lines
The guys over at Humanized [*h] have been writing a series of posts at the moment about their reasoning behind writing Enso [*h]. Their latest post [*h] details how command lines have a lot of advantages over gui's.
But one thing they didn't mention that I find a great advantage of command line interfaces over gui's is the power you can give to a user without confusing the interface one iota.
Consider Google's search bar [*g]. Most people type what they want to search for and are off and away. However, the more seasoned googler will know that there are all sorts of special search features [*g] you can use. For example, you can type "allintitle: +the site:icr.vox.com" [*g] to find all of the pages from my blog with the word "the" in the title.
The interface to the user is no different, and the user is not confuddled with all of the inputs that the equivalent Advanced Search [*g] is. If they are not familiar with the syntax they can use the Advanced Search form, but for those in the know they are able to utilise the power of google all within a single textbox, using exactly the same very simple interface given to novice users.
This is shown increasingly in Todoist [*t]. More and more commands are being added to the querying language, as well as the ability to set priorities inline when creating new events (see the What's New [*t] list for more details). Most new users will just happily search for what projects are due in the next 5 days or type in the name of the particular task, but again those in the know are able to utilise the power hidden behind the language to cut corners and increase productivity.
Using the same interface for novice and power users alike is very important. As users learn more and more about what they can do, as they discover the inurl or !p3 commands they are able to still work comfortably within the confines of what they already know. They don't have to suddenly elevate themselves to a new more complex interface, they can stick with what they know.
Both google [*g] and todoist [*t] do provide different interfaces for the same functionality. This lets people who are still learning the commands use the same expressive power, but there is a difference between the two. Google's Advance Search [*g] teaches you the new syntax by showing you it in the query box after you perform the search. Currently todoist's [*t] does not, which means few people will ever learn the new syntax unless it is made more obvious. We shall see how it advances.
