• Australis13@fedia.io
    link
    fedilink
    arrow-up
    190
    arrow-down
    7
    ·
    4 months ago

    This is one case where I think Windows is appropriately designed for its target audience.

    • stoy@lemmy.zip
      link
      fedilink
      arrow-up
      83
      arrow-down
      6
      ·
      4 months ago

      I don’t really see the benefit of allowing users to create files with the same name in the same directory, yeah, yeah I know that case sensitivity means that it isn’t same name, but imagine talking to a user, guiding them to open the file /tmp/doc/File and they open /tmp/doc/file instead

      • MartianSands@sh.itjust.works
        link
        fedilink
        arrow-up
        36
        arrow-down
        1
        ·
        4 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
          arrow-down
          1
          ·
          4 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
          arrow-down
          2
          ·
          4 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
            4
            arrow-down
            1
            ·
            4 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.

            • dan@upvote.au
              link
              fedilink
              arrow-up
              2
              ·
              edit-2
              3 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).

            • LarmyOfLone@lemm.ee
              link
              fedilink
              arrow-up
              2
              arrow-down
              3
              ·
              4 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.

      • Jakeroxs@sh.itjust.works
        link
        fedilink
        arrow-up
        2
        arrow-down
        1
        ·
        edit-2
        4 months ago

        Idiot user! ;)

        In case it’s not obvious, I agree that I don’t see much of a point in case sensitivity in an OS outside of simply providing additional options for various uses, it absolutely would be confusing for end users having to interact with it in many ways.

    • gravitas_deficiency@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      3
      ·
      edit-2
      4 months ago

      macOS also does this by default, but you can change it (though you have to reformat the disk in question). This is generally fine for non-system disks if you REALLY need it for some reason, but afaik it is not recommended for the OS disk due to assumptions that macOS-targeted binaries make (similar to the windows regex version matching that caused problems for a while because it became the unofficial best way to check windows versions for app install compatibility). It’s doubly annoying on newer Apple systems because the integrated SSDs are WAY faster than pretty much anything else you can connect to it. But for the most part, I find it’s more of a nuisance to keep in mind than a real problem (I’ve been dealing with dev-issue MBPs since about 2012).

      As in the windows case, this is also an appropriate choice for the average Apple user (though the fact that they’re fairly ubiquitous as dev machines in many places is annoying on several levels, despite the generally solid best-case performance and thermals I’ve observed).

      • bdonvr@thelemmy.club
        link
        fedilink
        arrow-up
        1
        ·
        4 months ago

        Huh I had thought case-sensitive was default on APFS/HPFS and you had to choose insensitive specifically but I guess not

        • gravitas_deficiency@sh.itjust.works
          link
          fedilink
          English
          arrow-up
          5
          ·
          4 months ago

          Just checked on my work box - if you go into Disk Utility and start the process to add a volume, the default selection is APFS, and there’s an option in the dropdown for for APFS (Case-sensitive)

  • FQQD@lemmy.ohaa.xyz
    link
    fedilink
    English
    arrow-up
    105
    arrow-down
    4
    ·
    edit-2
    4 months ago

    It’s neat that Linux has the ability to do this, but I honestly can’t think of a good usecase for this. I think this is more confusing than it is useful

        • OrganicMustard@lemmy.world
          link
          fedilink
          arrow-up
          25
          ·
          4 months ago

          Create multiple branches that only differ in cases from a Unix OS so it breaks git for Windows users in the same project.

          • TrickDacy@lemmy.world
            link
            fedilink
            arrow-up
            8
            ·
            4 months ago

            We had a repo with some really weird (filename) case issues on Mac also. I could only fix it on my home Linux machine, by deleting all the affected files, committing that, then restoring them with all lowercase names. Only time I’ve dealt with that in 20 years but it can happen!

    • gramie@lemmy.ca
      link
      fedilink
      arrow-up
      11
      arrow-down
      2
      ·
      4 months ago

      I feel the same way about programming languages. There is no way that “User” and “user” should refer to different variables. How many times has that screwed people up, especially in a weekly typed language?

      One of the many things that I feel modern versions of Pascal got right.

      • Serinus@lemmy.world
        link
        fedilink
        arrow-up
        12
        arrow-down
        1
        ·
        edit-2
        4 months ago

        Nope. Completely different.

        Case is often used to distinguish scope. Lowercase is local while uppercase is public. “Name = name” is a pretty standard convention, especially in constructors.

        There is a ubiquitous use case in programming. There is not in the file system.

        • gramie@lemmy.ca
          link
          fedilink
          arrow-up
          5
          ·
          4 months ago

          My point is not about how case is meant to be used my point is that it is very easy to make a mistake that is difficult to spot. I think it makes a lot more sense to the case insensitive, and force different names to be used.

        • calcopiritus@lemmy.world
          link
          fedilink
          arrow-up
          3
          ·
          4 months ago

          This is the first time I’ve seen uppercase denoting scope. Usually it is done with a “_” or “__” prefix.

          Casing styles usually mean different identifier types.

          snake_case or pascalCase for functions and variables, CamelCase for types, UPPER_SNAKE_CASE for constants, and so on.

          If we want to apply this to file systems, you could argue something like: CamelCase for directories, snake_case for files, pascalCase for symlinks, UPPER_SNAKE_CASE for hidden files.

    • 5714@lemmy.dbzer0.com
      link
      fedilink
      arrow-up
      2
      arrow-down
      1
      ·
      3 months ago

      It’s quite useful for stuff like PROGRAM and Program in the same directory where PROGRAM is the program itself and Program is some unrelated files about the program. Bad example, but the case stands.

      • redisdead@lemmy.world
        link
        fedilink
        arrow-up
        1
        arrow-down
        1
        ·
        3 months ago

        So what you’re telling me is that it’s useful when the software you use is made by absolute idiots?

        • 5714@lemmy.dbzer0.com
          link
          fedilink
          arrow-up
          2
          ·
          3 months ago

          It’s not about software. Program, PROGRAM were just placeholders for content. I know you can think more abstract and argue in better faith than this.

    • Kusimulkku@lemm.ee
      link
      fedilink
      arrow-up
      2
      arrow-down
      2
      ·
      4 months ago

      I think if you can write them in two different ways it should consider them two different things

  • mrvictory1@lemmy.world
    link
    fedilink
    arrow-up
    53
    arrow-down
    1
    ·
    4 months ago

    Windows and NTFS support case sensitive filenames. The functionality is disabled for compatibility reasons.

  • arthurpizza@lemmy.world
    link
    fedilink
    English
    arrow-up
    47
    ·
    4 months ago

    I can make a file named COM1 on Linux. That’s on the forbidden list for Windows.

    The forbidden list:

    • CON
    • PRN
    • AUX
    • CLOCK$
    • NUL
    • COM1
    • COM2
    • COM3
    • COM4
    • COM5
    • COM6
    • COM7
    • COM8
    • COM9
    • LPT1
    • LPT2
    • LPT3
    • LPT4
    • LPT5
    • LPT6
    • LPT7
    • LPT8
    • LPT9
  • stupidcasey@lemmy.world
    link
    fedilink
    arrow-up
    45
    arrow-down
    1
    ·
    4 months ago

    But why though? Do you really want a bunch of file.txt File.txt FILE.txt fIle.txt FiLe.txt FIle.txt flIe.txt… I once had a nasty bug the O in a file name was a 0 and I didn’t notice I can’t imagine the horrors this would cause.

    • Moah@lemmy.blahaj.zone
      link
      fedilink
      arrow-up
      4
      arrow-down
      1
      ·
      4 months ago

      Yours is not too question why, yours is to admire the marvel of technology even if it’s worth than useless

    • KillingTimeItself@lemmy.dbzer0.com
      link
      fedilink
      English
      arrow-up
      2
      ·
      4 months ago

      surely this is the only place where we would run into stupid syntax problems, right?

      imo syntax bugs will be a thing until the end of time, they certainly beat having to rip out 90% of what you’ve done to fix it that’s for sure.

  • 9point6@lemmy.world
    link
    fedilink
    arrow-up
    41
    arrow-down
    1
    ·
    4 months ago

    Oh it’s even better, windows explorer can’t really do case sensitive

    But NTFS is a case sensitive file system

    This occasionally manifests in mind boggling problems

    • MudMan@fedia.io
      link
      fedilink
      arrow-up
      36
      arrow-down
      8
      ·
      4 months ago

      Yeah, right? Are we pretending that having case sensitive file names isn’t a bad call, or…? There are literally no upsides to it. Is that the joke?

      • RandomLegend [He/Him]@lemmy.dbzer0.com
        link
        fedilink
        arrow-up
        32
        arrow-down
        2
        ·
        4 months ago

        I’m with you here, i find it infuriating and i never ever had the situation where this was beneficial.

        Like who tf actually creates a File.txt, file.txt AND FILE.TXT in one place and actually differentiates them with that.

        • MudMan@fedia.io
          link
          fedilink
          arrow-up
          7
          arrow-down
          3
          ·
          4 months ago

          I mean, it’s less of an issue on Linux for both design and user profile reasons, but imagine a world where somebody can send all the normie Windows users a file called Chromesetup.exe to sit alongside ChromeSetup.exe. Your grandma would never stop calling you to ask why her computer stopped working, ever.

        • macniel@feddit.org
          link
          fedilink
          arrow-up
          4
          arrow-down
          1
          ·
          4 months ago

          Isn’t it less strain on the Filesystem? keeping a sanitised filename next to the actual filename surely has some drawbacks.

        • dev_null@lemmy.ml
          link
          fedilink
          arrow-up
          4
          arrow-down
          1
          ·
          4 months ago

          For example I might store blobs of data processed by my database in files that have the Base64 ID of the blob as the filename. If the filesystem was case insensitive, I’d be getting collisions.

          Users probably don’t make such files, no. But 99% of files on a computer weren’t created by the user, but are part of some software, where it may matter.

          And often software originally written for Linux or macOS and then ported to Windows ends up having problems due to this.

      • Lucy :3@feddit.org
        link
        fedilink
        arrow-up
        6
        arrow-down
        1
        ·
        4 months ago

        For files of casual users it might be of benefit. They don’t care about capitalization. For system files, I find it pretty weird to name them with random capitalization, and it’s actually pretty annoying. Only lower- (or upper-)case would be ok tho.

        • MudMan@fedia.io
          link
          fedilink
          arrow-up
          8
          ·
          4 months ago

          Well, camel case does help readability on file names. But I guess that’s the point of case insensitive names, it doesn’t matter. However you want to call them will work.

  • pyre@lemmy.world
    link
    fedilink
    arrow-up
    42
    arrow-down
    3
    ·
    4 months ago

    thank god it’s not case sensitive holy shit. i don’t understand the kind of person who would see that as a positive.

    • A_Random_Idiot@lemmy.world
      link
      fedilink
      English
      arrow-up
      24
      arrow-down
      2
      ·
      4 months ago

      Seriously.

      It sounds like a fucking nightmare. Imagine working on something for days and it refuses to work cause you accidentally capitalized 1 file name and dont notice it?

      That sounds like the kind of shit they’d do in tech hell.

      • Eiri@lemmy.ca
        link
        fedilink
        arrow-up
        2
        ·
        3 months ago

        We regularly have that problem at work. Works on your development PC on Windows. Push to pipeline, get cryptic error messages. Once we were two people trying to figure it out for half an hour.

        Case-sensitive file names. Why.

    • plumbercraic@lemmy.sdf.org
      link
      fedilink
      arrow-up
      16
      arrow-down
      1
      ·
      4 months ago

      I absolutely fail to see the utility of having a user called Bob and bob, or a dir called Downloads and downloads. Capitalisation makes sense in code - at a glance I can know I’m looking at a Class or a var, but for system administration it has only ever wasted time, and not once made anything easier.

      • letsgo@lemm.ee
        link
        fedilink
        arrow-up
        5
        ·
        3 months ago

        If capitalisation is used to indicate the start of words then it could make sense for a webserver to serve ExpertsExchange and ExpertSexChange. But yeah having 16 possible versions of “main” would be horrendous.

        • Eiri@lemmy.ca
          link
          fedilink
          arrow-up
          2
          ·
          3 months ago

          URLs aren’t case-sensitive though, so wouldn’t those necessarily have another kind of differentiator?

    • platypus_plumba@lemmy.world
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      3 months ago

      I honestly don’t get why everyone is agreeing with Windows on this one. I just love how explicit Linux is.

      file.txt is fucking file.txt. Don’t do any type extra magic. Do exactly as I’m saying. If I say “open file.txt”, it is “open file.txt”, not “open File.txt”.

      The feature isn’t being able to create filenames with the same name, nobody does that. The feature is how explicit it is.

      It would be so confusing to read some code trying to access FILE.TXT and then find the filesystem has file.txt

  • calcopiritus@lemmy.world
    link
    fedilink
    arrow-up
    33
    arrow-down
    3
    ·
    4 months ago

    I’m with windows on this one. Case insensitive is much more ergonomics with the only sacrifice represented by this meme. And a little bit of performance of course. But the ergonomics are worth it imo.

    • KillingTimeItself@lemmy.dbzer0.com
      link
      fedilink
      English
      arrow-up
      7
      arrow-down
      7
      ·
      4 months ago

      so cool story, on linux theres this thing called you can just not make case sensitive files, i do it a lot.

      You can also just, use a case insensitive autocomplete setup as well. If you’re using a mouse idk why you’re even talking about this so that wouldn’t matter.

          • exu@feditown.com
            link
            fedilink
            English
            arrow-up
            2
            ·
            4 months ago

            If I have two folders in my directory, Dir1 and dir2, what does d <TAB> autocomplete to and what should it do?

            • ReCursing@lemmings.world
              link
              fedilink
              arrow-up
              2
              ·
              4 months ago

              In the case of zsh it will quite happily do either and ask you which you meant just like if they were called Dir1 and Dir2. Also works if you have a dir1 and Dir2 in the same directory as well

            • KillingTimeItself@lemmy.dbzer0.com
              link
              fedilink
              English
              arrow-up
              1
              ·
              3 months ago

              it depends on your shell configs. In my case it sits at dir/Dir (case insensitive) waiting for me to specify 1 or 2, where as if you disable it, it’s dependent on whether or not you type d or D.

            • boomzilla@programming.dev
              link
              fedilink
              arrow-up
              0
              ·
              3 months ago

              In fish it would immediately expand to dir2.

              If you have “Dir1” and “DIR2” and you type “cd d”, your prompt will look like in the next picture. Fish automatically transforms “d” into “D”, because there is no dir starting with the lowercase “d”.

              On a subsequent <TAB> you’ll get a list of dirs matching your prompt so far in which you choose an entry with the cursor key and enter it with the enter key.

      • calcopiritus@lemmy.world
        link
        fedilink
        arrow-up
        5
        ·
        4 months ago

        When you say "canse insensitive file*, do you mean lowercase files? Or is there an option?

        Idk why we talking about mouses. When I’m on Linux, most of the time it’s through ssh.

        • KillingTimeItself@lemmy.dbzer0.com
          link
          fedilink
          English
          arrow-up
          1
          arrow-down
          2
          ·
          3 months ago

          either or, whatever the fuck you want really.

          You can just not use capital letters if you feel like it. Works pretty well. Or just use a case insensitive shell handler for pretending it’s not actually cased at all.

          Hell im pretty sure you could just render all of the text in a certain case and call it a day lol.

  • linearchaos@lemmy.world
    link
    fedilink
    English
    arrow-up
    29
    ·
    4 months ago

    Yeah I’ve been using Linux for a very long time. The amount of time I’ve spent on the case being incorrect is non-trivial. I’ve gotten better at not screwing it up throughout the years but the sum of advantages is far outweighed by the sum of debugging time spent.

  • radamant@lemmy.world
    link
    fedilink
    English
    arrow-up
    38
    arrow-down
    14
    ·
    4 months ago

    Windows way is superior, in my opinion. I don’t think there’s a need for File.txt and fILE.txt

    • lily33@lemm.ee
      link
      fedilink
      arrow-up
      18
      arrow-down
      1
      ·
      edit-2
      4 months ago

      Indeed. Linux audio also allows control characters like backspace to be part of a file name (though it is harder to make such file as you can’t just type the name). Which is just horrible.

  • maryjayjay@lemmy.world
    link
    fedilink
    arrow-up
    20
    ·
    4 months ago

    The android build system used that limitation of Windows to prevent android from being built on Windows. They purposely had directories with the same name but different capitalization.