• MartianSands@sh.itjust.works
    link
    fedilink
    arrow-up
    37
    ·
    2 months ago

    The reason, I suspect, is fundamentally because there’s no relationship between the uppercase and lowercase characters unless someone goes out of their way to create it. That requires that the filesystem contain knowledge of the alphabet, which might work if all you wanted was to handle ASCII in American English, but isn’t good for a system which needs to support the whole world.

    In fact, the UNIX filesystem isn’t ASCII. It’s also not unicode. UNIX uses arbitrary byte strings, with special significance given to a very small number of bytes (just ‘/’ and ‘\0’, I think). That means people are free to label files in whatever way they like, and their terminals or other applications are free to render them in whatever way seems appropriate, without the filesystem having to understand unicode.

    Adding case insensitivity would therefore actually be significant and unnecessary complexity to add to the filesystem drivers, and we’d probably take a big step backwards in support for other languages

    • stoy@lemmy.zip
      link
      fedilink
      arrow-up
      18
      ·
      2 months ago

      Oh, I realize why it is, I just don’t see it as an advantage, the whole argument is just a technical one, not a usabillity one.

    • LarmyOfLone@lemm.ee
      link
      fedilink
      arrow-up
      7
      ·
      2 months ago

      You’re basically arguing that a system shouldn’t support user friendly things because that would add significant burden to the programmer.

      The quintessential linux philosophy. Well done! I mean, what is language? Why have named code variables? This is just a random array of bytes!

      • MartianSands@sh.itjust.works
        link
        fedilink
        arrow-up
        3
        ·
        2 months ago

        No, I’m arguing that the extra complexity is something to avoid because it creates new attack surfaces, new opportunities for bugs, and is very unlikely to accurately deal with all of the edge cases.

        Especially when you consider that the behaviour we have was established way before there even was a unicode standard which could have been applied, and when the alternative you want isn’t unambiguously better than what it does now.

        “What is language” is a far more insightful question than you clearly intended, because our collective best answer to that question right now is the unicode standard, and even that’s not perfect. Making the very core of the filesystem have to deal with that is a can of worms which a competent engineer wouldn’t open without very good reason, and at best I’m seeing a weak and subjective reason here.

        • LarmyOfLone@lemm.ee
          link
          fedilink
          arrow-up
          2
          ·
          2 months ago

          Well you’re just asking an economic question, are the costs worth the benefits?

          I’d argue that linux will never be a good or user friendly operating system without case insensitive filenames.

          That isn’t an opinion but could be verified through scientific study of how confused people act. You don’t even need computers, just ask someone to get the “something SomeTHing” from a labeled box in a cupboard. Presumably science would show that case insensitive naming of things is always less confusing when humans actually use the system.

          The truth is that programmers enjoy writing code far more than reading code. And especially to open source developers “usability” is a dirty word. It’s not about the value of a thing, it’s about the beauty of how it is done.

        • dan@upvote.au
          link
          fedilink
          arrow-up
          2
          ·
          edit-2
          2 months ago

          because it creates new attack surfaces, new opportunities for bugs, and is very unlikely to accurately deal with all of the edge cases.

          Unicode case folding has been a solved problem for a long time. The Unicode standard has rules for which characters should be considered identical, and many libraries exist to handle it (you wouldn’t ever code this yourself).