Can’t Hide From Me
If you work with cross-platform applications in Windows, you’ve no doubt experienced the irritating “dot-file” effect: You install a new program, and suddenly there’s a bunch of files and folders whose names start with a period (like “.settings”) cluttering up your home directory. This happens because the program’s developers are used to Unix-based environments, where files and folders whose names start with a period are typically hidden from file listings unless they are specifically requested to be shown. Not so in Windows.
Since Windows has an analogous feature — setting a file’s ”hidden” attribute — I’ve often wondered why so many developers of cross-platform tools overlook it. It wouldn’t be that hard to add a tiny bit of code that goes “if we are on Windows, set the hidden attribute on any files we’re installing that start with a period”. Then I wouldn’t have to run around hiding them all manually after the fact.
However, this bears additional thought, because Windows and Linux have different definitions of “hidden”, and their methods of hiding files are designed accordingly. In Linux, hiding a file denotes something like “I don’t want this file cluttering up my directory listings, but I might need to access it or change it in the future, if only infrequently.” In keeping with this idea, it’s quite easy to hide or unhide a file simply by renaming it, and given that most Linux users are comfortable with terminal usage, a quick “ls -a” will suffice for temporarily revealing hidden files. (Whether it’s even a good idea to “overload” file naming to also provide file-hiding functionality is up for debate.)
In contrast, hidden files on Windows are almost always intended to remain permanently hidden, at least to non-sysadmins. Hidden files may vary in their contents, but they almost universally indicate “end-users should not be fiddling with this.” Most Windows users will be doing file manipulation in Explorer rather than a terminal, a setting in which viewing hidden files takes a five-click process to accomplish, un-viewing them takes five more, and setting a file’s “hidden” attribute requires calling up its property sheet (though we do have ”dir /a” and “attrib” for the command prompt).
Since Linux dot-files and Windows hidden files are not equivalent concepts, this creates a small dilemma for cross-platform software developers. If you want something that matches the dot-file concept, you have to either deal with your files being unreasonably hard to get at in Windows, or clutter up the user’s home directory with files they don’t always want to see. The reverse situation (developing software on Windows that’s going to run on Linux) doesn’t happen as often, but may involve similar annoyances.
Personally, I’d just be happy if Explorer had a hotkey to toggle the visibility of hidden files, so I could quickly view all my manually-hidden dot-files. Win-H, perhaps?