In the desktop world, we have the option to use the command line: a uniform interface for a multitude of apps that would otherwise be very different when implemented as GUIs.
Using the same interface, I can move or edit files, cross out tasks on my to-do list, retrieve my password for my email account (using Bitwarden or pass), etc. All in the command line. The GUI for each of those are wildly different.
The other benefit is it is very easy to create a new command line app, as opposed to a GUI.
Is anything like this possible for the smartphone world (even if it doesn’t or will never exist)? What would it look like?
Since smartphone typing is much slower, we can’t simply reuse the command line. We’d need something different. An interface that can still support a various spectrum of different operations, yet ergonomic for a smartphone. What are your thoughts?
My confusion with this post is that it already exists? It’s just your home screen on your phone.
Ergonomic, supports a variety of functions (adjusting settings, running applications, customization, viewing device info), is loosely standardized (much like terminals across OSs), and widely adopted.
The only difference is touch interface vs. Text interface.
Like what are you actually looking for? A gesture controlled terminal or an interface? You already have the latter.
Termux is awesome, but it is not what I’m looking for. Using Termux lacks the ergonomics of using a terminal on desktop. The keyboard / typing experience is far worse.
How would your ideal solution overcome not having a full-sized keyboard in your pocket?
I really don’t think that the command line is a uniform interface. Every command has its own syntax, its own take on what its switches mean, its own take on regexes/globs and so on. Moving and editing files is something completely different: one is a simple command to move a file elsewhere, the other is a whole experience which replaces the command line with something that looks completely different and is controlled completely differently. What they do have in common is just the medium - the terminal.
Many developers of command line tools try to at least keep a similar design language as the rest of the world, but it is far from perfect. A lot of these interfaces are like they are for mostly historical reasons without proper planning of the user interface, so imho even something like Material Design is already closer to being the “same interface” in the GUI world than the various command line interfaces are.
we can’t simply reuse the command line
We absolutely can and some of us do. I often manage my files, todo list, etc. in Termux. Its not always the best thing to do, but I like that I can keep a consistent interface no matter what device I am using. Its still the same terminal, just on a smaller screen with a worse keyboard.
I really don’t think that the command line is a uniform interface. Every command has its own syntax, its own take on what its switches mean, its own take on regexes/globs and so on.
Powershell was kind of an answer to that. All commands are supposed to emit objects and take objects as input. For me though it is horribly unintuitive. Id love to see an open source attempt at it, but it would be hard since by necessity every dev works on their own tool, while Microsoft could enforce something because they own all the tools.
Well, the fact they emit objects doesn’t really help that much with the user interface. This just means that the standard input and output of commands is (usually) more unified and parse-able. I really like the idea, and have seen multiple attempts at it including PowerShell, however none have reached the level of usability that the good old *NIX shells provide.
Id love to see an open source attempt at it
Great examples are already in the thread, but generally speaking the answer should be “no”. Smart phones are just slow at typing. In the case of a smart phone, hitting a button is far faster than typing a command. Not to mention our devices aren’t really being used for file management, tooling, complex work, etc. So it doesn’t even make sense to have a command line unless you’re a huge unix fan or if you are doing something quite niche. And in that case, I recommend just connecting via adb.