5 ms·
Case insensitive is how humans think about names. “John” and “New York” are the same identifiers as “john” and “new york”. It would be pretty weird if someone i
by pavlov 2y ago
Case insensitive is how humans think about names. “John” and “New York” are the same identifiers as “john” and “new york”. It would be pretty weird if someone insisted that their passport is invalid because the name is printed in all caps and that’s not their preferred spelling.
IMO the best thing would be to call Unix-style case-sensitive file names something else. But it’s obviously too late for that.
- Hamuko 2y agoHumans will also treat "Jyväskylä", "Jyvaskyla" and "Jyvaeskylae" as the same identifiers but I don't think that's a good basis for file storage to have those be the same filenames.
- pavlov 2y agoIn the era of Unicode, this battle is pretty much lost. Several different code point sequences can produce the glyph 'ä', and user input can contain any of these. You need to normalize anyway.
- glandium 2y agoAnd macOS does that normalization at the filesystem level.
- justincormack 2y agoPassport offices care and may object.
- bigstrat2003 2y agoAgreed. I think case sensitivity in Unix filesystems is actually a pretty poor design decision. It prioritizes what is convenient for the computer (easy to compare file paths) over what makes sense for the user (treating file paths the same way human intuition does).
- JackSlateur 2y agoBut end users do not speak to filesystems. Programs speak to filesystems.
- howerj 2y agoExcept that is not true, it is sometimes convenient, and sometimes very inconvenient and not wanted. My reasoning for file systems that are case sensitive is the following: 1. Some people want file systems to case sensitive. 2. Case sensitive is easier to implement. This is very much not a trivial thing. Case insensitivity only really makes sense for ASCII. In the camp of wanting case insensitivity: 1. Some people want file systems to be case insensitive. There is more in favor of case sensitivity.
- kaashif 2y agoI don't know if that's right. The most obvious way two characters can be the same is if they actually look exactly the same i.e. are homoglyphs https://en.wikipedia.org/wiki/Homoglyph https://en.wikipedia.org/wiki/Homoglyph But no filesystem I am aware of is actually homoglyph insensitive. Case insensitive filesystems picked one arbitrary form of intuition (and not even the .oat obvious one) in one language (English) and baked that into the OS at a somewhat deep level. You say "human intuition" - are those using different writing systems nonhuman then?
- sham1 2y agoBut the thing is that the file system doesn't need to be case-insensitive for your system to support human intuition! As others have said, people don't look at and use filesystems, they use programs that interface with the filesystem. You can absolutely have a case-sensitive system that nonetheless lets you search files in a case-insensitive manner, for example. After all, to make searches efficient, you might want to index your file structure, and while doing that, you might as well also have a normalised file name within the index you search against. Now, as you said, UNIX did the choice that's easier for computers. And for computers, case-insensitive filesystems would be worse. There are things that are definitely strange about UNIX filesystems (who doesn't love linefeeds in file names!?), but case-sensitivity is not one of them.
- 2y ago
- lalaithion 2y agoThe word “Turkey” is not the same as “turkey”, “August” is not the same as “august”, and “Muse” is not the same as “muse”. https://en.m.wikipedia.org/wiki/Capitonym https://en.m.wikipedia.org/wiki/Capitonym
- pavlov 2y agoYet "TURKEY" is not a separate word from "Turkey" and "turkey". Ultimately context disambiguates these words, not capitalization.
- justincormack 2y agoAnd “polish” and “Polish” are not even pronounced the same.
- scosman 2y agoThey might be at the beginning of a sentence (depends on the reason for capitalization). It’s more like identifier reuse, on a case insensitive “system”. “John” isn’t the same as “John” if I’m talking about two separate Johns.