From: Don A. <do...@gr...> - 2007-10-31 15:47:27
|
As many of you know, I am trying to fade into the background. However, on this issue, I feel that I must speak up. The issue isn't the mime type on a web page, but rather the concept of options. Please try to understand that I am coming from almost seven years of experience dealing with this subject on this project. What I am saying is not due to some ideology, but from practical experience. Adding an option is always a delicate balance. For every person who says "Why don't we just add an option?", there is another who says "Why do we have so many ridiculous options?" Believe me, my inbox has been filled with these pointer/counter-point arguments for a *long* time. So, the philosophy that Alex and I used to drive the project with was: "Have the program do the right thing, and only add an option when there is consensus, and there is no better alternative." Now, you may ask "Why not just add options?". Well there are several good reasons. These are: 1) Too many options overwhelms the user. Most people just want things to work. They don't want to have to twiddle with things forever. As a personal note, this is why I do not use KDE. Every time I've tried it, I've had to spend forever tweaking it to get it to work right, and then my setup was different from everyone else's setup. I would rather that it just worked. (please, no kde vs. gnome battles) 2) Code is hard to maintain. Adding options makes code ugly, hard to read, and hard to maintain. This leads to bugs. I'm speaking from years of experience. Many, if not most, of the times when we've had a major bug, it has come from the addition of an option. The more options, the more difficult a program is to test. The more difficult to test, the more likely there will be bugs. 3) Documentation. Look at some of the descriptions for the existing options in the UI. We have very little space, and very little ability to describe what the option does. Also, look at the manual. Very few options are documented. So how does the user know what things are supposed to do? In most cases, adding an option is the lazy way out of a problem. And one for which you will pay dearly for in the future. The correct thing is usually to ask yourself, "What is the right thing to do in this case?" So, as an example, let's examine the current issue. Some people are annoyed that the media page includes the Mime Type. In the grand scheme of things, this is a very minor issue. We have literally hundreds of issues like this (and, therefore, hundreds of potential options). The quick answer is, "Let's add an option to allow you to hide this!" And when the next person comes along and says, "I don't want thumbnails on this page." or "I don't want references on this page", or "I don't want sources on page X", what do we do then? So instead, let's look at the issue. The first question I would ask is: "Why do we need Mime Types on this page?" If I had to answer this, I would say: "We need mime types to help the user understand how to view an object when the media type is not obvious, or when a user may not know how to view the type." A good example would be for a word processing document. Will I be able to view it? If not, why? However, if I'm told that the document is in OpenDocument format, I may know if I can view it, or I will know how to find a program that will allow me to view it. Another example would be video. Under Linux, I may want to know if the document is MPEG (easily viewable) or WMV (not as easily viewable). However, if the document is an image, chances are, the type does not matter. Just about everyone can view just about every format. And chances are, your web browser is already displaying the image. So, in reality, the mime type only adds value when the format may not be obvious, or may be non-standard. And guess what? If you look at most of the generated web pages, we have a lot of images, but fewer of the other types of files. So, the vast majority of the time, the mime type is not needed. As a second question, we need to ask ourselves: "Is the MIME type the right thing to display?" In other words, does it help the user to know that the type is "application/vnd.oasis.opendocument"? Or would it be better to say "Open Document Text". And isn't "Flash Video" better than "application/x-flash-video"? So, looking at this issue, I would resolve it by saying: "The MIME type should not be shown for obvious file types, such as images or text documents (image/* or text/*). For other formats, we should display the files type in a readable form if possible, falling back to mime types only when the system does not provide a descriptive name for mime type." By adopting this approach, no option is needed, and GRAMPS appears to "do the right thing" for the user. It only displays the information when the information provides value. On another matter, and in the long term, even more important - Brian Matherly is now the project manager for GRAMPS. This means that he has to make the tough calls. And guess what - there will be times when you disagree with him. In fact, on any given issue where he has to make a decision, probably a little less that half the people will disagree with him. When he decides something that is counter to what you believe, he is not doing it to spite you. He has valid reasons, whether you agree with them or not. And chances are, he's probably being more objective, thinking about what benefits the project in the long term. Also keep in mind - While OSS projects are open and free, successful ones typically are not democracies. I cannot think of a single major *successful* project that is run in that manner. Linus makes the decisions for Linux, and if you read the linux kernel mailing list, he rules with an iron fist at times. Similarly, Guido Van Rossum is the "Benevolent Dictator for Life" of the python project. The GNOME project has the "GNOME Foundation" to guide it. A project needs someone to make the tough decisions. And it is a thankless and difficult job. So please support Brian. He is a very smart guy, and a very fair guy. He will listen to your arguments, and then decide what is in the best interest of the project. But please, respect his decisions. Believe me, project manager is a very tough job, and at times there is a strong desire to just walk away and fade into the background ... Don |