Well an uppercase ASCII char is a different char than its lowercase counterpart. I would argue that not differentiating between them is an arbitrary rule that doesn’t make any sense, and in many cases, is more computationally difficult as it involves more comparisons and string manipulations (converting everything to lower case).
And the result is that you ultimately get files with visually distinct names, that aren’t actually treated as distinct, and so there is a disconnect from how we process information and how the computer is doing it.
‘A’ != ‘a’, they are just as unequal as ‘a’ and ‘b’
Edit: I would say the use case is exactly the same as programming case sensitivity, characters have meaning and capitalizing them has intent. Casing strategies are immensely prevalent in programming and carry a lot of weight for identifying programmers’ intent (properties vs backing fields as an example) similar intent can be shown with file names.
On Mac when I rename a folder from “FOO” to “foo” git sees them as the same folder so no change is committed. In JavaScript I import a file from “foo” so locally that works. Commit my code and someone else pulls in my changes on their machine. But on their machine the folder is still “FOO” so importing from “foo” doesn’t work.
Think the other way around: What’s the use case for case insensitive file names? Does it justify the effort and complexity for the filesystem and the programs to know the difference between lower and upper space chars?
NTFS absolutely supports case sensitivity but, presumably for consistency with FAT and FAT32 (Windows is all about backwards compatibility), and for the sake of Average-Joe-User who’s only interaction with the filesystem is opening Word and Excel docs, it doesn’t by default.
…and whoever decided a file system should be case insensitive by default, I hate you.
What’s the use case for case sensitive file names
Well an uppercase ASCII char is a different char than its lowercase counterpart. I would argue that not differentiating between them is an arbitrary rule that doesn’t make any sense, and in many cases, is more computationally difficult as it involves more comparisons and string manipulations (converting everything to lower case).
And the result is that you ultimately get files with visually distinct names, that aren’t actually treated as distinct, and so there is a disconnect from how we process information and how the computer is doing it.
‘A’ != ‘a’, they are just as unequal as ‘a’ and ‘b’
Edit: I would say the use case is exactly the same as programming case sensitivity, characters have meaning and capitalizing them has intent. Casing strategies are immensely prevalent in programming and carry a lot of weight for identifying programmers’ intent (properties vs backing fields as an example) similar intent can be shown with file names.
Case insensitive handling protects end-users from doing “bad” things and confusion.
On Mac when I rename a folder from “FOO” to “foo” git sees them as the same folder so no change is committed. In JavaScript I import a file from “foo” so locally that works. Commit my code and someone else pulls in my changes on their machine. But on their machine the folder is still “FOO” so importing from “foo” doesn’t work.
Because I want to?
Think the other way around: What’s the use case for case insensitive file names? Does it justify the effort and complexity for the filesystem and the programs to know the difference between lower and upper space chars?
NTFS absolutely supports case sensitivity but, presumably for consistency with FAT and FAT32 (Windows is all about backwards compatibility), and for the sake of Average-Joe-User who’s only interaction with the filesystem is opening Word and Excel docs, it doesn’t by default.
All that said, it can be set on a per-directory basis: https://learn.microsoft.com/en-us/windows/wsl/case-sensitivity
What’s a windows?