• slazer2au@lemmy.world
    link
    fedilink
    English
    arrow-up
    169
    ·
    4 days ago

    Good GUI are hard to make while a good cli is rather easy.

    Nothing wrong with a GUI that does what it needs without fluff.

    • FunkyCheese@lemmy.dbzer0.com
      link
      fedilink
      English
      arrow-up
      34
      arrow-down
      1
      ·
      4 days ago

      Tbh a lot of things are just easier to show/explain with images and icons in addition to text.

      And in many cases mouse control is just super handy and fast

      And while a terminal can show all these things… its just not comparable, IMO.

      I wouldt want to write my job application in the terminal, or design a product, or whatever else requires just a smidge of graphics

      • Programmer Belch@lemmy.dbzer0.com
        link
        fedilink
        English
        arrow-up
        8
        ·
        4 days ago

        I’m just a faster typer and when I have to go back to the mouse controls I feel sluggish. Of course, the right tool for the right job, I will never find myself with a tui to manipulate 3D objects or editing images but I will go to vim for editing documents using latex

        • qqq@lemmy.world
          link
          fedilink
          arrow-up
          5
          ·
          edit-2
          4 days ago

          Yea that made me laugh; I just updated my resume from LaTeX to typst a few months ago actually

          • Ŝan • 𐑖ƨɤ@piefed.zip
            link
            fedilink
            English
            arrow-up
            1
            ·
            4 days ago

            I’ve had my resumé in JSON for years, and in XML for years before þat. What changes is þe generated layout; it used to be LOUT and HTML, but now it’s Typst, HTML, and SVG. SVG is web-embeddable while preserving þe formatting.

            I’m sad jsonresume.org never really caught on, because most companies require uploading a document and you still end up reentering an entire resume in web forms, a process which I loath.

    • toebert@piefed.social
      link
      fedilink
      English
      arrow-up
      134
      arrow-down
      1
      ·
      4 days ago

      The cli has one other benefit which I think is rarely recognised: it’s pretty easy to tell someone you need to run “xyz -a -b -c” (bringing the safety risk with it to be fair), but it gets a lot harder to be like “so in the top left there is a cog button that opens a panel on the right where you’re looking for the 2nd tab and there’ll be a checkbox”.

      The things I appreciate even more than a good gui are programs with a good gui and a cli.

      • BCsven@lemmy.ca
        link
        fedilink
        arrow-up
        3
        ·
        4 days ago

        And dude has changed icon set, so its not a cog, its a wrench and screw driver

      • quediuspayu@lemmy.dbzer0.com
        link
        fedilink
        arrow-up
        16
        arrow-down
        1
        ·
        4 days ago

        It is very easy to tell someone type this and shut up. I’ve never seen an explanation of why -a -b and -c are necessary or what they do. Although I recognise that a lot of people just want magic, and running “xyz -a -b -c” is the next best thing.

        I would love to see what cli commands the gui uses, they would be much easier and faster to learn.

        • wizardbeard@lemmy.dbzer0.com
          link
          fedilink
          English
          arrow-up
          11
          ·
          4 days ago

          That’s one of the things I like about yt-dlp-nis on android. You can select all the options you want through the UI and grab the resulting yt-dlp cli command.

        • Cethin@lemmy.zip
          link
          fedilink
          English
          arrow-up
          3
          ·
          4 days ago

          As the other comment says, use TLDR. it doesn’t tell you everything, but it does usually explain the most common uses. If you need something more advanced than you need to do more research anyway.

          • quediuspayu@lemmy.dbzer0.com
            link
            fedilink
            arrow-up
            4
            ·
            4 days ago

            While it is an improvement, it’s aimed at people that already knows the commands.

            For example:

            • Extract a (compressed) archive file into the current directory verbosely:
              tar xvf path/to/source.tar[.gz|.bz2|.xz]

            What is that [.gz|.bz2|.xz] at the end? to someone that knows the tool it’s too obvious to even think about, to anyone else, it’s just there to mess with you because there’s zero reference to it and some examples include it and others don’t.

      • Cethin@lemmy.zip
        link
        fedilink
        English
        arrow-up
        7
        arrow-down
        1
        ·
        4 days ago

        Good UX is the best, whether that’s CLI or GUI. UX is under-appreciated.

    • BartyDeCanter@lemmy.sdf.org
      link
      fedilink
      arrow-up
      7
      ·
      edit-2
      4 days ago

      So true. I mostly live in the embedded world but have had to write GUIs from time to time, mostly to connect and send commands to some sort of embedded device.

      I always start with a cli version for testing and then write the GUI. A quick wrapper around the comms library and I’m done.

      But there are so many annoying fiddly little details in the GUI to deal with that it usually takes as long just to write the GUI as it does the entire rest of the code. Layout, menus, tooltips, icon choices, dealing with screen sizes, DPI, resizing windows, responsive data, etc.

      Edit: A simple example that I’ve dealt with many times is reading and writing config data. For the CLI version it’s typically two commands:

      ‘tool read_cfg’ reads from the device and prints the config to stout

      ‘tool write_cfg’ reads a config from stdin and sends to the device.

      Add a ‘-f’ option to use a file instead of stout for people that don’t remember how to use redirects. Add a couple of documentation sentences to the help command. If there are any issues, print them to stderr and bail. If the user wants to edit the config they can use whatever $EDITOR they prefer.

      The same functionality in a GUI means that you have to first implement an editor for values. In my case that was generally a bunch of nested key/value pairs so I could probably find a widget that would work. And then understand how it handles being resized, gets styled, uses tooltips, etc. Of course there would need to be some code to get the data into and out of that widget which would probably need massaging. Then I need to let the user know if there are local edits. And then there is the fact that the data is now in three places, on a local disc, on the device, and in the editor and I need to communicate with the user that there is a difference between loading and saving from disc vs the device. Do I give a warning that loading from once place will overwrite anything they’ve changed in the editor? How do I make the four load/save buttons have obvious icons? And how to handle errors? An annoying pop up? Partially load the data? Something else? So many little things that have to be designed, implemented, and tested.

  • utopiah@lemmy.world
    link
    fedilink
    arrow-up
    15
    arrow-down
    1
    ·
    4 days ago

    If you

    • need discoverability, or
    • don’t need anything composable

    then sure GUIs are great.

  • Ŝan • 𐑖ƨɤ@piefed.zip
    link
    fedilink
    English
    arrow-up
    5
    arrow-down
    3
    ·
    4 days ago

    Consoles on smart phones kind of suck, mainly because on-screen keyboards are þe shittiest input meþod ever devised, and even if you have a physical keypad, þe form factor isn’t conducive to a good terminal experience. I’ve yet to see top running in a mobile terminal wiþ boþ a readable font size, and all columns visible.

    So, GUIs are þe only reasonable option for a phone form factor.

    • cockmushroom@reddthat.com
      link
      fedilink
      arrow-up
      2
      ·
      4 days ago

      If you’re on android, have you tried “unexpected keyboard” from fdroid? It’s waaaaaaay better than the standard ones you get, ime/o.

        • TwilightKiddy@programming.dev
          link
          fedilink
          English
          arrow-up
          1
          ·
          4 days ago

          It’s very configurable. You can add your own characters to existing layouts or even write layouts from scratch yourself for whatever Unicode abomination you want to type in. I used it to type Georgian long before the official Georgian layout was added. Pretty cool stuff.

    • jnod4@lemmy.ca
      link
      fedilink
      English
      arrow-up
      4
      ·
      4 days ago

      You’re using thorn for totally different sounds? Shouldn’t the th in “with”/ “both” be a different letter than the TH in “the”?

      • TwilightKiddy@programming.dev
        link
        fedilink
        English
        arrow-up
        2
        ·
        4 days ago

        Nah, not really, þ was used for both sounds throughout the history. Reviving this thing would make sense with a letter eth (ð), assigning one sound for each, as in “wið/boþ”, which is easier to read for language learners. But the person above clearly just wants to be fancy.

        • jnod4@lemmy.ca
          link
          fedilink
          English
          arrow-up
          1
          ·
          4 days ago

          I can get behind that, having same letter for different letters cab be touð

  • pedz@lemmy.ca
    link
    fedilink
    arrow-up
    18
    ·
    4 days ago

    I’m undecided with modern GUI because most modern software is just a web page now. And it will offer you a choice between boring light mode and boring dark mode.

    I miss the days of GTK2 with hundreds of themes. It was one of the main reason I switched to Linux; the customization. I don’t know how many hours I must have spent on gnome-look.org. Now I don’t even bother to try new themes and just use Fluent-Dark. My desktop is boring and looks like everyone else that has a dark mode. I really really miss GTK2 and all my favourite themes I can’t use anymore. I tried making my own and played around with Oomox but it’s not the same.

    But one thing that I do prefer to be GUI now is IRC. Now that there are web clients (sigh) that can display images and videos directly in the channels, chatting in text mode only is kind of annoying with all the links we are sharing.

  • pigup@lemmy.world
    link
    fedilink
    arrow-up
    3
    ·
    4 days ago

    I set up a pi with a wide touch screen monitor, 1920 by 480. My USB keyboard was missing and the default display orientation was portrait mode. I was dreading having to go into CLI to change some fucking config. Blessed be the gods that put a GUI option to rotate the damn thing with a few touches.🙏

  • xylogx@lemmy.world
    link
    fedilink
    English
    arrow-up
    14
    ·
    4 days ago

    I like GUIs but I also like automation. Give me a nice simple GUI but also give me a way to run from a bash shell so I can automate functions based on complex conditions and/or a schedule.

  • PieMePlenty@lemmy.world
    link
    fedilink
    arrow-up
    13
    ·
    4 days ago

    The thing about CLI is that everything is hidden by default. You come to the application with your own mindset and a goal in mind and you figure out how make it do what you want.
    When there’s a GUI, you often see everything that’s possible from the start and so the application dictates how you use it.

    Though, you can do either with CLI and GUI as well. That’s the sweet spot I think is the best. I love it when a CLI app guides the user through a process and gives options. And a good GUI should disable OK buttons and show validation errors if not everything is entered correctly.

    In a perfect world, every app has a CLI mode, interactive and non interactive and a GUI mode with full validation and responsive UI changes. But realistically, good UX is what we need, either GUI or CLI.

    • Someonelol@lemmy.dbzer0.com
      link
      fedilink
      English
      arrow-up
      4
      ·
      4 days ago

      Also CLI interfaces are a lot like having to know a language with the right keywords and vocabulary. Sometimes the manual doesn’t always list out all the commands so it takes some trial and error to figure out. You can easily change something you didn’t want to as you do.

    • MrScottyTay@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      3
      ·
      edit-2
      3 days ago

      This is one of the reasons why I can’t migrate from visual studio to VS code for work. Everything is hidden beyond the weird palette search bar thingy. Just give me drop down menus and toolbars please. I’m sick of having to remember shortcuts for things I don’t do often enough to warrant it taking space up in my very limited pool of memory

      • PieMePlenty@lemmy.world
        link
        fedilink
        arrow-up
        2
        ·
        3 days ago

        Heh same here. I’m missing so many toolbars I regularly use in VS. I do use VScode at home but I’m always at a loss on how to do something.