Visual Studio 2003
Re:Visual Studio 2003
Surely you mean case sensitivity, not insensitivity, since Unix preserves case quite tenaciously, even when it probably shouldn't. Unless you mean the fact that case sensitivity in Unix isn't quite universal, which can catch you in surprising ways... In either case, there are much better reasons around to hate Unix than that.
I long ago decided that the question of whether case should be significant or not is one that doesn't have any simple answer. On the one hand, keeping case significant means that you can end up with two files with the 'same' name, which can cause nasty sorts of confusion. OTOH, if you force everything into a single case, it becomes unaesthetic at best, and forces all kinds of workarounds with searches and so forth. Perserving case but treating it as insignificant (as Windows does most of the time) mostly solves the aesthetic problem, but compounds the other one, and also can lead to inconsistent behavior if some tools treat case as insensitive and others treat it as sensitive.
I long ago decided that the question of whether case should be significant or not is one that doesn't have any simple answer. On the one hand, keeping case significant means that you can end up with two files with the 'same' name, which can cause nasty sorts of confusion. OTOH, if you force everything into a single case, it becomes unaesthetic at best, and forces all kinds of workarounds with searches and so forth. Perserving case but treating it as insignificant (as Windows does most of the time) mostly solves the aesthetic problem, but compounds the other one, and also can lead to inconsistent behavior if some tools treat case as insensitive and others treat it as sensitive.
Re:Visual Studio 2003
AmigaOS had the answer, at least for me. It preserves case, but is insensitive about it. Worked like a charm, unless you attempted to apply your m4d (case sensitive) b45h sk1llz to it - in which case, you got what you deserved. ;DSchol-R-LEA wrote: I long ago decided that the question of whether case should be significant or not is one that doesn't have any simple answer.
Every good solution is obvious once you've found it.
Re:Visual Studio 2003
As far as I can tell, the only added complexity to file searches would be an option to enable case-sensitive searching...Schol-R-LEA wrote:OTOH, if you force everything into a single case, it becomes unaesthetic at best, and forces all kinds of workarounds with searches and so forth. Perserving case but treating it as insignificant (as Windows does most of the time) mostly solves the aesthetic problem, but compounds the other one...
This hasn't come across as a problem with the set of Windows applications I've used. Is inconsistent case behavior among different programs really an issue?Schol-R-LEA wrote:and also can lead to inconsistent behavior if some tools treat case as insensitive and others treat it as sensitive.
Re:Visual Studio 2003
Hi
I'm thinking of trying Vim but in my oppinion the title of king of editors should go to EditPlus, it's perfect!
BTW What I hate most about Unix are drivers!! Windows, for all it's faults, has the right idea about drivers and also the Windows Installer for applications, simple to use, effective, job done!
srg
I'm thinking of trying Vim but in my oppinion the title of king of editors should go to EditPlus, it's perfect!
BTW What I hate most about Unix are drivers!! Windows, for all it's faults, has the right idea about drivers and also the Windows Installer for applications, simple to use, effective, job done!
srg
Re:Visual Studio 2003
Here's my opinion:
Case sensitivity is WRONG! ALWAYS! BAD! WRONG!
I give a name to a file. I don't care whether I hold the Shift key down when I name it. I don't care whether I hold the Shift key down when I open it, either. It's the same file as far as I'm concerned. Sure, the characters in the name might have different ASCII or Unicode values, but I don't care. It's the same file. I'm the same person regardless of whether I'm called Tim, TIM or tIm.
Case sensitivity is WRONG! ALWAYS! BAD! WRONG!
I give a name to a file. I don't care whether I hold the Shift key down when I name it. I don't care whether I hold the Shift key down when I open it, either. It's the same file as far as I'm concerned. Sure, the characters in the name might have different ASCII or Unicode values, but I don't care. It's the same file. I'm the same person regardless of whether I'm called Tim, TIM or tIm.
Re:Visual Studio 2003
My editor of choice for OS development under FreeBSD is nEdit. Its simple, fast, and other than document tabs, has everything I need.
Re:Visual Studio 2003
Now the emacs & vi(m) people have learned their lesson, don't flame over a matter of preference. Both are just as useful and just as common. Live with one or the other, design for one or the other, be happy. Don't force your choice on others if possible.Tim Robinson wrote: Case sensitivity is WRONG! ALWAYS! BAD! WRONG!
Let's make I, l and 1 the same character too, why not? Typewriter people do it all the time (note: don't let them use your excel spreadsheet without teaching them about the 1's). And while you're at it, let's map leetspeek to roman characters too, so nobody is confused when we type 1337 c0mm3|\|75 right?I give a name to a file. I don't care whether I hold the Shift key down when I name it. I don't care whether I hold the Shift key down when I open it, either. It's the same file as far as I'm concerned. Sure, the characters in the name might have different ASCII or Unicode values, but I don't care. It's the same file. I'm the same person regardless of whether I'm called Tim, TIM or tIm.
Actually, it doesn't work that simple. It's still a delicate balance you don't want to kick over.
Re:Visual Studio 2003
The gift of irony is not given to every one and this is for sure a sad thing ... anyway, *who* 's been flaming here?
as for I, l and 1 -> tell the font designers to make them a way they can be distinguished. period.
as for I, l and 1 -> tell the font designers to make them a way they can be distinguished. period.
Re:Visual Studio 2003
That's my point -- I don't believe case sensitivity has a place anywhere in the file system.Candy wrote:Now the emacs & vi(m) people have learned their lesson, don't flame over a matter of preference. Both are just as useful and just as common. Live with one or the other, design for one or the other, be happy. Don't force your choice on others if possible.
I, | and 1 are semantically different things. I is a letter. | is a symbol, e.g. used to denote piping on the command line. 1 is a number.Let's make I, l and 1 the same character too, why not? Typewriter people do it all the time (note: don't let them use your excel spreadsheet without teaching them about the 1's). And while you're at it, let's map leetspeek to roman characters too, so nobody is confused when we type 1337 c0mm3|\|75 right?
Z and z are two forms of the 26th letter in the alphabet. The Latin alphabet is peculiar in having two forms for each of its letters. Very few other scripts make this distinction (Cyrillic and Georgian spring to mind).
If I ask for a file called 'zog', I shouldn't need to remember whether I originally typed its name as 'zog', 'Zog' or 'ZOG'. It's the same name in any combination of cases. Sure, when I'm shown the file's name, I should be shown it in the original case, because I might like to see my files in Sentence Case or camelCase or WhateverThisCaseIsCalled.
A couple of other non-semantic differences that Unicode knows about are halfwidth vs. fullwidth characters and composited characters. In the Unicode BMP, there are separate sets of codepoints for half-width and full-width Latin characters. I might type the name of a file, on my imaginary Chinese keyboard, using full-width characters. Later on, I might do a search having typed the name with half-width characters. Full-width and half-width characters should compare the same when doing wildcards -- they may look different on screen, but semantically they're the same.
Composited characters consist of a base character (e.g. Latin lower case O, which looks like o) and one or more combining characters (e.g. combining diaeresis, which looks like ?). I might download a file called 'm?bius', where the author of the file spelled the '?' using an 'o' and a '?'. If I try to run that file from the command line using my imaginary German keyboard, I would enter the command name using a Latin lower case O with diaresis, which looks like ?. Combined character sequences and individual precombined characters need to compare to the same thing.
Which brings me back to character case: Z and z are different visual forms of the same letter. So, like full-/half-width and combined/precombined characters, they need to compare to the same thing.
If you can think of any examples where case-sensitivity in file names is useful for the user, I'd be glad to read them.
Re:Visual Studio 2003
I am 100% with Tim here, but...
One thing that caught even the C++ standards comittee unawares: the German small letter "?", when written as capital, equates to "SS" (two capital letters, sic!)...Tim Robinson wrote: Z and z are two forms of the 26th letter in the alphabet. The Latin alphabet is peculiar in having two forms for each of its letters.
Every good solution is obvious once you've found it.
Re:Visual Studio 2003
I believe the file system should support case sensitivity, but the OSes should not use it as being sensitive, but only aware. Or better yet, make it a setting. Since a sensitive FS can support all aware OSes, and an aware FS cannot support all OSes, I vote for a sensitive FS with a bit that says whether you should actually pay any attention to it on disk.Tim Robinson wrote: That's my point -- I don't believe case sensitivity has a place anywhere in the file system.
Or for Joe Average, make it check whether there are more than one, and if there aren't (99.999999999999% of the cases, except for makefile and Makefile usually) it just takes the only one.
Even better, and exactly my point, they all look alike. The second one wasn't the pipe-symbol, it was the character L in lower case. How should a user differentiate? He will only see a file written as 1ist, list, |ist or Iist and will not know which it is. (number, char L, pipe, char i)I, | and 1 are semantically different things. I is a letter. | is a symbol, e.g. used to denote piping on the command line. 1 is a number.Let's make I, l and 1 the same character too, why not? Typewriter people do it all the time (note: don't let them use your excel spreadsheet without teaching them about the 1's). And while you're at it, let's map leetspeek to roman characters too, so nobody is confused when we type 1337 c0mm3|\|75 right?
True, but I still feel it should support sensitive file names.If I ask for a file called 'zog', I shouldn't need to remember whether I originally typed its name as 'zog', 'Zog' or 'ZOG'. It's the same name in any combination of cases. Sure, when I'm shown the file's name, I should be shown it in the original case, because I might like to see my files in Sentence Case or camelCase or WhateverThisCaseIsCalled.
I happen to be dutch, and we have trema's (umlauts) and accents too . I hate it when people do that, but I feel they should be compared identical too. (that goes for domain names too!)A couple of other non-semantic differences that Unicode knows about are halfwidth vs. fullwidth characters and composited characters. In the Unicode BMP, there are separate sets of codepoints for half-width and full-width Latin characters. I might type the name of a file, on my imaginary Chinese keyboard, using full-width characters. Later on, I might do a search having typed the name with half-width characters. Full-width and half-width characters should compare the same when doing wildcards -- they may look different on screen, but semantically they're the same.
Composited characters consist of a base character (e.g. Latin lower case O, which looks like o) and one or more combining characters (e.g. combining diaeresis, which looks like ?). I might download a file called 'm?bius', where the author of the file spelled the '?' using an 'o' and a '?'. If I try to run that file from the command line using my imaginary German keyboard, I would enter the command name using a Latin lower case O with diaresis, which looks like ?. Combined character sequences and individual precombined characters need to compare to the same thing.
Most obvious and probably the only one: when reading from a system with a user that does use it. If you then don't support it, you're fucked. Since you can support it with a fallback locate for non-sensitive names, it should not hurt.If you can think of any examples where case-sensitivity in file names is useful for the user, I'd be glad to read them.
Re:Visual Studio 2003
OK, so it's useful to put the option of case sensitivity in the kernel if you want to support programs which are case sensitive.
Scenario 1: You support Posix on your OS. You manage to create two files whose name differs only by case. You want to delete only one of them. So you need a removal tool which is case sensitive, probably a port of Posix rm.
Scenario 2: You implement an NFS server and a Unix client connects to a host running your OS. It wants case-sensitive file names.
The Windows kernel calls have an option which say whether it should ignore case when comparing file names. The Win32 APIs set this parameter to true (case insensitive), and the Posix APIs set this parameter to false. You can create two files whose names differ only by case using a Posix app on Windows, and it will confuse Win32 programs. To delete them, you either need to delete them from Windows using a wildcard, or use the RM.EXE utility, which is a Posix program.
I saw some discussion on the ReactOS mailing list recently, along the lines of "why are you bothering with a whole OS? Why not add Win32 to Linux?". One of the arguments was that case insensitivity could not work without big changes to the kernel. What's more, the kernel would then need to know all about Unicode, because the normal ASCII toupper/tolower routines won't work on Unicode. Linus is against all this. Note that Samba needs case-insensitive names, so that Windows clients can connect to it, and it has to implement this itself.
In conclusion: I believe that the default interface to the OS shouldn't distinguish between case for file names, but that the file system should have the option, so that Posix apps can work.
Scenario 1: You support Posix on your OS. You manage to create two files whose name differs only by case. You want to delete only one of them. So you need a removal tool which is case sensitive, probably a port of Posix rm.
Scenario 2: You implement an NFS server and a Unix client connects to a host running your OS. It wants case-sensitive file names.
The Windows kernel calls have an option which say whether it should ignore case when comparing file names. The Win32 APIs set this parameter to true (case insensitive), and the Posix APIs set this parameter to false. You can create two files whose names differ only by case using a Posix app on Windows, and it will confuse Win32 programs. To delete them, you either need to delete them from Windows using a wildcard, or use the RM.EXE utility, which is a Posix program.
I saw some discussion on the ReactOS mailing list recently, along the lines of "why are you bothering with a whole OS? Why not add Win32 to Linux?". One of the arguments was that case insensitivity could not work without big changes to the kernel. What's more, the kernel would then need to know all about Unicode, because the normal ASCII toupper/tolower routines won't work on Unicode. Linus is against all this. Note that Samba needs case-insensitive names, so that Windows clients can connect to it, and it has to implement this itself.
In conclusion: I believe that the default interface to the OS shouldn't distinguish between case for file names, but that the file system should have the option, so that Posix apps can work.
Re:Visual Studio 2003
I believe the default interface should think in lines of nonclashing filenames, and if possible, ask each time whether the user means the other file which already exists. Most users click and do not type file names, so this will not add much overhead or headaches. An always-yes-on-this-question checkbox should also be there. I also believe it should be possible to load case sensitive files on that same disk. It's just that the OS should not whine about it against people that don't care (linux does), and should support it for people that want it (Windows doesn't). You (multiple) seem unable to grasp such a combo. Why can't you support both?Tim Robinson wrote: The Windows kernel calls have an option which say whether it should ignore case when comparing file names. The Win32 APIs set this parameter to true (case insensitive), and the Posix APIs set this parameter to false. You can create two files whose names differ only by case using a Posix app on Windows, and it will confuse Win32 programs. To delete them, you either need to delete them from Windows using a wildcard, or use the RM.EXE utility, which is a Posix program.
I saw some discussion on the ReactOS mailing list recently, along the lines of "why are you bothering with a whole OS? Why not add Win32 to Linux?". One of the arguments was that case insensitivity could not work without big changes to the kernel. What's more, the kernel would then need to know all about Unicode, because the normal ASCII toupper/tolower routines won't work on Unicode. Linus is against all this. Note that Samba needs case-insensitive names, so that Windows clients can connect to it, and it has to implement this itself.
In conclusion: I believe that the default interface to the OS shouldn't distinguish between case for file names, but that the file system should have the option, so that Posix apps can work.
Re:Visual Studio 2003
Because I believe in having it right by design. Too often developers effectively say, "I can't work out which is right, so I'll make it configurable". That leads to software having a zillion configuration options where it should do the Right Thing in the first place.
I completely respect your opinion, but I have very strong views on design issues that concern human-computer interaction.
I completely respect your opinion, but I have very strong views on design issues that concern human-computer interaction.
- Pype.Clicker
- Member
- Posts: 5964
- Joined: Wed Oct 18, 2006 2:31 am
- Location: In a galaxy, far, far away
- Contact:
Re:Visual Studio 2003
If it was in my OS, i would say that case-sensitivity is a folder-related options. You want case-insensibility in your MyDocuments folder ? fine! sets it there and where a program will try to locate a file, insensible search will occur ... You want case-sensibility in your java project folder ? set it there too ...
As you might guess, i believe that folders should be more than list of filenames, and yes, i plan to have FS plug-in to handle those 'specific folders' ...
Note that you can easily have case-insensibility in Linux : just use a FATxx partition
As you might guess, i believe that folders should be more than list of filenames, and yes, i plan to have FS plug-in to handle those 'specific folders' ...
Note that you can easily have case-insensibility in Linux : just use a FATxx partition