Hacker News new | ask | show | jobs
by thomasahle 273 days ago
Second answer is better imo:

> Don't use My or Your. In most cases it's obvious whose they are.

> The only case you might want to do it is to differentiate e.g. between the user's documents and everyone's documents. In that case I would follow the Microsoft guidelines cited by Michael and use "Your Documents" and "All Documents".

> One of the worst UI bloopers in Windows XP is the use of the prefix "My". It's ridiculous: want to see your photos? Look under "M" for "My Photos". Received files? Look under "M" for "My Received Files". It's like the old joke about the secretary who files everything under "T" for "The Payroll", "The Rent", etc.

3 comments

I don't consider "My..." in Windows XP to be a blooper. In folders, it meant these are personal folders, as opposed to system folders, shared data, etc...

You have to put it into context, it was the fist multi-user system for most people. Before that, they considered the whole filesystem to be theirs, no pesky permissions or anything like that. So "My" is a good indication for where to put their stuff (instead of, say, C:\).

I think it makes more sense than "Your" as "Your" is more like "stuff the computer gives you / read only" rather than "stuff you give the computer / editable" and a folder like "My Photos" is more of the latter. Matching the idea of the article where "your" is the question, a question is not something you change, and "my" is the answer, which is the thing you act on.

And by the way, the more I look at it, the more I respect the UI designers at pre-Windows 8 Microsoft. So many stupid things that turned out not to be stupid at all. It doesn't mean perfect, but when we see the mess that we have now, it pretty much was by comparison.

Another one is why have folders with spaces in them: "Program Files", "My Documents", etc... The rumor is that it was to force programmers to take handle spaces in filenames properly, because if they don't, it won't work at all. And seeing how terrible the situation is with Unix shells, if true, it is definitely justified. Most of the shell scripts (and not just shell scripts) I see outside of popular public projects fail to handle spaces properly, sometimes catastrophically.

The real solution is to clarify the position of the folder in the hierarchy. If the Pictures folder is in your user directory what else than your folder should it be?

Lets say your name is alex and you share the computer with tony. Both of you have folders called "My Pictures". That "My" is simply false if you look at the files in Tonys directory. The conceptually much better solution is to take the parent folder into account. In Linux that usually means /home/alex/pictures and /home/tony/pictures

Filepaths in my opinion are already a perfectly fine abstraction and everything that tries to teach people to not understand them is creating new problems and a new class of idiot that doesn't understand computers. The latter is of course a feature, not a bug from the standpoint of OS manufacturers thar want to smartphone-iphy their Desktop-OS.

> Lets say your name is alex and you share the computer with tony. Both of you have folders called "My Pictures". That "My" is simply false if you look at the files in Tonys directory. The conceptually much better solution is to take the parent folder into account. In Linux that usually means /home/alex/pictures and /home/tony/pictures

I haven't used Windows in a long time, but, at least back in the 95 days, "My Pictures" wasn't the name of the folder; the name was (IIRC) just "Pictures", but Explorer displayed it as "My Pictures" when you were in your home directory, making it just an additional affordance over the structure you indicate. So Alex wouldn't see it for Tony's "Pictures" folder.

I've never seen Explorer show any name other than the folder name, for what it's worth. Then again, I don't remember Windows 95 having "my" anything, except for "my computer".
"My Computer" and "My Documents" first showed up in Windows 95, though. In that context, it's not really a multi-user system.

But yes, I do quote all my paths excessively in shell scripts because of Program Files…

The blooper is that apps take the initiative to put random files in there, thus it is no longer "mine".
I don't know the Microsoft guidelines about that. But my understanding is that apps should put their stuff in AppData.

"My ..." is for files intended for the user to access directly. For instance photo apps will naturally save their photos in "My Photos", but just the photos, and with the understanding that the user can reorganize them, open them with other apps, etc... Apps that put their crap in "My Documents" are likely not following the best practices.

Note that not all folders in %userprofile% are called "My ...". For example "Downloads" (you are not supposed to modify stuff there, just read and delete) or "Desktop" (you are not supposed to access it through the explorer). The OS won't stop you, but the fact they aren't "My..." is a hint that it is not their purpose.

Microsoft has been inconsistent, both in recommendation and what they've done in their own programs. Probably the most inexplicable is that in the Windows Vista timeframe they recommended that games place their save games into a folder under My Documents despite the Saved Games folder having also been introduced in Vista.
That was often a sticking point that broke compatibility with programs between XP and Vista. Starting in Vista only programs running as administrator can modify the Program Files directory, but many programs for XP would dump config files and such directly in their installation directory. You'd have to run those programs as administrator every time or else they wouldn't work.
Every platform and application seems to do things differently. On Linux, I end up with a mix of dotfiles in my home directory, some apps putting things under ~/.local/..., and then tools like Miniconda insisting on a top-level folder. It feels inconsistent and messy. Windows isn’t much better—despite having an AppData folder, some programs still scatter their files in random places. \s I guess we'll just need to create a brand new standard, that will make things better. \s
> \s I guess we'll just need to create a brand new standard, that will make things better. \s

Linux has one single standard, all that software doing random stuff is non-standard.

And the standard says it's configurable, so I don't know what of your examples is the correct one on your machine.

There is definitely not one single standard. If you look at the "Filesystem Hierarchy Standard" (LSB standard, which is not universal), on the section about the home directory, you can find this:

> A number of efforts have been made in the past to standardize the layout of home directories, including the XDG Base Directories specification [9] and the GLib conventions on user directory contents. [10] Additional efforts in this direction are possible in the future. To accomodate software which makes use of these specifications and conventions, distributions may create directory hierarchies which follow the specifications and conventions. Those directory hierarchies may be located underneath home directories.

So one standard saying you should look at other standards. XDG from freedesktop.org is the most popular (and probably the one you are referring to). However, it relate to Linux desktops, it says nothing about non-desktop applications (ex: bash, ssh, git, ...). About git, it would a bit ironic for git, made by Linus himself for working on the Linux kernel to not follow the "one standard".

Many standards refer to other standards. The XDG Base Directories specification is for any software on any Unix like OS. Git supports it. So does GLib. Bash and OpenSSH should. The GLib user directories are Desktop, Documents, and so on. The specifications do not conflict.
Raymond Chen clears things up again:

> Some people suggest that one thing Microsoft Research could do with that time machine they’re working on is to go back in time and change the name of the Program Files directory to simply Programs. No, it really should be Program Files. Program Files are not the same as Programs. Programs are things like Calc, Notepad, Excel, Photoshop. They are things you run. Program Files are things like ACRORD32.DLL and TWCUTCHR.DLL. They are files that make programs run. If the directory were named Programs, then people who wanted to run a program would start digging into that directory and seeing a page full of weird DLL names and wonder “What the heck kind of programs are these?” And eventually they might figure out that if they want to run PowerPoint, they need to double-click on the icon named POWERPNT. “Computers are so hard to use.” WLCM2DOS

> If you want to find your programs, go to the Start menu. The Program Files directory is like the pantry of a restaurant. You aren’t expected to go in there and nibble on things that look interesting. You’re expected to order things from the menu.

https://devblogs.microsoft.com/oldnewthing/20131119-00/?p=26...

See also:

https://learn.microsoft.com/en-us/previous-versions/technet-...

I'd buy this except we have existence proof of how Apple solved this by instead making .app folders act special in the UI and having an /Applications folder you drag applications into.

A much more elegant solution and I think the criticism stands correct; Microsoft Research just didn't realize how to solve the problem and everything else is justification after-the-fact.

I'm not a mac guy - but I was playing some sts and for some reason my _data_ was embedded inside an Application which is kind of a package of files and I have to "unzip it" from a context menu to see the save games (but everything still functions the same).

That is, imo, awful. I'm not sold they've got everything right

That is very weird and suggests the App developer made a weird choice and ignore the HIG. Not a problem with the approach IMHO.
I remember when you’d look in that folder in old versions of Windows, explorer would actually tell you, “Hey, don’t look in here!”

This was because they hadn’t yet implemented security. (Was probably Win98 or so.)

Except that "Program Files" contains also folders, so it should be "Program Files And Folders", with all the nasty caps and spaces. What's the point of pushing the details to such level if you destroy usability?

In the meantime unix and alike use /bin, /lib, ... and everybody is happy.

But Unix isn't a good system for a person that isn't a computer geek
Macs seem to sell just fine to people that aren't "computer geeks".

> https://www.opengroup.org/openbrand/certificates/1223p.pdf

this makes Unix-style directories seem downright logical:

- programs go in /bin

- configurations go in /etc

- libraries go in /lib

- your personal user files go in /home/username

And then, there is /usr

It was supposed to be the user directory, but because someone didn't have enough space on /, it was somehow decided to put some stuff in there, so you have /usr/bin, /usr/lib, etc... But the user directories moved to /home, making /usr hold everything but user directories. Decades later, we still don't know what goes in /usr and what goes in /. In theory, what you need to boot the system should go to /, the rest goes to /usr, but in practice, there is no real rule, just don't break the scripts. Nowadays, distros tend to link one to the other in hope of making some sense without breaking too much stuff.

All that because someone was lacking disk space at some point in history.

But do you put extra programs in /usr/bin, /usr/local/bin, /opt/, ~/bin. ~/.local/bin or somewhere else entirely. Or if you're using homebrew, who the hell even knows how to make those the first choice in your PATH.
i thought /usr was a mounted shared volume for files that were static for everyone in the lab/office and the local machine machines files went in /
It should have been /shr for shared resources rather than unix shared resources (usr) to prevent people from confusing it with something related to user
god I wish it was that simple. Anything using the native package manager mostly follows this convention (with a variants like /usr/bin, /usr/local/bin, /opt). As soon as you need to install something that's not available from the system package manager all bets are off and you need to get ready for your home directory to never look the same again.
So, each thing is split through five completely different categories. And my /home/username still have to contain tons of configuration files.
These labels are unintuitive.

‘Bin’ is a generic empty container, and specific slang for a trash can. It might stand for ‘binary’ but what’s the difference between ‘binary’ 1s and 0s and ‘binaries’ aka compiled executables?

‘Etc’ is a dismissive way to refer to there being more things, too numerous to list: X, Y, Z, etc. in no way does it relate to configuration or options or settings or preferences.

‘Lib’ is fine I guess, but also what are libraries. If I ask my mom “what libraries do you have on your computer?” She’s going to be 1) confused and 2) assume I mean ebooks. I’m a programmer so I have a concept of what a library is - but how does that relate to my OS? Is it packages? Is it utilities? Is it frameworks?

accessible, intuitive, usable UX is a Very Hard Problem, there’s a reason it isn’t trivially solved with directory names like ‘bin,’ rather with elements of layout, colour, iconography, typography, you know, a GUI.

Users don’t want to solve a logic puzzle in order to interact with their computer.

except...
The types of people digging in PROGRA~1 were pretty likely to understand the difference between executables and DLLs.
Everything under %USERPROFILE% is user data, so having "My" for directories living under it makes zero sense. XDG user dirs is good enough to tell you where you put stuff and for programs to find them.
I usually go with neither. I always found "my" to be a bit patronising and childlike (my files in my computer on my desk next to my apple that my mum told me to take in for my teacher) and usually find "your" to be superfluous.

I have sometimes used "your" to differentiate between things like private, shared, and global, resources. More often than not this is not needed as there is a better word to use (local, private, shared, …) but sometimes the extra “your” or “by you” does help (for differentiating objects shared by others and those shared by you it can be more concise and clear than listing the name of who shared/owns the resource, for example).

I too find the "My" stuff patronizing and annoying but I'm not convinced by your string of "my"s as showing that it's childlike. I mean, you could equally say: my files on my computer on my desk in my work-room next to my bedroom where I sleep with my wife. Or: my files on my computer in my house that my savings plus my mortgage with my bank paid for. There are as many distinctively-adult things you can put "my" in front of as distinctively-childish ones.

I do in fact talk about my computer[1] and my files on it. The problem isn't that I wouldn't call them "my". It's that (1) when the computer labels them that way it feels like it's putting words in my mouth and I don't like that even if I'd have chosen similar words, and (2) it's unnecessary because if something's already in my home directory then calling it "My Whatever" rather than just "Whatever" is unnecessary. Of course, Windows rather wants to cover up all the evidence that you have a home directory, which for me is also part of the problem.

[1] Well, I'd be more specific, because like many people on HN I have more than one computer. But that isn't really the point here.

> I'm not convinced by your string of "my"s as showing that it's childlike

While I often use “my” like that (“has anyone seen where I put my phone?” etc), the thing with Windows95 was that it was applied to everything and coupled with the crayola-like UI friendlyfication. On its own, or used less judiciously, it might have not felt a bit infantilising like it did.

Also, there are a few things in your list that I would use more passive language for. I always referred to the mortgage on my flat as “the mortgage” unless in a situation where that might be ambiguous, and the bank is definitely the bank not my bank. The distinction generally falls along personal/other lines: within my flat (which I sometimes call the flat) I have my bedroom but also the bathroom, the spare room (or guest room, lodger's room, craft room, junk room, workout room - it has had many names over the years all usually prefaced with “the” rather than “my”), the kitchen, and the living room. For work, when I'm not working from home, I go to the office. If your every day use of the language doesn't have this distinction (this could easily be a regional or generational variation, most others around me follow a pattern similar to mine, for reference I'm a late-40s anal-retentive from northern England) then the Win95 UI's use of that language wouldn't give you the same feeling.

> because like many people on HN I have more than one computer

This may be a time based difference too. Around the time of Win95's first arrival I did have a computer of my own, and it wasn't the only one in the house, though this was unusual: many people did not have a computer at home at all (even if counting game systems or general purpose micros like a C64 that they used exclusively for playing games) and the only computers that they used were at school, at work, or in the library, so were not there's except when they were using them, and I probably spent at least as much time on computers that I didn't consider to be mine than I did on the one that was.

(tl;dr on reflection I mostly agree with you)

Interesting. I would sometimes say "the mortgage", "the bank", "the car", etc., but I don't think "my" is wrong for any of those except in so far as the thing in question isn't just mine (e.g., it's my wife's -- excuse me, the wife's -- car as well as mine).

Thinking about this some more, I think the pattern is as follows. I would say "my" to refer to something that (1) is specifically mine rather than anyone else's and (2) might be thought to be someone else's, or otherwise be ambiguous, if I didn't say "my". For something that's in some sense mine but for which #1 and #2 don't both hold, I would more often say "the".

So, e.g., "the mortgage" or "my mortgage"? If I'm living on my own, "the" because there's no one else. If I'm living with a partner, "the" because it's joint with them, or because we both know that they don't have one. If I'm living with a minor child, "the" because they can't have one. But if I'm talking to another adult, typically "my" or "our" for disambiguation.

"The office" or "my office"? "The" if it's the office I go to with all my colleagues. "The" if it's a room in my house and it's the only such room. "My" if two of us living in the same house have rooms they use in the same way.

(In my actual house there's a room that we originally called "the study" which we envisaged being used by whoever needed it, but in practice it's basically always me. My wife calls it "your study". I feel kinda bad about having usurped it -- there's another room my wife uses for similar purposes but it's substantially smaller and I've clearly got the better end of this deal -- and I often call it "the study" but when I do I know I'm being a bit dishonest.)

If you're a child then probably there are lots of things that are specifically yours. You might refer to "the teddy bear" because there's no one else it's likely to belong to, but your parents won't because it's not (in the relevant sense) theirs so "the" isn't appropriate for them. And if you're a child and you regard something as yours, you're probably painfully aware that (1) any siblings might try to lay claim to it and (2) in some sense your parents could lay claim to it, so you're going to use "my" whenever you can.

So I think I agree that "my" is proportionally used more by children than by adults. I don't think I personally find that that makes it feel infantilizing in the way it sounds like you do. But I do find the Windows "My X" stuff patronizing and maybe unconsciously I'm associating it with childishness.

It might be a bit lengthy and a UI challenge on smaller screens/interfaces but I hate pronouns and unnecessary thinking, I'd prefer Current User Documents (or Current User's Documents) and All Documents. Sometimes I might be logged in as my personal user, sometimes as Admin, sometimes as one of my children. "Your Documents" or "My Documents" makes me hit the brakes in whatever I was trying to do/look for to figure out "who am I" [logged in as].

Edit: Actually it should be "[Username]'s Documents" not "Current User's Documents" otherwise I have to stop to remember who I'm logged in as...