I just recently came across this message in the Finder when I tried to rename a running application:
Are you sure you want to change the name of <appname> while it is open?
Changing the name of an application while it's open may cause problems with the application.
This is caused by the same problem experienced in ScreenSaver: if you change the name of, or move, the folder of pictures to which ScreenSaver is pointing, it will lose track of it.
Both of these problems happen because Mac OS X dicourages the use of Aliases, system-standard data structures for referring to file system objects. Instead, applications are encouraged to use path names. The problem with a path name is that it’s fragile: if you move the item or change its name or the name of any of it’s enclosing directories, an extant path no longer points to that item.
Because Mac OS X encourages the use of pathnames in applications as references to files (via CFURLRef, among other mechanisms), applications are very likely to store these paths, despite the occasional feeble warning against doing so.
Now, it’s one thing for an individual application to make this mistake, but for Apple to endorse this behavior by warning users that they shouldn’t change the name of running applications, rather than letting those applications break. Instead of forcing applications to do the right thing (store file system item references with Aliases, not paths), they make the user wrong by preventing (or at least discouraging) him from changing the name of a file.
Related to this is OS X’s emphasis of filename extension as the way to identify a file’s type. The filename is for use by the user, and the OS’s use of it should not impose any restrictions on what the file name can be.
In the case of filename extensions, Apple has gone to great lengths to try to hide the extension from the user. They still use a string of bytes to store an ID representing the file type, but what they’ve done is move the storage of those bytes on disk from a tidy, dedicated location to the end of the filename, where it gets in the way of the user. Though the hide it, it’s easy to get into situations where the user is either warned about changing the file extension (exposing it), or they inadvertently change the represented file type (without changing the underlying bytes). Bad, bad move, Apple.
It’s just another indication of how Apple has lost sight of what it takes to make a great OS: the details (to get really nit-picky, notice that the error message uses a single straight quote, instead of an apostrophe. It&rquo;s possible it just looks straight given the rendering). Ever since NeXT engineers crowded out Apple engineers, this has been the case.