Advertisement

Article: OSS S.O.S - How HCI Killed Open Source

Started by August 01, 2004 04:42 PM
130 comments, last by C-Junkie 20 years, 6 months ago
Quote:
Original post by owl
In which area exactly? Take a look at this list or this other. You may be surprised about how many innovative projects you may find there.
You should have pointed them out to us. Requiring us to go digging increases the probability that we give up looking sooner rather than later, and conclude that our hypothesis actually is valid! In essence, the onus is upon you to refute our charge through the preponderance of evidence.

The categories in both lists are traditional. There's no obvious indication of innovation. Interestingly, there is an area in which Open Source is reportedly spearheading a lot of innovation: software for biotech.
Quote:
Original post by Oluseyi
Quote:
Original post by Mayrel
This is a somewhat pointless point. Usability is only one of the aspects of software in which innovation can occur. An innovative new algorithm, protocol or storage technique can greatly improve a software product in terms of stability, memory usage and speed, but have no effect on the usability of the product.
Really? A more stable application isn't more usable? The fact that the user may suffer less data loss/corruption, or less lost productivity thanks to the improvement in corruption is not a usabilty benefit?

A more efficient application, in terms of memory usage, is not a more usable application? Improved performance with given resources, that's not a usability benefit? Maybe the program acts less like a sloth on a depressant, that's not more usable?

In that case, we might as well stop discussing right now. Your notion of usability is dysfunctional.

So what's your notion of usability? My notion is that the usability of a program is a measure of how easily a user can get the program to do what he wants it to do. I was wrong when I segregated usability. All aspects of software design are mutually recursive. A faster program can be used to do things that would have taken too long before. A more memory efficient program can be used to do things that would have required more memory before. Obviously, a program that doesn't crash so often can be used to do more, generally. However, these aspects are not directly related to usability -- they effect usability as a side effect, but do not make it easier for a user to do what can already be done.
Quote:

Quote:
Unavoidably, open source is never used by as many people as closed source software. Closed source simply has too much market share. Also unavoidably, the people who use OSS are usually technically competent, whilst people who use CSS are often not technically competent. Therefore, it should not be surprising that OSS tends to be designed for technically competent people, whilst CSS tends to be designed for less technically competent people. OSS works because the users are responsible for the evolution of the product. The target audience are, for the most part, people who already know how to use the product.
So, basically, we have a self-holding vicious cycle of crappy interfaces? Thank you for that illumination! Now I know that there is no hope for the usability of OSS, I can forget about Linux forever!

What a cop-out.

You missed the point entirely. The point is that OSS is usually entirely usable, for the intended user. The intended user is a geek. They will usually have knowledge of the technical aspects of the tasks the programs they use undertake. Many of them could write programs that perform those tasks, given time. For them, it is not excessively important that the interface be good, since they usually know what to expect from the program.
Quote:

Quote:
Quote:
Because it isn't a user-driven development process. The direction of Windows has and will frequently change because of perceived shifts in the needs and habits of users.
That's plainly ridiculous. Like all OSS, KDE is the ultimate in user-driven development -- because it is the users that develop it. KDE changes far more often than Windows, because it is directly effected by shifts in the needs and habits of users.
The changes are mostly cosmetic.

I've used every major revision of KDE; it's still the same paradigm. Not a single change, not a single questioning of the underlying WIMP approach. Windows has introduced Wizards, task-based interfaces, etc, etc. What has KDE given me? How is KDE 3.x any different, except in aesthetic terms, than KDE 1.x?

KDE has wizards, but it doesn't use them very much. The KPPP dial-up manager has a wizard for setting up your connection, for example. Gnome is slightly better in this regard -- its GUI toolkit features a wizard-alike widget, so you don't have to make your own. The lack of wizards is, again, caused by the fact that most users of KDE know what they're doing.
Quote:

Furthermore, are you suggesting that there are no non-developer users of KDE, or that their concerns should be ignored because of their lack of ability to directly influence development direction through code?

Clearly not. I'm suggesting that their concerns are ignored because of their lack of ability to directly influence development direction through code, not that that's the right way to do things.
Quote:

Quote:
Quote:
Wait, I just remembered the ultimate example. Visual C# 2005 Express Beta collects usage data to help refine the product. This is a developer tool!
What do you mean by 'collects usage data'? All KDE programs have a 'bug report' feature. People use this feature not just for reporting traditional crashes or errors in logic, but problems with usability.
Hold it.

What priority is assigned to usability bug reports in KDE? In most OSS projects, usability reports get automatically assigned the lowest possible priority!

Reports of the program acting incorrectly are considered more important than the program acting correctly but in a less-than-perfectly-usable manner. I don't think that's inherently bad, but it would be better, and with larger projects possible, to assign usability problems to a specific usability-problem-programmer.
Quote:

Look, I'm not here to bash OSS, or even KDE - though I don't care for it much. I'm asking how we can improve the workflow. Your insistence on taking some entrenched position and heading on random tangents per OSS-good-CSS-evil doesn't further the discourse, nor is it profitable.

I have failed to take an entrenched position. I merely pointed out that KDE provides for reporting of usability problems.
Quote:

Quote:
Quote:
Of course, there are an untold number of additional examples. Widget proliferation...
Is this a KDE thing, or are you complaining about the fact that there's about a billion GUI toolkits for X? KDE's widgets are, IMO, just fine. The Billion Toolkit Problem, on the other hand, is a genuine problem.
Actually, by "Widget Proliferation" I meant the fact that Linux applications (and this isn't specific to KDE) typically expose every bit of underlying functionality through independent widgets - more buttons, icons, etc. Take a look at this KBear (FTP client) screenshot, for example. I mean, was that really necessary?

No, that's a badly designed interface. Usually, toolbars should be unified in the main toolbar for a particular window, and the filter text boxes should just be a button. The cause, in this instance, is the lack of a standard MDI widget, forcing programmers to implement MDI manually.

But not all interfaces are so badly designed, and it's usually fairly trivial (in KDE, at least) to slim down the interface a little. My web browser, for example, has only a menu, 6 buttons, an address bar, a tab bar, the page and a status bar visible. It's very clean, all the buttons I use are visible, and the buttons I don't use are not visible.
Quote:

Quote:
Quote:
...excessive required reading...
I don't know what you mean, there.
Too much text right in the interface. Give a menu item a simple, verb-based label, not an entire sentence. And use common terminology, not "smbUmount share."

I don't usually find text to be too verbose in X programs. The longest menu item in this Konqueror window is "Save Background Image As...", which don't think could be shorter without being less clear. I think most people would agree that "smbUmount share" is a stupid name for a menu item.

Quote:
...and the conspicuous lack of task-based user interfaces in OSS can be identified in a mind-numbing number of applications.
What's a "task-based user interface"?
Quote:
A task-based UI sets up a number of activities a user typically wants to accomplish (say, the top 5 or 10 use cases) and guides the user essentially on rails through that task. Any Windows application Wizard would be a good example of a task-based UI.

This is in contrast to a command-based UI, where you have to know not only what you want to do but what command initiates that action. Task-based UIs are easier to use because they support exploration/discovery without intimidating the user (when properly deployed). The sheer number of options in a command-based UI and the terseness of the interface (due to space constraints) results in many users exploiting only a fraction of the total application functionality.

Win some, lose some. Task-based UIs are a good idea from the point-of-view of people that don't know how to perform a particular complex task that the programmer happens to have known to make a wizard for. But command-based UIs have the advantage that it's all there. It appears obvious that the desired solution is a combination of both. An example that springs immediately to mind is WinZip, with its Wizard and Classic interfaces. KPPP has Wizard and Advanced interfaces, which follow much the same principle. Traditionally, complex UNIX software has been text-based, and it's been relatively trivial to fit up graphical frontends which are custom-built for particular kinds of user. When complex software starts being graphical, the old concept of making frontends that communicate with pipes no longer works. That's a problem which can really only be solved by a widely-used COM-like system for scripting graphical environments, or moving the complex processing back to pipe guzzling daemons.
Quote:

Quote:
Quote:
I'm a big fan of OSS; I'm just disappointed with how unadventurous it's been, by and large. I mean, Linux is a reimplementation of a 40-odd year old operating system.
No. Linux is sort of based upon an ancient operating system. It has, as all modern UNIX-alikes have, greatly expanded functionality.
Of course it has expanded functionality, but it still lives by those dated paradigms and principles. Open Source, in my mind, should have, by now, produced at least one working and usable alternative approach to computer software organization. Eliminating the distinction between operating system and application, for example, so functionality is simply added to the environment. That allows users to think in terms of what they want to accomplish, not which program they want to use.

Eliminating the distinction between operating system and application? I understand that to mean something quite different from what you mean, I think (, I hope). What you mean, I think, is that the shell, instead of providing a list of programs to be run, provides a list of tasks to be performed.. "Write a letter", say. Choosing that task might bring up a window with a toolbar for formatting options and a text area. You write your letter. The exact program that is handling your letter is unknown. It might even change depending upon what you do. When you've finished, you select from the task list on that window... "Write to file", "Print", "Email", "Fax"... When programs are intalled that know about 'being a place where text documents are sent', they get added to that task list. "Write to file" can itself display a wizard that lets you choose to store it on your home directory, in a special buffer area for later writing to a CD/DVD, to a floppy/zip disk or similar storage media, or it could display a traditional file browsing system.
Quote:

Quote:
Quote:
The whole traditional notion of "desktop" and "applications" is not set in stone.
No, but it is set in people's minds.
I disagree. I think that the notion of the desktop is a metaphor that people come to grasp, but is explained to them and processed in terms of higher-order, root concepts. Well, can we design an interface based on those root concepts instead?

Probably. Something like what I described above, if that's what you're thinking of, would be quite possible, if application writers can be made to cooperate. I still think it's important, however, to provide the traditional interface as well. I might like a task-based interface for things that I don't know how to do, but I'd still want an interface that gives me instant access to all functionality (i.e. lots of widgets) for those things I do know how to do.
CoV
Advertisement
We're slowly approaching a healthy understanding of each other's positions. I initially responded to your every point, but I decided it was more profitable to focus on the consensus points.

Quote:
Original post by Mayrel
Quote:
I think that the notion of the desktop is a metaphor that people come to grasp, but is explained to them and processed in terms of higher-order, root concepts. Well, can we design an interface based on those root concepts instead?
Probably. Something like what I described above, if that's what you're thinking of, would be quite possible, if application writers can be made to cooperate.
I think, since this is Open Source, that if a developer does the work of creating an environment that embodies this kind of possibility and works well, developers will embrace it. For one thing, each "application" now has less responsibility since display, input, etc are handled entirely by the host environment. In essence, application development is reduced to writing plugins - focusing primarily on what the application does, not how it presents its queries or results.

Quote:
I still think it's important, however, to provide the traditional interface as well. I might like a task-based interface for things that I don't know how to do, but I'd still want an interface that gives me instant access to all functionality (i.e. lots of widgets) for those things I do know how to do.
I agree. A non-application desktop paradigm isn't necessarily task-based.
Quote:
Original post by Oluseyi
Quote:
Original post by Mayrel
Quote:
I think that the notion of the desktop is a metaphor that people come to grasp, but is explained to them and processed in terms of higher-order, root concepts. Well, can we design an interface based on those root concepts instead?
Probably. Something like what I described above, if that's what you're thinking of, would be quite possible, if application writers can be made to cooperate.
I think, since this is Open Source, that if a developer does the work of creating an environment that embodies this kind of possibility and works well, developers will embrace it. For one thing, each "application" now has less responsibility since display, input, etc are handled entirely by the host environment. In essence, application development is reduced to writing plugins - focusing primarily on what the application does, not how it presents its queries or results.

I think you've separated the concerns correctly, but missed an important aspect -- some application development will still concern itself with presentation, but the applications that present information will no longer be the same applications that produce the information, or they don't need to be, at least. The lack of integration irritates me, and not just in Linux. The integration of Windows is poor, at best. I would like, for example, to be able to edit a document that describes a program, and insert code snippets into that document. I'd like the code snippets to be generated from the actual code, and automatically updated when the code is updated. I'd like the snippets to be syntax highlighted, cross-references created for interactive viewing, for example. It's a small step from that to editing the documentation within the source editor. The important thing is that I don't want my enriched text editor plugin or source editor plugin to have to know about each other specifically, but I still want my enriched text editor to be able to create a table of functions which the source editor provides the entries for. This kind of integration is simple enough that a novice user can use it without having to think about what programs are being used, but complete enough that a skilled user can do everything she wants to do. The keyword is elegance. The problem, perhaps, with usability and OSS is that there is a perception that making a program user-friendly necessarily involves making it stupid. That's true, if you don't have much skill or time to spend making user-friendly software. It's much easier to make a complex program stupid than to make it elegant.
CoV
Quote:
Original post by owl
So, Maya is also broken isn't? Can you tell me that the overwhelming majority finds Maya usable the first time they use it?

The question is, does it have to be this way or it's the way it is because nobody bothers to innovate? Google has the most simplistic interface one can imagine that allows you to do an enormous number of things. Most people would probably say google barely has an interface. Now that's innovation. Before google existed, you'd say "well, search engine interfaces are clunky and annoying because search engines are very complex pieces of software".
It is true that Open Source has been stagnating for some time. By stagnating I mean in terms of innovation and that a lot of Open Source projects are simply carried away (KDE is my focus right now), and they like to bloat their projects. I think it's a thing called Feature creep.

One more reason I use GNOME.

A lot of people say that Linux isn't ready for the Desktop, and truth of it is, it isn't. Probably some of you have noticed that there have been a lot of recent commentary and critique on Linux as a viable desktop system. This in turn generates interest in turning Linux into something usable for the desktop. But, it is admittedly slow, compared with Closed Source Software.

In CSS projects, there is very little friction and latency between developers, because they are right there in front of each other. With Open Source, most projects are conducted over the internet, so there is a lot of latency, thus slowing down the improvement/feedback cycle.

Open Source isn't necessarily a non-innovative environment, it simply takes a longer to complete the turn from innovation (or any equivalent) to stagnation to innovation again. If you went back to the years of 1999-2000, would you have said Open Source was stagnating?

EDIT: notice projects such as SuSE Linux. "Corporate Open Source" is the best of both worlds: low latency between developers and the benefits of Open Source software. A lot of people reject Linux as non-user friendly, or too complex. Well, there are tons, and tons of Linux distributions out there. Consider which one you're using. If you're using something like Slackware, Gentoo, or whatever, they aren't exactly Windows killers. Redhat, SuSE, etc etc are solid movements in the direction of usability and Open Source proliferation. So consider that.

EDIT2: In response to Oluseyi's screenshot of KBear, it is simply ridiculous. But don't "stereotype" all open source software as being typical in bad interface design.

Continuing upon the lines of FTP clients, gFTP, Filezilla, and many, many others have very, very nice interfaces that are almost brainless to use. So your poorly designed interfaces may be just the exception (although I am not certainly asserting that).

Open Source also means "choices" too. So if you don't like one project, ditch it in favor of another.
My 2 cents,
Cipher3D
I eat heart attacks
Advertisement
Quote:
Original post by Oluseyi
Quote:
Original post by owl
In which area exactly? Take a look at this list or this other. You may be surprised about how many innovative projects you may find there.
You should have pointed them out to us. Requiring us to go digging increases the probability that we give up looking sooner rather than later, and conclude that our hypothesis actually is valid! In essence, the onus is upon you to refute our charge through the preponderance of evidence.


I actually think that requiring you to dig increase the probability of showing yourselves how much you really care about the topic in question. If you really bother about Open Source innovations (beyond expending 20-30 minutes installing Redhat and realising it is choppi), then you should look up for it yourselves.
[size="2"]I like the Walrus best.
Quote:
Original post by CoffeeMug
Quote:
Original post by owl
So, Maya is also broken isn't? Can you tell me that the overwhelming majority finds Maya usable the first time they use it?

The question is, does it have to be this way or it's the way it is because nobody bothers to innovate? Google has the most simplistic interface one can imagine that allows you to do an enormous number of things. Most people would probably say google barely has an interface. Now that's innovation. Before google existed, you'd say "well, search engine interfaces are clunky and annoying because search engines are very complex pieces of software".


altavista once was like google. I don't see any innovation there.

Blenders interface works perfect as it is, I don't really belive it should change to allow Office users to have clippo ask them if they want to write a letter. :)
[size="2"]I like the Walrus best.
Quote:
Original post by Promit

Worse still, sometimes they know that their interface is horrid, but they stubbornly refuse to change. Blender, for example.


Do you realise that Blender, and its interface, originally was a closed-source commercial product that only recently (within the last year, I think) got it source "opened"? I think that somewhat complicates the issue. Shouldn't you also be complaining about the closed-source developers not fixing it when they had the chance, or do you wish to ignore that and purely blame OSS for the "horrid" interface? (I personally (anecdote alert!) don't find all that bad, either, but you'd be right to say it's not at all intuitive.)



I do agree that OSS could stand quite a bit more innovation than exists at the moment, though. It would seem that most are unwilling to try something weird and different. But then again, innovation != usability, and the problem is that if a project tries something radical in the effort to be innovative it runs the risk that it becomes worse than the "tried and true".



Quote:
The goal of open source movement cannot be to annihilate the commercial software giants. It needs to shift its focus to innovation and progress.


Definitely. Well put.



Quote:
A lot of people say that Linux isn't ready for the Desktop, and truth of it is, it isn't. Probably some of you have noticed that there have been a lot of recent commentary and critique on Linux as a viable desktop system. This in turn generates interest in turning Linux into something usable for the desktop. But, it is admittedly slow, compared with Closed Source Software.


As far as I'm concerned, Linux is ready for my desktop. That doesn't mean it might be ready for someone else's. It very much depends on the target market, and right now (for the most part) the target is the technical types. Of course this will affect usability, that's obvious, and this target needs to change if we want OSS to "take over the world". We have to make it an option of reasonable advantage, and most end-users don't really care about the whole open source philosophy. OSS would need other significant reasons.
My stuff.Shameless promotion: FreePop: The GPL god-sim.
Quote:
Original post by CoffeeMug
Quote:
Original post by owl
So, Maya is also broken isn't? Can you tell me that the overwhelming majority finds Maya usable the first time they use it?

The question is, does it have to be this way or it's the way it is because nobody bothers to innovate? Google has the most simplistic interface one can imagine that allows you to do an enormous number of things. Most people would probably say google barely has an interface. Now that's innovation. Before google existed, you'd say "well, search engine interfaces are clunky and annoying because search engines are very complex pieces of software".

Did you know that you could search for "link:www.google.com" to show sites that link to google? "intitle:Foobar" to show sites that have Foobar in the <title> element? I didn't until I started digging through the documentation. Google may have a simple interface, but if you don't already know how to use it, it's not made easy. You either have to learn the special operators, or use the clunky and annoying advanced interface. The usability innovation in Google isn't the interface, it's the search engine. Google is more usable because it's more likely to return a page you want than other search engines.
CoV

This topic is closed to new replies.

Advertisement