• I Cast Fist@programming.dev
    link
    fedilink
    arrow-up
    18
    arrow-down
    3
    ·
    6 hours ago

    Richard P. Gabriel, in his essay “The Rise of Worse-is-Better,” expounds on this theme (see Appendix A). His thesis is that the Unix design philosophy requires that all design decisions err on the side of implementation simplicity, and not on the side of correctness, consistency, or completeness. He calls this the “Worse Is Better” philosophy and shows how it yields programs that are technically inferior to programs designed where correctness and consistency are paramount, but that are evolutionarily superior because they port more easily. Just like a virus.

    The highest achievement of the Unix-aesthetic is to have a command that does precisely one function, and does it well (…) This philosophy, in the hands of amateurs, leads to inexplicably mind-numbing botches like the existence of two programs, “head” and “tail,” which print the first part or the last part of a file, depending. Even though their operations are duals of one another, “head” and “tail” are different programs, written by different authors, and take different options!

    From The Unix Hater’s Handbook

    (I like Linux, but it’s not all sunshine and rainbows)

    • everett@lemmy.ml
      link
      fedilink
      arrow-up
      6
      ·
      4 hours ago

      That head/tail thing is kind of a goofy argument. For one thing they aren’t duals; tail is naturally more complex because the end of a file often changes and the application can optionally keep showing you the new output. Also, the fact that they’re separate applications in the first place is arguably better than the a one-application approach, which would always require a command line switch to select between outputting the start or end of a file. And finally, while I guess this could vary between implementations of head and tail, mine has identical switches for all the common options.

    • Kairos@lemmy.today
      link
      fedilink
      arrow-up
      3
      ·
      4 hours ago

      The head and tail programs also do completely different things. What differences in options do they have?

    • Kairos@lemmy.today
      link
      fedilink
      arrow-up
      3
      ·
      edit-2
      4 hours ago

      “This program sucks because it doesn’t come with the world’s most confusing GUI and doesn’t do a trillion things”

      If you ask this person what “technically inferior” actually means you’d probably get a different answer every day.