The odious file menu

All timestamps are based on your local time of:

Posted by: stak
Posted on: 2007-08-29 23:20:12

So I was sitting here and staring at my laptop screen while in between tasks, and my eye happened to fall up on Opera's "File" menu. It reminded me of a post I read a while back (I think on Raymond Chen's blog, but I can't find it now) about how the "File" menu is now used in all sorts of applications for all sorts of things that have absolutely nothing to do with files. It was first introduced way back in some earlier version of Windows and actually contained operations to do with files (like "Open", "Save", etc.). Opera's "File" menu, on the other hand, has things like "New Tab", "New Window", "Work Offline" and other things that have nothing to do with files.

I think one of the main reasons this happens is the "look at X" syndrome. This is when people are developing a new product, and instead of just thinking about how they would like their product to look and feel, they decided to take a look and see how other people do it first. It seems innocuous enough, but those quick peeks at other applications tend to have long-lasting effects. If you look at three other applications, each of which has a "File" menu, you're probably more likely to put one in your own application even if you're not conciously aware that's why you're doing it. The human mind has this amazing ability to come up with a justification for just about any decision. In this case, you'll probably convince yourself that having a "File" menu is totally appropriate and justified when it's completely irrelevant. Assuming you do stop and think about it, that is.

This idea/concept/whatever-you-want-to-call-it has come up a number of times for me in the last few days in the various things I'm working on. When I'm developing something, I prefer to not look at how other people have done similar things until I have a fairly concrete idea of what exactly I'm looking for and how I want it to work. There are undoubtedly improvements that can be made based on other people's work, but that shouldn't happen at the cost of original thinking. Being influenced by other people's work too early in the development cycle tends to do just that - any new and innovative ideas you might have had get abandoned in favour of the tried-and-tested route that somebody else has already done. That just works out poorly for everybody.

Posted by Jen at 2007-08-30 07:30:34
I remember learning in UI class that for UI at least, new and creative ideas are not necessarily good. The general population is reluctant to learn new ways of doing things and feel most comfortable with the old tried and tested ways. However, I do understand your point for coding in general and am sure that not too many people would be confused if the File menu was named differently, so long as it was still a menu. They might have a problem if you decided to use some crazy new UI element that no one had ever seen before though...
[ Reply to this ]
Posted by stak at 2007-08-30 19:25:43
But if that crazy new UI element was perfectly suited to the crazy new task you were using it for, it would catch on pretty quick. It's like evolution of the UI elements.
[ Reply to this ]
Posted by Jen at 2007-08-31 07:42:49
Actually, Cowan claimed it takes about 15 years for a new UI to catch on. The average user is not a programmer and is generally still not completely comfortable with technology. If people are unwilling to learn to use new interfaces, it won't catch on. UI has to be intuitive to the average user, and what is most intuitive is based on what they already know how to use. I've watched lots of people try to use UI that I felt was simple enough to figure out ( mostly on phones, cameras, and printers ) and they'd fail miserably and I'd have to explain it.
[ Reply to this ]
Posted by stak at 2007-09-02 21:33:38
Hmm. Fair enough, although I don't put a lot of stock in anything Cowan said :)

However, if we hold ourselves back from developing new technology just because we're afraid that the average user won't get it, then we're never going to get anywhere. I still vote for more experimentation with new and innovative ideas - they might not catch on, but they will definitely never catch on if we never try.
[ Reply to this ]
Posted by stak at 2008-05-16 21:45:50
Relevant article I came across today: Contextual user interfaces
[ Reply to this ]
Posted by vrn at 2007-08-30 12:05:36
You're right - it was on Old New Thing probably about 15 months or so ago, if I recall. I just can't find the entry either - my Google-fu is bad today.

Just a thought though - excepting browsers and a few other specialized applications (instant messaging programs, perhaps?), isn't the computer model still geared towards the manipulation of files? So perhaps it isn't the case that all apps are bad, just that the File Menu is irrelevant in the context of the web, and thus the only offenders are applications like browsers? Almost every other application I can think of manipulates files on behalf of the user (i.e.: user files that contain user data, not setting files that contain program settings). I suppose at the point of time we start truly abstracting away from files into a giant slag heap of data that we carry around model (aka - the dump truck), then the File Menu will become irrelevant... until then, we still are manipulating files either locally or remotely stored.

PS - I'm in Manila :)
[ Reply to this ]
Posted by stak at 2007-08-30 19:30:59
Glad you brought that up :)

The file-centric view you're talking about is another perfect example of what I was talking about. Sure, all most applications do is manipulate files on behalf of the user. Why is this? Why are all our operating systems and applications based around the concept of the "file"? Why aren't there systems with the "dump truck" model? Same reason - the first one was built around files, and the rest followed. I can think of a couple of non-file-centric models that would be much more powerful and user-friendly, but that have probably never been tried (maybe they have, but I've never heard of them, and I've been looking).
[ Reply to this ]
Posted by vrn at 2007-08-30 21:27:03
Actually, I thought it's more because until recently there hasn't been the technology available to do a dump truck/slag heap model. For example, one of the more irritating things I had to do for my IBH CS project was implement a find function. Of course, until I implemented a sort (which has its own overhead), the best find I could implement was in linear time. It didn't matter, of course, because my database was only 300 records x 6 fields, but I can see that it would increase pretty quickly for any DB of info larger than that. Which means, of course, that until recently that meant sitting around and waiting for the computer to look through the slag heap and find the item. It was faster to create and update an index and search that instead, no?

But say more - what are your models like?
[ Reply to this ]
Posted by stak at 2007-08-30 22:33:17
Well, yeah, there would have to be an index to make it efficient. But a system based around that would still be radically different from a file-based one.

One of the ones I've been thinking about recently is a system centered around nouns and verbs. They're somewhat analogous to Unix's files-and-processes heritage, but somewhat more general. Nouns would be a placeholder for some sort of data, regardless of where that data is or if it even exists, and verbs would be actions. The system would basically set up the framework for delivering nouns to verbs and invoking verbs on nouns. Applications would more or less be a set of nouns/verbs that can interact in new ways and that the user can invoke.

Designing a system like this to actually deliver the kind of flexibility that I'm imagining is probably really hard in practice, but I'd still like to give it a shot sometime if I ever manage to find the time.
[ Reply to this ]
Posted by vrn at 2007-08-30 23:32:55
It seems to me that having an index is not very much different from having a file system in some ways - essentially you call it an index number, I call it a path+file name, no?

Your nouns and objects is interesting - basically it strikes me as an extreme form of object orientation, with a null object if the data you are seeking does not exist, which allows for a kind of Plug and Play-way of discovering what actions would work on it... (Correct me if I'm misunderstanding though.) And you're right - the main limitation would be implementing such a system in a flexible enough way to allow new types of verbs from developing and operating on both existing and new forms of nouns.

If you do ever write it, though... I volunteer to test it.
[ Reply to this ]
Posted by stak at 2007-08-30 23:58:53
Indexing isn't that similar to filing. I'm thinking of more of a database-like store, where arbitrary sets of related data can be pulled out with the aid of indices pretty efficiently and mashed together to form a new view. The key difference is that you can index the same data in multiple ways, whereas the filename association is unique (not strictly, since you can have symbolic links, but close enough).

So for instance, if you wanted to build a massive calendar app that pulled out every date from your entire system and displayed it in one place, it would much easier to do with indexed data than with files.
[ Reply to this ]
Posted by Jon at 2007-09-03 01:21:05
Heh, because if you get rid of the File menu, millions of people wonder, "how do you save? I can't figure out how to save!"

[ Reply to this ]
Posted by stak at 2007-09-03 08:00:48
Sure, for Office that's perfectly true. My point was that it's not true for other applications.
[ Reply to this ]

[ Add a new comment ]

(c) Kartikaya Gupta, 2004-2024. User comments owned by their respective posters. All rights reserved.
You are accessing this website via IPv4. Consider upgrading to IPv6!