• Australis13@fedia.io
    link
    fedilink
    arrow-up
    192
    arrow-down
    7
    ·
    28 days 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
      7
      ·
      28 days 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
        35
        ·
        28 days 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
          ·
          28 days 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
          ·
          27 days 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
            ·
            27 days 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
              26 days 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
              4
              ·
              27 days 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.

      • Damage@feddit.it
        link
        fedilink
        arrow-up
        3
        ·
        27 days ago

        Let’s say you have a software that generates randomly named files, having the ability to use both upper case and lower case means you can have more files with the same amount of characters, but that sounds horrible and it’s the only thing I can think of atm

      • Jakeroxs@sh.itjust.works
        link
        fedilink
        arrow-up
        2
        arrow-down
        1
        ·
        edit-2
        28 days 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.

    • DefederateLemmyMl@feddit.nl
      link
      fedilink
      arrow-up
      42
      arrow-down
      10
      ·
      edit-2
      28 days ago

      This isn’t “Windows design”… this is just inherited stone age bullshit from the DOS days when the filesystem was FAT16 and all file names were uppercase 8.3.

      NTFS is case sensitive in its underlying design, but was made case insensitive by default, yet case preserving, for reasons of backwards compatibility.

      If Microsoft has to design something from scratch, without the need for backwards compatibility, they go for case sensitive themselves. For example: Azure Blob Storage has case sensitive file names.

      • Redjard@lemmy.dbzer0.com
        link
        fedilink
        arrow-up
        4
        ·
        27 days ago

        If you rename a file only changing the casing it doesn’t update properly, you need to rename it to something else and back.
        This is so userfriendly I have been stumped by it multiple times.

        On the other hand in using Linux I have had a number of problems with the casing of files: The number is 0

        • DefederateLemmyMl@feddit.nl
          link
          fedilink
          arrow-up
          4
          ·
          27 days ago

          If you rename a file only changing the casing it doesn’t update properly, you need to rename it to something else and back. This is so userfriendly I have been stumped by it multiple times.

          To my great surprise, this has been fixed. I don’t know when, but I tried it on my Windows 10 VM and it just worked. Only took them 20 years or so :)

      • dan@upvote.au
        link
        fedilink
        arrow-up
        1
        ·
        26 days ago

        case insensitive by default, yet case preserving

        This isn’t just a Windows thing… It’s the same on MacOS by default.

    • gravitas_deficiency@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      2
      ·
      edit-2
      28 days 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
        ·
        28 days 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
          4
          ·
          28 days 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
    112
    arrow-down
    4
    ·
    edit-2
    28 days 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
          ·
          28 days 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
            9
            ·
            28 days 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
      ·
      28 days 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
        28 days 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
          ·
          28 days 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
          ·
          27 days 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
      ·
      26 days 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
        ·
        26 days 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
          ·
          26 days 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
      ·
      27 days 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
    ·
    28 days ago

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

  • arthurpizza@lemmy.world
    link
    fedilink
    English
    arrow-up
    49
    ·
    28 days 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
    • lud@lemm.ee
      link
      fedilink
      arrow-up
      18
      ·
      28 days ago

      That’s because Windows is generally very backwards compatible.

        • DefederateLemmyMl@feddit.nl
          link
          fedilink
          arrow-up
          13
          arrow-down
          1
          ·
          27 days ago

          The thing is, a lot of the legacy backwards compatible stuff that’s in Linux is because a lot of things in Unix were actually pretty well thought out from the get go, unlike many of the ugly hacks that went into MSDOS and later Windows and overstayed their welcome.

          Things like: long case sensitive file names from the beginning instead of forced uppercase 8.3 , a hierarchical filesystem instead of drive letters, “everything is a file” concept, a notion of multiple users and permissions, pre-emptive multitasking, proper virtual memory management instead of a “640k is enough” + XMS + EMS, and so on.

          • BCsven@lemmy.ca
            link
            fedilink
            arrow-up
            8
            ·
            27 days ago

            It still amazes me how well thought out unix was for the era when computing was in its infancy. But I guess that is what you get with computer science nerds from Universities and a budget for development based on making a product the goal, not quarterly profit the goal.

            • superkret@feddit.org
              link
              fedilink
              arrow-up
              4
              ·
              edit-2
              27 days ago

              It’s what you get when you design an OS for a mainframe computer that is accessed by many users sharing its resources.
              DOS was designed for single-user PC’s with very limited processing power, memory and storage, and no access to networked drives. Lots of its hacks and limitations saved a few hundred bytes of memory, which was crucial at the time.

              • BCsven@lemmy.ca
                link
                fedilink
                arrow-up
                3
                arrow-down
                1
                ·
                27 days ago

                I guess i was meaning compared to DOS but modern Windows, where stupid stuff is broken, and they care more about ads than creating a clean OS

          • the_crotch@sh.itjust.works
            link
            fedilink
            arrow-up
            4
            ·
            27 days ago

            Unix was designed for mainframes, qdos/msdos was designed to be a cpm knockoff the local nerd could use to play commander keen and do his taxes. It’s actually impressive how much modern/business functionality they were able to cram into that.

            • DefederateLemmyMl@feddit.nl
              link
              fedilink
              English
              arrow-up
              6
              ·
              27 days ago

              Unix was designed for mainframes

              Unix was never for mainframes. It was for 16-bit minicomputers that sat below mainframes, but yes they were more advanced than the first personal computers.

              It’s actually impressive how much modern/business functionality they were able to cram into that.

              Absolutely, but you have to admit that it’s a less solid foundation to build a modern operating system on.

              In the 80s, there were several Unices for PC too btw: AT&T, SCO, even Microsoft’s own Xenix. Most of them were prohibitively expensive though.

    • cygnus@lemmy.ca
      link
      fedilink
      arrow-up
      8
      ·
      28 days ago

      LPT1 LPT2 LPT3 LPT4 LPT5 LPT6 LPT7 LPT8 LPT9

      Why does Microsoft hate Life Pro Top listicles?

      • DefederateLemmyMl@feddit.nl
        link
        fedilink
        arrow-up
        3
        ·
        27 days ago

        You’re probably joking, but in case you don’t know: LPT stands for Line Printer Terminal, and LPT1, LPT2, LPT3… referred to parallel ports which were typically (though not exclusively) used to connect a printer.

  • stupidcasey@lemmy.world
    link
    fedilink
    arrow-up
    47
    arrow-down
    1
    ·
    28 days 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.

    • inverted_deflector@startrek.website
      link
      fedilink
      arrow-up
      9
      ·
      28 days ago

      Yeah I’ve definitely run into issues where case sensitivity causes problems. Especially in programs that are cross-functional between Windows and Linux. Like when I recently downloaded some bios files for a Playstation emulator and I spend time figuring out and troubleshooting why they weren’t working until it finally hit me the door McFly it’s cause the file name was in lowercase not uppercase. Than I cared to admit to figure out

      • AnUnusualRelic@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        27 days ago

        Oooh, I’ve had that with some device. I think it was a camera or something like that. I’d forgotten about it. It took me ages to figure it out.

    • Moah@lemmy.blahaj.zone
      link
      fedilink
      arrow-up
      4
      arrow-down
      1
      ·
      28 days 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
      ·
      27 days 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
    44
    arrow-down
    1
    ·
    28 days 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

    • Wolf314159@startrek.website
      link
      fedilink
      arrow-up
      14
      ·
      28 days ago

      Yeah, it’s super weird. I once named a file with mixed case, but one of the letters was the wrong case. Renaming the file didn’t work at first. Renaming a file named PAscalCase.txt to PascalCase.txt resulted in no change to the filename. Windows continued to show it as PAscalCase.txt. I had to rename it to something totally different with different characters entirely, then rename it again to get it right.

      • dual_sport_dork 🐧🗡️@lemmy.world
        link
        fedilink
        arrow-up
        12
        arrow-down
        1
        ·
        edit-2
        27 days ago

        Renaming it in Explorer does actually rename the file if all you change is the case (in current Windows, at least, see the pedantry below), but whatever mechanism Explorer uses to determine “has this file’s name changed” is apparently case insensitive. So it won’t refresh the file list. I imagine this is yet another one of those damn fool Windows 95 holdovers, or something.

        You don’t have to do any multiple-renaming jiggery pokery. Just press F5 to refresh that Explorer window and magically then it’ll show you that the file’s name was indeed changed all along.

        • Wolf314159@startrek.website
          link
          fedilink
          arrow-up
          2
          arrow-down
          8
          ·
          27 days ago

          Nope. Tried that. Tried DIR in a command window too. But I never specified even what version of Windows I was running, so I’m a little unclear why you’re trying to troubleshoot a problem I was experiencing on windows nearly a decade ago. I guess this is what be mansplained too feels like.

      • Scrollone@feddit.it
        link
        fedilink
        arrow-up
        9
        ·
        28 days ago

        I wouldn’t do it though. It can only lead to problems, especially with poorly coded programs.

        • Kushan@lemmy.world
          link
          fedilink
          English
          arrow-up
          1
          ·
          28 days ago

          It’s generally fine, the vast majority of applications are fine with it, it’s mainly the legacy shit that falls over.

          You can also enable it on a per directory basis, and I’ve yet to encounter a Dev tool that has issues with it. Same for the path limit, you can have long paths enabled too.

      • dan@upvote.au
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        26 days ago

        Same on MacOS - when you format a drive, you can pick whether it’s case sensitive or not.

    • stupidcasey@lemmy.world
      link
      fedilink
      arrow-up
      1
      ·
      28 days ago

      Lol, I have a NTFS drive in a Linux container so I didn’t have to re download everything I had on windows works perfectly fine, now I’m assuming if I ever try to move it back to windows something horrible will break.