• LovableSidekick@lemmy.world
    link
    fedilink
    English
    arrow-up
    22
    ·
    edit-2
    4 days ago

    Having started out in programming before the GUI era, typing commands just feels good to me. But tbh Linux commands really are ridiculously cryptic - and needlessly so. In the 1980s and 90s there was a great OS called VMS whose commands and options were all English words (I don’t know if it was localized). It was amazingly intuitive. For example, to print 3 copies of a file in landscape orientation the command would be PRINT /COPIES=3 /ORIENTATION=LANDSCAPE. And you could abbreviate anything any way you wanted as long as it was still unambiguous. So PRI /COP=3 /OR=LAND would work, and if you really hated typing you could probably get away with PR /C=3 /O=L. And it wasn’t even case-sensitive, I’m just using uppercase for illustration.

    The point is, there’s no reason to make everybody remember some programmer’s individual decision about how to abbreviate something - “chmod o+rwx” could have been “setmode /other=read,write,execute” or something equally easy for newbies. The original developers of Unix and its descendants just thought the way they thought. Terseness was partly just computer culture of that era. Since computers were small with tight resources, filenames on many systems were limited to 8 characters with 3-char extension. This was still true even for DOS. Variables in older languages were often single characters or a letter + digit. As late as 1991 I remember having to debug an ancient accounting program whose variables were all like A1, A2, B5… with no comments. It was a freaking nightmare.

    Anyway, I’m just saying the crypticness is largely cultural and unnecessary. If there is some kind of CLI “skin” that lets you interact with Linux at the command line using normal words, I’d love to know about it.

    • boonhet@lemm.ee
      link
      fedilink
      arrow-up
      6
      ·
      4 days ago

      typing commands just feels good to me

      That’s because for the most part, it’s faster. You don’t have to lift one hand off the keyboard. Also using the cursor and clicking on something requires more precision and effort to get right compared to typing a word or 2 and hitting enter.

      This is me kinda bragging, but at my typing speeds, something like ls -la is under half a second. Typing cd proj (tab to auto complete) (first few letters of project name if it’s fairly unique) (tab to auto complete), hitting enter, and then typing a quick docker compose up is an order of magnitude faster than starting the containers in docker GUI.

      But tbh Linux commands really are ridiculously cryptic - and needlessly so.

      Agreed. Okay, to be fair, for parameters, most of the time you have the double-dash options which spell out what they do, and for advanced users there’s the shorthands so everyone should be happy. But the program/command names themselves. Ugh. Why can’t we standardize aliases for copy, move, remove/delete? Keep the old binaries names, but make it so that guides for new users could use actual English aliases so people would learn quicker?

      • A Phlaming Phoenix@lemm.ee
        link
        fedilink
        arrow-up
        3
        ·
        4 days ago

        At least part of this is the decentralized/complied nature of a FOSS operating system. You don’t get a command called grep because someone making design decisions about a complete system holistically decides that tool should be called grep. You get it because some random programmer in the world needed a way to find patterns in text so they wrote one and that guy called it grep and someone else saw utility in packaging that tool with an OS. It’s a patchwork, and things like this are a culture of sorts.

        • Val@lemm.ee
          link
          fedilink
          arrow-up
          3
          ·
          edit-2
          3 days ago

          interesting you used grep because it’s a command that has a very clear origin.

          in ed/vi the g command was used to run commands on some pattern. eg g/[regex pattern]/[command]

          the p command was used to print current line so to print any line that matched the string “grep” you would do: g/grep/p.

          when this was made into a seperate command it was called grep: g/re/p. using re to denote regex.

      • LovableSidekick@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        4 days ago

        The standard VMS text editor (EDT) assigned editing functions to the number keypad. Using it became so natural to me I eventually didn’t think about pressing keys, it was like using a car gearshift. I’ve never gotten to that point with any GUI editor, even with heavy use of keyboard shortcuts.