On Case Sensitivity
Well, applications should be ignorant of the details of their filesystem. But as the case thing shows, this is not always so. There could be other glitches as well, but you won't know until you do a thorough beta test.
All I was saying in my original post was that I couldn't see Apple throw ZFS in the mix as the default filesystem at the very last minute before the release. There just would be too many things that could go wrong. Beta testing is an important part of the QA process and I can't imagine that Apple would skip it for something as important as a filesystem. I was saying this in response of people commenting that we might still get ZFS as the default filesystem. I really don't think so. Perhaps as an option, and I sincerely hope so. But if it doesn't start to fully work in the developer builds any day now, I couldn't see it happening. These things really need a few months of testing before they can be put in a final build.
I know it has been in some builds up till now but it was always broken.
I'm not arguing that new filesystem code needs thorough testing. I whole-heartedly agree that filesystems should be extremely thoroughly tested, because of the potential risks involved.
But no modern application should deal directly with the filesystem, aside from a low-level disk manipulation utility. Apple's documentation at
http://developer.apple.com/technotes/tn/tn2037.html tells me that file operations pass through the BSD subsystem, even with legacy code. Hence, even older applications go through the abstract VFS layer.
The only way applications can break, therefore, is if the filesystem does not support a feature expected by the application, and the VFS cannot emulate it. For example, the VFS has to map resource forks into something recognizable to ZFS (personally, I think resource forks should disappear). However, the programs still only see an abstracted representation of these features, and are unaffected by the actual filesystem implementation.
Case sensitivity is a special problem, because it is a "feature" of the filesystem that conflicts with another "feature": case insensitivity. Furthermore, due to its nature, the VFS must also choose between case sensitivity and insensitivity. With regular HFS and HFS+, the VFS could always be case sensitive (a feature remaining from the VFS's BSD origins), while secure in the knowledge that the low-level filesystem driver would be insensitive.
Thus, provided Apple can modify the VFS-to-filesystem interface to map all high-level features of the VFS onto ZFS filesystems, there will be no problems with applications. Case sensitivity is only a problem because it is mutually exclusive with case insensitivity.
Of course, the VFS could mimic case insensitivity, if desired, by casing all filenames into upper- or lower-case. However, that is a bad idea. Despite what long-time proponents of case-insensitive filenames say, there is some utility in recognizing the difference between Complex.h and complex.h.
Here is a guy who talks more about his issues with case sensitivity:
I run my entire drive (only 1 partition) as case-sensitive HFS. The ONLY things I've every come across that have problems is adobe apps (at least CS2 and earlier, i haven't tried CS3), and the image capture plugin for epson scanners (included with OS X).