Dunny said:
I mean, I've added thousands of new features to my apps users' requests, fixed numerous issues and no email goes un-answered. I think that shows that I care about people who use my software - I feel that telling people "yes, you can" rather than "you're stupid and irresponsible for even wanting to do that" generates much more user happiness.
The problem here is that you are explicitly saying: "You're stupid for not putting the application binary in a writable path."
The option that gives the user the most freedom is to simply make it an option whether to store the files in whichever path the OS prefers or in the application directory. Use sane defaults (I'd go with the app path under Windows and the system default under Linux and OS X if you support it) and everyone's happy.
Note that the whole "portable application" thing is much less prevalent on Unix-based OSes.
Performing non-sensical actions just to get them to run? How non-sensical is unpacking an archive to a folder chosen by the user, and then expecting them to double-click an icon? How non-sensical is it for a user to expect the data he's created to be in the folder he put it in? Or in the folder that the application resides in?
Depends on the platform. Under Windows it's acceptable if old-fashioned. Unter Linux it's highly unusual and less than ideal because it breaks the multi-user paradigm. Under OS X it wouldn't fly at all because apps have to specify a proper path to be able to write a file in the first place – the current working dir for GUI apps is set to
/, which of course isn't world-writable; writing to the app dir is just as much work as writing to where you're supposed to.
The nonsensical thing is to have data I don't need or want to modify (the game binary) in a path intended for data I want to modify (my home directory). This is fairly unintuitive for someone accustomed to Unix where each directory has its own specific meaning. I know that most Pandora users will most likely come from a Windows background but still, from a Unix perspective it's not intuitive.
"Sorry, but if you want to find your files, you'll have to head into the users folder, then into your username's folder, then into appdata, then the local folder in there, and then finally it may be in the virtualstore folder, under a folder named after the app that created the file."
Christ, is that really better?
"Yeah, your data is in the same folder as you installed the app to, in a subfolder called 'Data'. Have fun."
Well, unless Windows has transparently put the files into VirtualStore, in which case users still need to look there. Plus, under Linux you just say "your files are under ~/.APPNAME/. Have fun" instead of "your files are under wherever you unpacked the app to and there under the Data folder unless you've been running it from a non-writable location, in which case they're somewhere in the SD card's ApplicationData directory. If you've been running it from a .PND archive you might need to mount the archive if you want to find the Data folder, that might be easier."
It's not that I don't care about the way the OS works - I don't care for forcing users to jump through hoops just to get a simple thing done, and I don't care for the stupidity of people who assume that they know what my users want better than they do. If they want to store their data in the user documents hierarchy, they are free to do so. They are free to store it any damned place they please.
Again, using the home directory actually makes things
easier for the users since they don't need to guess where the files were stored to depending on whether they're running the app from a writable folder, a non-writable folder or a third-party .PND archive.
And, unlike Windows, Linux doesn't use arcane subfolders of subfolders to store application data – it's just a hidden directory in the user's home directory, which usually is the only directory of any concern to them.
Even OS X makes it easier than Windows does: There you can just stuff everything into
~/Library/Application Support/APPNAME. Even though there are other directories for specific things like preferences, nobody minds if you just use Application Support for everything.