
Home
About Apple Career Experiences General Graphics Hardware History Humor Interface Networking OS Opinion Politics Programming Quotes Reviews Security Software Sound Thought Web

Cheap International Airfare Online
Wachovia online banking
Get Free Coupons Online
Finding the perfect discount hot tub
Payday Loans
Stock Trading Online
Stuffed Animals
Smart Investing Online
|
 |
Case Sensitive HFS? Another giant leap backwards
By: David K. Every
|
Kind: Created: Size: |
Article 11/07/2003 11 KB |
|
|
 |
n the 1960s, computers were designed by programmers for programmers. Programmers knew computers and adapted to them, and took pride in being the few that could understand the esoteric world of computers; the nerd elite. It wasn't about what was good or easy for users, but what was good and easy for programmers. Then in the 1980s, we taught ourselves a lot about good human interface instead of computer interfaces. Users needed to know less about computers, because we'd make computers smarter, and try to adapt to users. We'd present things visually, intuitively, and in ways that users could understand; thus "User Interfaces".
This is why command lines aren't user interfaces; they don't try to present users with options, they don't display things visually, they don't have a metaphor, and they don't try to anticipate user behavior or adapt to their needs -- they aren't built for user, they're built for programmers. Command Lines are just a single line programmer interfaces or computer interfaces, where geeks, who will adapt the computer (instead of expecting it the other way around), can type in and execute computer programs; one line at a time. I don't mind this, as I'm a geek and a programmer and have been using CLI's for 25+ years - but I don't confuse that with being a user interface.
Some of the most important concepts in good human interface are about putting the users in control; make things intuitive and remove things that are confusing. And with that, we get to the point. Does case sensitivity improve or reduce confusion? The answer is glaringly obvious; case sensitivity only increases confusion.
Users mistype all the time. Spelling mistakes are bad enough, but the difference between Macdonalds and MacDonalds is not something that users want to be annoyed with. Humans get this, computers and some geeks don't. If you are presented with TEXT.txt, Text.txt and text.txt in the same folder, which one do you want? Chances are, if they all exist, it is because files were saved wrong, or named wrong in the first place, and chances are you don't know which one is which. So this adds confusions and is not "a good thing"; no matter what the nerds try to sell you.
This is why most command lines started migrating to case insensitivity in the 1970's, the Mac went insensitive in the 80's, and Windows started going towards it in the 1990's. Even most of the nerds got it, very few were too stubborn or mired in legacy to grow.
The only reason why that problem exists in the first place is because some programmers were either too lazy or too stupid to know enough to know that if a person types an letter that it should be either the upper or lower case version of that letter, and not just the exact character. That double matching was more work, and the lazy decided too much work, so they ignored it. In fact, if you do a good job, the computer should also know how to ignore special or accented versions of characters as well. Resume and Rˇsumˇ, Naive and Na•ve are the same thing. Good Operating Systems understand this; bad ones do not. We need to accept this is a problem, and then we can try to improve it; denying it exists helps no one.
        
Why do I bring all this up? Apple is adding Case-Insensitive HFS as one of the options to their "new" OS. This brings up lots of concerns.
HFS is Apple's 'Hierarchical Filing System'. UFS is 'UNIX Filing System". Microsoft's has NTFS for NT's Filing System, and their new name for it, with better database managed file indexing on top, is called OFS (Object Filing System).
Look, CaseSensitive-HFS may not be the end of the world, there are many rational explanations for this. The problem is that there are many irrational ones as well. And so far, Apple has made some pretty bad Interface decisions that have confused and frustrated many of their long time users, and they've failed to communicate effectively, which has made things worse. Many old timers who care about interface are left wondering.
When OS X was being designed, there were many options of making UNIX work on a Mac, and making the Mac UNIX based, while still making it UNIX-plus instead of Mac-minus. (Apple had done a few of those over the years, long before NeXT acquired Apple).
The most obvious solution would have been to rework their parts of UNIX to support all the things the Mac needed to stay a Mac, like good metadata, reasonable directory structure, better permission and domain system, and so on. They could have segregated UNIX (BSD) as more UNIX, by building the equivalent of Classic for BSD. Allowed a parallel directory structure, or separate partition, with all the UNIX things mapped the way that it expected (even if they were just aliases or links to where they should be, instead of where they've always been in UNIX), and so on. Doing BSD-Classic would have eliminated most of the ugliness and confusion that got littered around the Mac, and would have also allowed the BSD to be cleaner and more standard for the UNIX dweebs. Instead, the BSD got merged in, in ways that dragged the Mac backwards, made the BSD less standard, and polluted both sides. That made it far less Mac-like, and has caused many or the problems that the Mac Users or some new users, are having in general.
When you try to integrate a 2005 BMW technology with 1969 Yugo Technology, to share parts, the facts are the older car will drag the newer car backwards. Far better is to just allow them to share the same road and garage, but encapsulate them and keep the separate. In truth with Mac and UNIX there are areas where both were either far-advanced or far-behind; but many hoped they'd take the best of both, not the lowest common denominator.
I don't mind brain dead case-sensitive filing systems like UFS or Case Sensitive HFS. Just make sure you are communicating what they are good and bad at, and what they will be used for. Mac OS X does not need to run on UFS or Case Sensitive HFS, it should just be able to create partitions (virtual or physical) or read those formats so that it can interface with them. Mac OS X should not be held back by lame 1960s feature limitations, it should come forward; while allowing the BSD layer to continue to remain where it is (mired in the 1960s).
Now whether it was just the bias and hubris of "UNIX is perfect" crowd, or NeXTies who thought their flavor of UNIX was the Panacea of Operating Systems, or just the pragmatics of time, all remains to be seen. In truth, it would have required very little additional time to do it better; but would have required a different focus and bias. Apple could have to have accepted that their flavor of UNIX wasn't the ultimate OS to begin with, and start improving from there; but they didn't.
Some argue that they did it "their way" because "standards" like UNIX are the goal. But then it would have made far, far more sense to go with the more standard and popular LINUX flavor of UNIX, rather than BSD; technological issues aside, LINUX is becoming more standard and popular than BSD. And then they should have changed far less from standard installs than they did; make sure all the default packages were in there, the directory structure changed less and so on. So it wasn't about standards but something else.
Many think it is more about biases, rather than what was better for the users and interface. But we'll have to wait and see. If OS XI comes out and fixes some of these things, then that will show that either Apple has learned or that this was just a prioritization issue; what features to do first, and they are getting to the real problems. So while many people are giving Apple less benefit of the doubt now, that is because of past actions and lack of communication. The truth is that Case Sensitive HFS (CS-HFS) is not a bad thing. If Apple is creating it for some server installs or for a full BSD emulation layer thing (in it's own partition), then that's making things more compatible. They just need to make sure it doesn't drag the rest of the Mac back to the 1960's. A few uninformed SysAdmin UNIX-luddites, who are too lazy to learn anything new and better, are going to arrogantly see this as a way to force all their users to adapt to their anachronistic way of thinking and interfacing with antique machinery, and try to use CS-HFS plus for everything (including things they shouldn't). They will write code or make solutions that won't run on a normal (case insensitive) installs of OS X.
So the problem isn't just that Apple is spending resources dragging parts of the OS backwards; it is that they are doing it without communicating goals, and with a recent history of ignoring people who value Human Interfaces concerns. And many are afraid that the only ramifications will be less compatibility, reliability, and worse interface. This is creating conflict where there needs not be any, or at least should be far less.
         
I don't think UNIX is a bad OS. It is an anachronistic foundation of an operating system that is very easy to write cool scripts and ugly programs in. UNIX is a foundation for pretty good servers or solutions, and some of the ugliest user applications I've ever seen. I love using OS X to build Web Servers (Web Solutions) and other network servers and solutions with almost standard UNIX tools. The UNIX allows simple apps with bad interfaces to be made much quicker than the old Mac way. Just don't confuse that with a good client, productivity, or users Machine. Good for science and vertical markets (where bad interfaces don't count), lousy for "the rest of us". So we just need to make sure that the geek aspect of OS X isn't getting in the way of the other side; which caters to a much broader market.
If you don't get the barriers for making better apps out of the way, then the alternative is Windows which has been moving forward in all these areas. The Original Mac and Copland were moving forward as well. Good programmers and users (indirectly) want things like metadata, case insensitive file names, reasonably arranged hierarchy, powerful indexing, better UI's, and so on. All areas where UNIX and OS X has so far only dragged us back into the 60's. Hopefully the steps backwards are only temporary, and Apple is quietly working on improving things behind the scenes. There are even some hints and signs of that - but we can't know that without communication.
Encapsulate the stuff that's going backwards and being more compatible with standard UNIX stuff into your emulation or "UNIX classic". Allow full BSD emulation and X11 stuff for the servers, heck even multiple virtual machines for security and reliability. Let that be case insensitive, have lame file naming conventions and stupid file extensions that make them so happy not to change and grow. Then make new standards for a subset of UNIX and real Mac apps to come forward and adapt to better ways of working; do for UNIX what they did for Cocoa and Carbon. Have UNIX-Carbon which takes a subset of UNIX, kicking and screaming, into the 1980's, just don't let that old thinking and emulation stuff get in the way and hold us back. And for goodness sake, when you reverse engineer something newer (HFS) to behave like something older (UFS), tell us what you're thinking so we don't assume the worst.
So making OS X good for old and new is a balancing act. Balance is not putting the geeks completely in control. You have to make good UI and UI centric decisions; like case insensitivity, and not go backwards because stupidity or anachronisms is the norm in UNIX. Encapsulate that stupidity, and protect users from it (UNIX-Classic) and allowing it in certain limited cases is fine - just make sure people realize what is being done and why, and where the future is.
Format for Printing Mail
|
|
 |
 |