Wednesday, February 18, 2009

Idea #17763: Every program in Ubuntu is using different way of handling the same problem

Sorry, I think this is a really bad idea. Programs have an individual way of working. One of many problems I find with KDE is that there is obviously a standard way of doing things that almost nobody follows; there are extra menu items in nearly every application that are unused, but there because it is part of some standard.

The place this should actually be added is to glib or qt; give developers a simple "Add default components and configuration" type thing to the library so that default items will perform default actions such as exit. There could even be a simple way to integrate a 'new' item subroutine.

Sound cool? Well guess what, it already exists! There are always new tools and hot plates and SDK IDE skeletons to make things easier on developers.

I think maybe rather than see something and assume that just because it is different that there must be something wrong with it because it is "inconsistent". Personally, I pick my applications based on the interface. There is variety.

This has been an age old war, and I guess it will never die, but FOREVER it has always been "Which is better, vi or emacs?". The different is the interface, but in this case, everything is the interface!

Rather than criticizing the devs in their UI design, maybe give then a little credit and assume for a moment they put a little time and effort into their work and things are designed with a purpose to work best for their application.

My solution: Tell your friend that because the software is community developed, not only do individuals have the freedom to develop independently, but there is no marketing department trying to make everything look the same for the sake of making everything look the same. It is just one of the quirks of the organic nature of Gnu/Linux et al. Improvements are always coming about, but just like nature, evolution needs diversity to progress. Gnu/Linux is always evolving and that is part of what makes it great, rather than feeling stuck looking at doing everything the Windows way, or the Apple way. If you have ever felt like that choice left you deciding the lesser of two evils, Linux can be a breath of fresh air.

A friend and I were discussing the issue with paradigm shifts: They are not all of the sudden, no matter how much the new ideas may have appeared to have reached critical mass in your mind. Even after profound paradigm shifts, we can continue to try to stuff new ideas into old boxes; compartmentalizing the new data in the old ways. Usually that just doesn't work.

In this case, for a new user, it is probably a good opportunity to remind them to pay attention to the application they are using, and don't just start clicking at the mouse and keyboard thinking all applications are the same, unless investigation is the purpose at that moment; there is always an appropriate time and place.

For the more adventurous types, qt and glib are reasonably straight forward at least with regard to changing the name of menu item names or hot keys in fully developed applications. While there is always more you can do knowing more, encourage them to be pragmatic about looking for the key piece of code they want to change, and worry less about the parts that don't necessarily make sense. It isn't as scary as it sounds, and interfaces is a fun simple place to start that requires almost no previous programming experience, just a bit of imagination.

No comments: