Over the decades I’ve seen the praise and critique of the “Unix way”. I don’t remember reading about the aspect I’ll describe below. This might be a banality, and I haven’t invested much thought into it either. I’m just curious to hear your opinions.

At the core of the Unix way is that tools should do just one thing. Users very often need results that can only be achieved after doing several things. With only single-purpose tools at hand, users have to integrate them. In other words, the tool authors delegate integration to the users.

Here’s the idea I want to discuss. In programming languages, integrating various modules to achieve a goal is already a complex task because we often have to handle numerous failure modes and edge cases. In shell scripts this is much worse, since shells are more limited than programming languages. Writing a tool that does only one thing looks like avoiding the most complicated task. Which leads to a conclusion that the Unix way only works well in a rather small fraction of use cases; the majority of cases are better served by different approaches.

What do you think?

  • TrollAccount69@lemmy.ml
    link
    fedilink
    arrow-up
    2
    arrow-down
    1
    ·
    2 days ago

    The Unix way isn’t for people who can’t integrate those tools.

    Ever been in the drivers seat of an 18 wheeler? Even just getting into one requires more physical exertion than getting into your car. When you’re up there you have a million gauges and controls meant to provide the operator the tools they need for any situation they might encounter and to interface with a galaxy of stuff that can be hooked up to the back. You need a special license which encapsulates this different paradigm of use, operating a gigantic vehicle under much different and more variable conditions than the everyday driver (in addition to approaching normal road conditions and functions like turning left with a different outlook and awareness).

    It’s why I often tell people not to switch to Linux. It’s not for them.

    • arty@feddit.orgOP
      link
      fedilink
      English
      arrow-up
      1
      arrow-down
      1
      ·
      2 days ago

      I’ve been professionally developing software for two decades. I can integrate those tools. Still, I find it unnecessarily more difficult than integrating programming language modules. And adjusting my solution to use ready-made, well-integrated complex software is significantly easier, all while being more stable.

      • TrollAccount69@lemmy.ml
        link
        fedilink
        arrow-up
        1
        ·
        2 days ago

        Okay. Build a weird farm use only modified v10 excursion with half the body removed and a gooseneck receiver welded on.

        If you find it too limiting to tape together the standard utilities then do what your intro to programming class did when you learned c and write your own utilities and libraries, zip them up and store them on a cheap vps you can remember the ip or fqdn of and yank them down onto whatever system you happen to be on, pardon the turn of phrase, like a normal person.

        The reason a particular style of pressure fitting is mandated by law to be used for hydraulic connections between cabs and trailers isn’t because it’s the most versatile, repairable or even most secure type but because its manual of operation is simple, straightforward and very importantly: excludes off label or dangerous uses.

        An alternative to the standard utilities or Unix way is something you want because you think it will be easier and faster and more versatile. It might be that way for you. Combination wrenches tend to have the sizes and shapes they do to accommodate working around the spaces their size of fitting tends to be in and because the wrench snapping in half when you try to operate it with a breaker bar is the tools way of telling you to begin destructive removal of the fastener instead of continuing to pour pb blaster into it.