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?

  • @[email protected]OP
    link
    fedilink
    English
    -47 months ago

    Every command has its own syntax

    I don’t consider this a different interface. Where you draw the line is a personal choice, but I’d be happy with a smartphone equivalent where the differences are similar to command line tools having different syntax.

    editing files is something completely different

    I should have clarified, but by editing files, I don’t mean the vim-like full text editor experience. I mean things like appending text to a file with echo >>, or using sed, etc.

    A lot of these interfaces are like they are for mostly historical reasons

    Yes, legacy baggage exists. This only furthers my point, that things could be even better using the same principles, without legacy baggage.

    Termux

    I only use Termux out of necessity (app or functionality I can only access via a terminal). If an app with good ergonomics exists, I wouldn’t look at Termux. But I would still look at command line on desktop.

    • @WIPocket
      link
      English
      77 months ago

      I’d be happy with a smartphone equivalent where the differences are similar to command line tools having different syntax.

      My point was that I think we have that already. The medium is a touch screen, and apps have over time adapted to that the same way they have to the terminal. Here we scroll by swiping up and down, move between tabs by swiping to the side, etc. All held together by system-wide gesture navigation. And yea, every app does stuff differently, and so does every terminal one.

      This only furthers my point, that things could be even better using the same principles, without legacy baggage.

      I feel like this is exactly what Google was attempting to do with Material Design: a good, consistent interface / design language. It really was a fairly fresh start using what we learned from the smartphone apps that came before, with the design done intentionally. What do you think they missed?

      Another thing to keep in mind is that the terminal is built around text and files, while the GUI is not. You cant expect every problem to be cleanly / ergonomically solve-able inside an Android app, just like you cant expect a good Snapchat / Instagram client in your terminal. There are file manager apps, there are text editors, there are todo lists, but the terminal is just a better platform for some tasks while worse for others.

      • @[email protected]OP
        link
        fedilink
        English
        -27 months ago

        The medium is a touch screen

        That’s more like a GUI than a CLI. You have input boxes, buttons, sliders, gestures, scrolling, drag and drop, etc, and their different combinations. Many apps do almost the same thing, except giving you a different interface and a different combination of these steps. You listed some of those variations yourself.

        How is that the same as the uniformity of the text only interface? That’s far more different than differences in syntax, but still text. Two hyphens instead of one hyphen for a CLI flag is a really small difference.

        • NekuSoul
          link
          fedilink
          English
          47 months ago

          Even as a heavy user of CLIs, claiming that their text-only nature somehow makes them more uniform, feels a bit overly reductive to me:

          To start with, there’s simple fire-and-return commands, interactive commands, full-blown TUIs and so on. Then there’s the parameters, which aren’t really consistent either across applications either. Neither in the naming of arguments, nor their grammar. The representation of the output is also all over the place.

          With all those things, it’s really not so dissimilar from the different layouts of GUIs. Not to mention that there’s also lots of CLI tools that do the same thing but have a different interface, so yeah.

          • @[email protected]OP
            link
            fedilink
            English
            -27 months ago

            I’m excluding TUI’s because you’re right, they’re pretty different and share some of the ununiformity of GUIs. Still, the command line world remains vast and with that interface you can do a lot, and it is fairly uniform.

            there’s parameters

            That doesn’t change the uniformity of the interface. Of course every application will need different parameters. Now do they receive these different parameters via a similar and uniform interface? I say yes. I enter it via keyboard, and for the most part they all use space delimited flags, most of them hyphenated. I’d call that pretty uniform.

            To phrase it another way, if all GUIs started using the same names for all parameters, it remains non-uniform interface, and it wouldn’t solve 1% of the issue with GUIs.

            Out of curiosity, if you don’t see the CLI world as more uniform, why do you use it and for what benefit do you prefer it?

            • NekuSoul
              link
              fedilink
              English
              37 months ago

              I use the CLI because it’s keyboard-focused (though I use lots of mouse-enabled TUIs) and because it’s programmable.

              Generally though, I kind of get what you’re trying to say, but ‘uniformity’ feels like an unfortunate choice in the context of your question, as the meaning can be very arbitrarily defined, hence the confusion. I could, for example, claim that GUIs are more uniform because all chat apps, browsers etc… are so similar to each other that once I’ve learned one I can use all.

              Which is why It’d probably be better if you tried to reword your initial question avoiding that term, focussing more on describing the desired benefits of your definition of uniformity.

              Otherwise I’d point towards voice recognition, as that’s very similar to a CLI, but probably not what you had in mind, I’m guessing?