• Ferk@lemmy.ml
    link
    fedilink
    arrow-up
    49
    ·
    13 days ago

    I generally agree but it depends on the application and the computer purpose / input you will most use.

    Like… it doesn’t make much sense to have a CLI/TUI for an image editor… if you start using things like sixel you are essentially building a GUI that runs in a terminal, not a TUI. The same happens with videogames, video players and related entertainment applications.

    But like I said, I do generally agree. I’d even argue that when possible, GUIs should just be frontends that ultimately just call the corresponding CLI programs with the appropriate parameters, avoiding duplication.

  • HiddenLayer555@lemmy.ml
    link
    fedilink
    English
    arrow-up
    35
    ·
    edit-2
    13 days ago

    CLI designers: “Here are the commands and arguments in a txt file, they’ll only change when absolutely necessary and we’ll be sure to inform you both in the docs and as a warning in the CLI itself.”

    GUI designers: “go fuck yourself and re-learn where we hid all the buttons this time, after waiting for our two second fly-in animation for every submenu of course. Don’t worry though, here’s a condescending popup tour that only shows you the most basic features you could already see with your eyes. If you’re still confused, here’s an AI chatbot that will just repeat the contents of the popup tour and then act like you’re an idiot. Hey, HEY! STOP WHAT YOU’RE DOING THIS INSTANT AND READ ABOUT OUR NEW BUZZWORD FEATURE YOU NEVER ASKED FOR! TRY IT RIGHT NOW OR ELSE! Also we’re keylogging you and recording your mouse movements as “analytics” for “”“improving””" our UI (even though it’s only getting worse with each new version), you understand. "

    • bestelbus22@lemmy.world
      link
      fedilink
      arrow-up
      28
      ·
      12 days ago

      CLI: Here’s a txt file, now memorize it you peasant

      Good GUI: Welcome back my friend, straight the thing again? Btw on the right you can see some relevant info and links.

      • HiddenLayer555@lemmy.ml
        link
        fedilink
        English
        arrow-up
        16
        ·
        edit-2
        12 days ago

        CLI: Welcome back my friend, forgot a command or argument? Just type --help and read the super terse and bullshit free txt file in less time it takes for the GUI startup animations to finish. Too long? Type | grep to directly search for it in less time than it takes for the search button to expand and let you start typing! Realize you keep doing the same few steps? Just write a script instead of memorizing what specific sequence of buttons to click or hope that the GUI remembers where you left off! Need to tell a team member how to do something? Just send them the commands or a full script in chat instead of jumping on a video call and walking them through which of these abstract, indescribable icons they need to click which they’ll definitely get wrong and open some weird submenu you then have to tell them how to leave!

        GUI: Ooh a GPU and gigabytes of VRAM just for my animations? You shouldn’t have! Ooh you mouseovered something for one millisecond while moving it to the actual thing you want? Let me lag the entire window and cover up the thing you wanted with this popup that takes longer to disappear the more irrelevant it is! Also none of the text in mouseover popups is selectable so you can’t copy from it even if you did need it (Visual Studio static analysis messages I’m looking at you). Still need help? Well you first have to find where the help button is if there even is one! We’re increasingly not including help files because it “should” “just” be intuitive. Or just watch a 10 minute video walking through how to do something that could have been two lines in the terminal, stupid! Want to automate something that takes like ten clicks because we hid everything in nested submenus to “avoid clutter”? Go ahead and install a third party macro suite and record your mouse clicks and movements that will break as soon as the next update drops and slightly shift the margins around!

      • cole@lemdro.id
        link
        fedilink
        English
        arrow-up
        7
        ·
        12 days ago

        yeah good GUIs are really important for people who use a lot of programs lol.

        I can’t remember everything at once, I’ve got better things to do

  • hobata@lemmy.ml
    link
    fedilink
    arrow-up
    27
    ·
    13 days ago

    well, actually nobody gives a shit, use whatever you fit best for the task.

    • fprefect@lemmy.ml
      link
      fedilink
      arrow-up
      19
      ·
      13 days ago

      For me to be able to use whatever I want, it needs to exist. Therefore it is a relevant discussion to have, since it might influence a developer to consider TUI instead of just going for GUI as the default.

      • hobata@lemmy.ml
        link
        fedilink
        arrow-up
        6
        ·
        13 days ago

        Waiting for others to do something for you is the wrong approach. Get off your ass and be the developer. Creating an interface for a tool is no rocket science.

        • HiddenLayer555@lemmy.ml
          link
          fedilink
          English
          arrow-up
          4
          ·
          12 days ago

          It’s significantly easier to make a third party GUI for a command line tool than to make a third party CLI for a GUI only tool because you’ll be working with an opaque binary that doesn’t have any public APIs.

        • fprefect@lemmy.ml
          link
          fedilink
          arrow-up
          4
          ·
          12 days ago

          Ironic coming from someone that is using a computer with OS and programs written by someone else and hardware constructed by other people, using electricity produced by others, et.c. :)

          • tomenzgg@midwest.social
            link
            fedilink
            English
            arrow-up
            3
            ·
            12 days ago

            Entirely unrelated to your point (with which I fully agree) but wouldn’t it make more sense to replace the first period in “et.c.” with just a space (if you’re not going to forego the period)? et isn’t short for anything so the period doesn’t quite make sense (and you wouldn’t be using any more letters than you already are).

            No worries, either way (obviously); I was just thinking.

          • hobata@lemmy.ml
            link
            fedilink
            arrow-up
            1
            ·
            12 days ago

            You are completely missing the point of “Oh, mister developer sir, please, you absolutely must make me a button here so I can rename a file. I insist! I’ll even draw you a little spider in return.”

            • fprefect@lemmy.ml
              link
              fedilink
              arrow-up
              5
              ·
              12 days ago

              I am a developer and I find others perspective on usability interesting. Each to his own I guess.

  • detonational_VuSE@lemmy.ml
    link
    fedilink
    English
    arrow-up
    12
    ·
    12 days ago

    “That’s why I always have 10GB of free ram on my laptop with 16GB of ram” lol, good job sport I wonder if they browse the web on command line? lynx and curl can be rough. I take the position that sometimes gui is good, sometimes tui, sometimes cli. ncurses is a headache to write for.

    • ☂️-@lemmy.ml
      link
      fedilink
      arrow-up
      3
      ·
      11 days ago

      lynx can be rough

      i guess it’s pretty usable if you are stuck in a desert island with a 35 year old computer, a modern ish debian disc and perfect wired access to the internet.

      • MonkeMischief@lemmy.today
        link
        fedilink
        arrow-up
        2
        ·
        11 days ago

        I would totally love to browse a simpler “layer” of the Internet that could be navigated with Lynx! The biggest downside would be lack of images. (Maybe Lynx can do images?)

        But I could see an indie web of little blogs and human created artifacts that would be surfed kinda like logging into a MUD. :D

    • somegeek@programming.devOP
      link
      fedilink
      arrow-up
      3
      ·
      edit-2
      11 days ago

      Yeah browsers are the main GUI I use. w3m is great for reading blogs and those types of things but like you say, not the best experience for most things. And we can’t really blame it on them, the modern web is horribly written most of the time.

  • Karna@lemmy.ml
    link
    fedilink
    arrow-up
    12
    ·
    edit-2
    13 days ago

    Thumb rule: whichever I feel comfortable with in a given situation, I use.

    • thingsiplay@lemmy.ml
      link
      fedilink
      arrow-up
      17
      ·
      edit-2
      12 days ago

      TUI: Terminal Text User Interface, something like htop in example. CLI: Command Line Interface, something like grep in example.

      Edit: “Text” is probably the correct word, not “Terminal”.

      • Ferk@lemmy.ml
        link
        fedilink
        arrow-up
        3
        ·
        12 days ago

        Isn’t the T for “text”? (ie. “Text User Interface”)

        I mean, in the context of Unix systems it’s most likely gonna be within a terminal emulator, but in theory you can have a TUI inside an SDL window rendering the text there (specially when they are ports from other systems where they might be using different character sets than whats available in terminals… or if they want to force a specific font).

        The only example that comes to my head right now is ZZT, but I believe there are many games on Steam that use a TUI rendered within their own program, not a terminal.

    • pnelego@lemmy.world
      link
      fedilink
      English
      arrow-up
      6
      ·
      13 days ago

      It’s a UI that sits in the terminal (thus TUI). Think htop, or btop; They are often ran from CLI, but offer more of a UI.

      • Levi@lemmy.ca
        link
        fedilink
        English
        arrow-up
        6
        ·
        13 days ago

        Thanks! I guess something like vim would count as a TUI then.

        • thingsiplay@lemmy.ml
          link
          fedilink
          arrow-up
          4
          ·
          13 days ago

          Yes. Think of any terminal application with an interactive user interface, that mimics a GUI. Something that is not just controlled by commandline options like grep and sed in example.

        • Hawke@lemmy.world
          link
          fedilink
          arrow-up
          2
          ·
          12 days ago

          I’d say vi is in a fuzzy grey area below a tui. It’s more than a cli but shares a lot with cli programs; it pretty much has its own command line built in. At the same time it has nothing like dialog box or menus like normal tui programs.

          • Ferk@lemmy.ml
            link
            fedilink
            arrow-up
            5
            ·
            edit-2
            12 days ago

            Personally, I feel that if it uses control characters to update the screen in previous positions, altering the scroll buffer, moving beyond where the cursor is and redrawing the screen, then it’s a TUI.

            CLI programs only output plain text in a stream, using just control characters for coloring and formatting, and if they do any re-drawing it’s only for the current line (eg. progressbars and so).

            So… even something like less is a TUI program… but things like more or sed would be CLI programs.

      • Obin@feddit.org
        link
        fedilink
        arrow-up
        4
        ·
        12 days ago

        Emacs is actually a real GUI application. It has font sizes, variable width fonts, image display, etc. and with the pGTK backend even native wayland support. It also has a rendering backend for the terminal, and some people have their reasons for using it, but the default and general advice is to use Emacs in GUI mode.

    • HiddenLayer555@lemmy.ml
      link
      fedilink
      English
      arrow-up
      4
      ·
      13 days ago

      Pff, you’re using one of those newfangled CRTs? I use a mechanical teletype that makes my computing sound like hammering nails.

      • ZombieChicken@sh.itjust.works
        link
        fedilink
        arrow-up
        3
        ·
        12 days ago

        mechanical teletype? Pfff. Grow up and learn to read your blinkenlights already. Heck, while you’re at it, here are 16 switches and three buttons. That should be more than enough for anything ever.

  • MonkeMischief@lemmy.today
    link
    fedilink
    arrow-up
    4
    ·
    11 days ago

    First off, I’m really glad to see posts from personal websites and blogs! Way to keep the indie web alive!

    Sadly I got a Cloudflare error trying to open the page. But, I think on this subject, GUIs can be great tools, but they’re the most commonly designed with exploitative dark patterns and “our users are drooling simpletons” in mind.

    Terminals are also super cool. It’s definitely easier to automate terminal programs than GUIs!

    Also TUI? Man, opening BTOP is always a treat .

    It just kinda depends on the tool for the job, right? Blender is a great example of a streamlined necessary graphical interface that asks for a terminal-like familiarity from the user. (And GUI-only folks kinda rage at it at first hehe)

    Running as much as possible in terminal is definitely easier on the resources though, and I want to get a lot better at that. (As sexy as KDE is!)

    • somegeek@programming.devOP
      link
      fedilink
      arrow-up
      3
      ·
      11 days ago

      Thank you! Sorry for the cloud error, the server’s origin website is hosted in my country Iran, which is currently in a semi-blackout and very bad internet distruptions. Very sad.

      You might see the blog if you try a couple times more, I can see it with most VPNs.

      I completely agree with your points. I’m stating the same sentiment in the blog.

      I prefer GUIs for two things:

      1. Things that are inherently graphical (gimp, blender, etc)
      2. Things that I don’t use very often, and the GUI is too simple to be bothered with a cli.
    • Hawke@lemmy.world
      link
      fedilink
      arrow-up
      3
      ·
      12 days ago

      Someone has never configured a managed network router! Disorganized feature creep is the name of the game in there: gotta make sure the old commands still work exactly the same but add new ones constantly for new features!