John Gruber replies to Eric Raymond’s usability rants on Free Software, and we extend John’s view to a more broad analysis.John Gruber wrote a public response to Eric Raymond’s articles regarding bad usability/UIs on many open source applications. “Good user interfaces result from long, hard work, by talented developers and designers. The distributed, collaborative nature of open source software works for developer-level software, but works against user-level software. […] Technical documentation is also hard work, and requires talent to be done well. Writers need paychecks, too” says John. Short commentary follows.
Our Take: This interesting article reminded me why Be, Inc. employeed up to 5 usability/interface engineers at one point for BeIA and BeOS (an operating system known very well for its cohesiveness, speed and ease of use for those who have used it). Be, Inc. was in its heyday much smaller than Red Hat or SuSE.
To my knowledge, Red Hat and Ximian employ one usability engineer each (whose sole job is to bring a better experience to their products). MandrakeSoft has two people part-time (last time I checked). I have never heard of SuSE having anyone (except the respectful efforts of developer Waldo Bastian who has proved ‘sensitive’ to usability issues).
Independant FOSS projects will also need to be in search of individuals who are knowledgable about UI design, not just corporations. Every piece of GUI application that corresponds to a large scale and widely used software, it should see some “love” from a usability/UI expert. Documentation (end user & project specification) and QA areas of these projects should also see some “love” by people who know how to do these things properly. And developers should just do what they should be doing: architect (the developers who can actually do this properly) and program based on the specifications already layed out and the UI expert’s input.
And even if you get some stubborn developers in the FOSS community to accept this line of work (some of them just want their Freedom 😉 you will still need to piece the whole thing together. To create a cohesive product, you need to have all the people involved “on the same table” and *architect* things with many other surround projects in mind rather than just their own project. Creating completely independent projects from each other with little or no collaboration with other projects it only leads to duplication, inconsistency, terrible integration with the underlying system and worse performance than you would have if things were thought out more as a “whole” rather than individuals doing their little thing here and there.
All of the FOSS development community (professionals or not) should see their OSS work as a “platform work” and have a vision of where the whole thing is going and a common direction rather than “small time” hobby work. Today, I don’t see such a “common vision” on Linux (even FreeBSD beats Linux out on this with the server-oriented vision). Linus Torvalds is a great guy and he has a vision, but he mostly has a vision for his kernel, he hasn’t show us that he can “lead” other parts of the *platform*. The platform is what matters, because this is how you build robust products on top. This “leader of the platform” is missing today (and I believe there is a need for it): Havoc Pennington? Maybe, if he one day realizes than being “Free” is only one of the product’s features and not the Alpha and the Omega. Miguel de Icaza? Too busy with Mono. Matthias Ettrich? Too low profile.
I have said the following a few times online, but I will say it once more: Once, I asked my husband (ex-Be engineer) why BeOS was always “feeling” so fast. His reply was: “Because the kernel engineer’s cube was right next to the app_server engineer’s cube“.
These engineers would hang out together and spend many hours discussing face to face on how to do things that will end up being fast and stable and flexible (these “many hours” will translate to “days” if these engineers would be around the world and had to use a mailing list — we usually speak faster than we type ;). The same goes for all the other parts of the system. Apple, Microsoft (to a lesser degree as it is a huge company), Be, Inc. back in the day and even Sun have this great advantage over most open source projects too.
Now, get these XFree guys to work with the Linux/BSD kernel guys, the toolkit guys, the DE guys and even with the Freetype/Fontconfig guys to *architect* things *together* by pushing the envelope and *innovate*. And then we are talking.
The article gets a lot of things right. Specifically people getting paid to do work and the need to do have proper documentation
@Eugenia
– Your husband is exactly right. Contrary to opensource folklore that says open source development is uber-fast compared to traditional proprietary techniques, nothing beats having a couple engineers with offices right next to each other and a white board to scribble on. You’re exactly right, talking through a problem can be a lot more productive than e-mail(not all the time, but lots).
–rant–
There’s something that usabiltity “experts” seem to never grok. And that is that there is no one “true” right way. It’s analogus to learning. People learn different ways, and different people will find different UI “intuitive”. That’s not to say there’s not better UIs than others, but that these so-called experts are usually so full of themselves that they can’t see any other way
–end-rant–
I consider Linux’s two main desktops to be fairly usable. I don’t consider that to be the main problem. There are many other issues that need to be considered. Plug-n-Play, driver support, the plethora of distros that do things their own way, two main guis for ISVs to consider targetting, lack of good developer docs. There’s need to be more full-time/getting-paid people to work on these issues.
I’ll also postulate that until there is one GUI for ISVs to target that you’ll never see some of the high-end apps that are currently only on windows or Mac. Personally, I wish IBM and Novell would get together and basically lay something down, because random open source developers will never be able to. The attitude that everything on linux has to be free and opensource has to go to.
“You get what you pay for” etc. All the FUD you may expect from this kind of article. Usability is a major problem with all exisiting operating systems. Windows is not better than Linux in that respect, but since a lot of people people are trained to use Windows, they do no longer notice many problems.
Funny, in my line of work (settopboxes, pay tv), the user interface engineers are only part of the formula for success. Every project has time dedicated where real-world users are brought into a closed room environment to use and test the software and answer a list of questions. This is iterated a number of times, and in many instances a project has been shelved because it did not work with good user success. The end user’s input is just as if not more important than all the usability experts one cares to throw at the problem.
> All the FUD you may expect from this kind of article
I disagree. He hit the nail in the head on many points (maybe not all).
> Windows is not better than Linux in that respect, but since a lot of people people are trained to use Windows, they do no longer notice many problems.
This is wrong. Windows works way more cohesively than Linux does (as a “single entity”) and this is its strong point, while this is Linux’s weak point. You know that when you do a change or whatever somewhere, the rest of the system will “know” about it. With Linux, you are never sure, because it consists of a gazillion independent packages created by people who had never exchanged a single email with developers of other projects that their project is supposed to works with. This is a _real_ problem for FOSS development, integration, speed and consistensy, as I wrote in my commentary.
I didn’t read the article in full, but the bits quoted seem to be right on the money.
Imagine if teams behind commercial products were like those behind open source projects – “lets just employ 20 really good developers, and leave them to it, we’re bound to end up with a great application”. For OSS to be sucessful, there needs to be a commited team behind the projects; and not all of them developers. That’s certainly a model I hope to explore more with my future open source projects.
Isn’t Robert Love is working on the Linux kernel and desktop at the same time?
I agree with this article, well input, Eugenia!
Robert Love is a very intelligent young man (I am his fan , and his main specialty is the kernel (he is still “learning” about the desktop stuff, he told me recently).
Also please put in mind, a great “leader” doesn’t necessarily have to be a great developer. But he certainly needs to be a good all-arounder. He has to be a person who can see the market, where the market is going, what the market _needs_, and study his options and design/architect the *platform* (as opposed to details like deciding if the new kernel will use floats or integers for a given $variable
This is what Gates does these days for Windows btw. His title is “senior architect”, he is the “one with the ideas” and the driving force behind the whole Windows project. He is not necessarily a developer. Steve Jobs as well for NeXT/OSX. Steve Sakoman as well for BeOS back in the day. These people are not “hard core developers”. But they have right hand men for this job: Gates has a full team, I know Jobs has Avadis “Avie” Tevanian, Jr., Ph.D, and Steve Sakoman had the geniouses of Pierre and George Hoffman behind him to materialize these visions and targets. This “leadership” thing is not a one-man show exactly.
> This is wrong. Windows works way more cohesively than Linux does (as a “single entity”) and this is its strong point, while this is Linux’s weak point.
Install a desktop Linux Distro like Mandrake, in many cases you get everything you need right out of the “box”, because the distro and its tools hide the dirty details. If you install Windows, chances are you have to install a lot of driver disks, with different installation procedures. Would you call that “cohesively”?
> You know that when you do a change or whatever somewhere, the rest of the system will “know” about it.
This behaviour can be a problem in some cases. In a perfect world, it would result in a very smart computer. In the real world, you often get unexpected side effects because of this. Example: You Word dokuments suddenly change (page breaks etc.) because you changed the printer driver.
> With Linux, you are never sure, because it consists of a gazillion independent packages created by people who had never exchanged a single email with developers of other projects that their project is supposed to works with.
IMO it’s the job of the distributor to make sure that the selection of packages offered in the distro work with each other. Packages should be as independed as possible. That’s the most effective way to ensure stability and choice.
> This is a _real_ problem for FOSS development, integration, speed and consistensy, as I wrote in my commentary.
It’s a chance for distributors to offer additional value to their customers, and make money that way.
As an IT trainer I have taught many apps in a variety of environments, to people at all level.
In my opinion I could teach an ‘end user’ to use the Gnome desktop as easily or even easier than a Windows or Mac OSX Desktop. Also, I believe that conversion from Windows to Gnome would be easier than converison from Windows to Mac OSX.
Please note, this is ‘end user’, someone in a company for example who’s had the system set up for them. Note: Most computer users that I know are at this level, they use a computer at work as it has been set up for them, they have technical support for adding printers etc. and trouble shooting.
For out the box usability for the home user Mac OSX has got to be up there as the best. You plug things in and it just works. Windows XP is capable of this, however there are often issues. The problems probably arn’t Microsoft’s neccessarily, but it’s because of the vast amount of hardware that Windows will run on (compared to the limited hardware of the Mac). As for Linux, distros like Mandrake seem to make a good job of maximising usability – I plan to review some of these user-friendly distros (or at least read about them) in the near future.
The point here I think is that when we talk of Linux usability what we really should consider is ‘distro X’ usability. Then we should consider the differet levels of users i.e. end/office users, home users, small business users, sys admins etc. Simply saying that Linux/distro X is easy or not easy to use isn’t helpful.
>It’s a chance for distributors to offer additional value to their customers, and make money that way.
Unfortunately this is not the best way to get the platform forward. The development model you describe is broken from its roots: having the projects creating “low quality” software by not interacting well with the other packages that they are supposed to do and then having *different* distros patching left and right *different* things (that many times overlap and create new bugs), is just a broken way of doing software development in general.
Distros need to join development and offer their employees to do things that these projects can’t afford to do: specification and documentation, usability engineers, full time developers, instead of having distros *patching* instead of *developing*. (patching and fixing is of course a good thing and part of their job, but it is not a good thing when done in parallel to a project’s developement instead as part of it, even if the patches get integrated later on).
Slackware is the only *major* distro today that doesn’t want to patch _anything_ unless is absolutely necessary. If a package requires lots of patching, Slackware will simply not accept it on its distro, because if it doesn’t work with the rest “default – no patched” packages, the logical conlcusion is that this package is broken in the first place and there is no point to spend time to patch the hell out of it just because “it is a cool yet-another-mail-client”. Slackware is a 3-people team so they can’t afford to send employees out on major projects to participate as full time employees, but it is by far the speediest distro around that uses no special patches and the most stable one (along with Debian). Their secret: they don’t patch. They only include “stable” package releases (even on their development tree!!) and if they _really_ work well, they will be included. If they don’t, they will not be included no matter how much you beg and you shed tears to them.
A couple of comments have struck a chord in me:
“Windows is not better than Linux in that respect, but since a lot of people people are trained to use Windows, they do no longer notice many problems. ”
And
“This is wrong. Windows works way more cohesively than Linux does (as a “single entity”) and this is its strong point, while this is Linux’s weak point.”
I agree Windows is more chohesive and I also believe that people no longer pay attention to the problems that exist. Both posters are correct (IMHO).
And I also personally believe that having 2 or more people sitting face to face can converse in a more efficient manner that via email. The pure chemistry that exists in a face to face conversation about a specific topic such as the rapid fire “What If’s” scenerios can have a greater impact in the creative process’. That is something that I dont believe that can reproduced in an email. Just my opinion.
One a final note, more cooperation via various development trees would aid in the FOSS process, once again IMHO. Please dont take this as trolling.
IMO it’s the job of the distributor to make sure that the selection of packages offered in the distro work with each other. Packages should be as independed as possible. That’s the most effective way to ensure stability and choice.
Another problem of linux. You tend to get stuck in your own distro’s universe. It would be nice(maybe someone is working on it) if you could download some random rpm or deb off of a website and a universal installer would automagically go out and try to resolve dependences for you by reading the package requirements.
> universal installer would automagically go out and try to resolve dependences for you by reading the package requirements.
Actually, this is yet another problem with GNU/Linux/BSD’s *usability*. There *should not be* any dependancy problems when downloading simple user applications.
I have noticed no problems with the BeOS/Windows/OSX way to include the extra-needed libraries on the package itself and simply run an installer wizard or simply uncompress it and run it. Linux should be the same if they want to go forward no matter how much people will start shouting that “it is making the binary package bigger”. Today 100 GB drives are dirt cheap, having 100 KB or 500 KB or 1 MB of libraries included in the package is WORTH the hard drive space if it is going to be trouble free for the user (this way you don’t get potential library version conflicts either). The USER is who the developers should be thinking when they develop a *platform* not themselves, their geekness and their Kewl status.
Some distros do have it more together in this respect than others though, to the point where the issue is transparent to end users. Look at Lycoris or Lindows, they *feel* like 1 system, as opposed to Debian (which I do love) which feels much more modular.
Quote:
” Today 100 GB drives are dirt cheap, having 100 KB or 500 KB or 1 MB of libraries included in the package is WORTH the hard drive space ”
I also think that most programs should link libraries statically, but then the executable gets a lot bigger.
On Windows, you see the Visual Basic effect.
If you link all ocx, dll files into the exe, it becomes at least 2.5 MB big, if you don’t do that, it’s less than 1 MB, BUT!!!! your users need to have the runtime libraries installed. It’s the same with .NET. If you don’t have the .NET runtime modules installed, then .NET programs will not run.
So Windows does also have dependancy problems, but not as worse as on Linux.
Also, if packages are big, users with a slow internet connection will not benifit from it.
I use Gentoo linux, and all I have to do is, for example, emerge mozilla, and it will automatically download all the necessary dependancies, like gtk+ etc…
tbscope, you are losing the point. You are not going to statically link against every living thing, you are only going to *include* (beos would first look at <app folder>/lib/ directory for needed libraries and then to the $PATH’s libraries) or statically link. You are talking about 2.5 MB packages, but on Windows and OSX I download many applications that range from 100KB to 600 KBs as well. Depending on the app, that’s not really a problem. If it works well for Windows and OSX and BeOS users (check out bebits.com) then it should work well for Linux users with dialup as well.
>>It’s a chance for distributors to offer additional value to their customers, and make money that way.
> Unfortunately this is not the best way to get the platform
> forward. The development model you describe is broken from
> its roots: having the projects creating “low quality”
> software by not interacting well with the other packages
> that they are supposed to do and then having *different*
> distros patching left and right *different* things (that
> many times overlap and create new bugs), is just a broken
> way of doing software development in general.
I totally disaggree. What the FOSS people do is to write programs that do their job (and nothing more) as good as possible, without creating unnecessary dependencies. For that reason, you can install and configure a LAMP web server without a GUI. Admins of large server farms love that, because this makes the software _usable_ for _them.
On the other hand, home users probably prefer the GUI, so someone (e.g. the distributor) makes a nice GUI for that job. This is not “patching”. It’s a way (IMO the only way) to make excellent software. Software that makes too many assumptions about other software it might interact with leads to very poor system designs. Example: in the Windows world, there are ActiveX components for quite a lot of jobs. Some of them have no visual aspect at all, but because of the design of ActiveX, they need a window context to live in. This makes the development of non-GUI server applications much more complicated then necessary. Java programs that want to create graphics on the fly (e.g. a web counter creating gif images) face a similar problem: the libraries for that task require X (the window system) running. This is what I call “broken software”.
No, you are simply reffering to “broken architecturess” or “bugs” and to dependancy problems. If the java person who coded the library for gif images was more clever he wouldn’t need X in the first place. I am talking about *platform architecture* and this can NOT be done when “people write programs that do their job” indepenently from others. For example, XFree86 and freetype both have “paid” with bugs/performance/problems/etc for being different projects and not collaborating together and build versions of their software that work WELL together AND offer something new.
> home users probably prefer the GUI, so someone (e.g. the distributor) makes a nice GUI for that job. This is not “patching”
You lost the plot here. What you talk is about creating new applications, I am talking about patching existing ones. Mandrake, SuSE and RH for example are patching the hell out of the kernel, all with completely different patches and approaches.
You cannot have it both ways. Eighter you trust your distributor to care about dependency issues and use only the packages he provides (as far as free software is concerned). Big distros like Mandrake offer packages about everything available in the FOSS world.
Or you are the kind of user who doesn’t want to depend on the distributor, but download all kind of software from many different sources. In this case, you need a bit more know-how (like how to type “configure;make;make install”) but are independed. Freedom always requires some work.
Linux is NOT a platform! Linux is multiple platforms built for multiple purposes, or more specifically, its multiple platforms for multiple purposes that all are based on the Linux kernel. Each of those platforms could deffinatly gain by consolidating more, but to try an make all the Linux platforms out there work as a whole is like trying to make the QNX, PalmOS, and Solaris groups work together as a whole. It makes no sense.
Sometimes people forget that Linux is used in everything from tiny embeded electronics to family desktops to big iron enterprise servers.
IMO the major problem of XF86 is the backward compatibilty with the 20 year old X protocol that probably was very clever _then_ but is a bit out-of-date now. For that reason, scalable fonts are something that is not part of the original concept.
A stronger colloboration between the two projects might require changes to the protocoll, thus breaking compatibility and ruling out e.g. other X servers. IMO, if collobration between such projects is necessary, the first step must be the definition of interfaces, protocolls and formats. This requires a lot of time, but saves you from ending with a system that perfectly renders fonts on the screen but is unable to print them.
> You lost the plot here. What you talk is about creating new
> applications, I am talking about patching existing ones.
> Mandrake, SuSE and RH for example are patching the hell out
> of the kernel, all with completely different patches and
> approaches.
Kernel patching is not a matter of missing communication. In most cases, there are patches available which the kernel maintainers refuse to include into the original kernel yet, but the distros want to offer the functionality of those patches.
Wait are we taking usability advice from the creator of BBedit?
the application that makes kde look good?
seriously.
I also recommend reading the “Why Free Software usability tends to suck” article the guy mentions.
It is starting to get ridiculous to see all the Linux fans (myself included) bashing Windows all day and then you look at the apps and the DEs for Linux and they look like a badly-copied Windows 98.
I hope people read this article as “constructive criticism” instead of just saying “hey it’s free, so don’t complain”.
This quote represents my believes:
>Or, perhaps one could argue that it is cheap, and
>eventually it?s going to be good, but it?s getting there
>very slowly.
Although a lot of the open source project release early, release often, they seldomly talk about a finished product.
Summary: the author is mostly ranting: what the few valid points he does make proves isn’t that there is yet another philosohical difference between open-source software and their closed-source commercial cousins. What they highlist is that the open source community doesn’t have nearly as many talented UI people working on projects as it has developers. There are more developers willing to work open-source than there are UI people willing to do same, which is not surpirisng consiering that the number of good UI people are small anyway. I mean, look at just how much difference Everldo made for KDE, and he is even more of an artist than UI designer.
And I’m only talking of useability from a GUI perspective.
Naah .. I see a good deal of confusion between “useability” and “GUI interfaces”. On the server end, I am afraid linux/unix software has been far more easily useable, and much better documented, than their windows counterparts. There’s a reason why IIS, for example, is still playing catchup to Apache, or why I would quickily take postfix before even thinking of what’s available for windows.
But that’s besides the point. I think the author is over-simplifying. SUN, to give just one example, is a huge commercial software house, but how many GUI-useable software do you see from that end? They have money, they have talent, but look how ugly their operating systems have been from a GUI-useability perspective. And you could point to so many commercial entities. Its not about being open-source or closed, commercial or free. The UI people at Be may have had coffee with the kernel developers,but what else do you expect from a tiny unsuccessful company anyway?
There are UI issues to address on the Linux desktop. I don’t think things are anywhere near nearly bad as this author makes out. Personally, I sincerely think a lot of progress has been made in the last four years, and I don’t think windows really became particularly useable until Win2K.
So patience, people. Whatever useability problems there are in linux has little to do with the particular nature of opensource itself, and if the author is a talented UI designer, he is very welcome to help out.
Using the term usability as a catchall in this case IMHO is a misnomer. There are several distinct things which all combine together to make up this mysterious thing call Usability.
In no particular order they are:-
Firstly, there is EASE-OF-USE. How easy is it for the targetted user to actually use the thing once it is installed. Some software (even stuff you pay good money for ) ia a pur pain in the ASS to use. The menus are a mess, it is slow, strange errors appear at random times etc etc. For a non OSS example ask anyone who has used something based upon SIEBEL… (Just my Opinion)
Secondly there is INSTALLABILITY. This touches on a lot of the comments already entered in this thread. Companies like REDHAT & LINDOWS etc goto great lenghts to make their products easy to install and get the basic OOTB configuration easy. Others take a different tack. Dependancy Hell (Linux) or DLL Hell (Windows) are pains in the neck. But, consider the angst that many people experience when installing this USB device on Windows and after they have plugged the beast in they find their whole experience fast becoming a nightmare when they read “INSTALL THE SOFTWARE FIRST” on the CD-ROM at the bottom of the box…. This could even require a full OS re-install.
Thirdly, there is MAINTAINABILITY. The requirements here are very different depenting upon the target user. In a controlled “Server” environment then AUTO UPDATING is really a big NO-NO. On an end user desktop, its is probably ok in many circumstances. It should be upto the user/manager/admin of the system to decide how (If at all) it is used.
Finally, there is SUPPORTABILITY. If it goes wrong how easy is it to find the problem and fix it. It is no use release some whizzo product if it is naff all use to anyone if it falls over and dies at the first sign of problems.
All these (and probably others) combine to make the whole USABILITY experience. IMHO ( and 30+ years of S/W development) many OSS & non OSS products have very severe limitations in this area. Some companies are trying their hardest to improve but others are taking a different tack and virtually ignoring it all together. I will leave others to decide who belongs in which camp but there are obvious candidates for the latter.
Robert: I was wondering if I was the only one that noticed that little inconsistency. I’ve often read his articles on BBEdit, and the UI makes me twitch. It’s like the ugly step brother of the family of text editors when it comes to UI.
OK, I had to respond to this, too.
Windows is not better than Linux in that respect, but since a lot of people people are trained to use Windows, they do no longer notice many problems.
That is just not true. Here is just one example of many — from a certified Linux lover, mind you. I use Mandrake, generally well-known as an “easy to use” distro. I love it to death.
If you download and install Acrobat Reader or Mozilla Firefox (speaking here from experience with both), they don’t appear in the K Menu by default. You have to manually add them.
That might seem like a minor thing (and yeah, to someone like me it is), but remember, we’re talking about “Aunt Tillie’s” (“A.T.’s”) perspective. I can’t recall the last time that I downloaded a Windows package that didn’t at least tell the user how to start the thing after installation!
If we are focusing on A.T., it would seem that telling her HOW to USE the package that she just installed should at least be a consideration …?
Someone will doubtless respond to this by saying, “my distro does this.” Sure. But I guarantee that it’ll miss something else almost as fundamental to user-friendliness, and like I said, this is just one example out of many, based on personal experience.
Because of its architecture, most Linux distributions have other wierd side effects that haven’t been in Windows since the 3.0 era.
For example, if you start a program under KDE and for any reason it can’t run, as often as not, you get absolutely no information on *WHY* it won’t run. You click the icon, it won’t start, and you have NO idea why. You have to dig into the logs and decipher cryptic messages (again, I’m looking at this from “A.T.’s” perspective, not my own).
Most Windows programmers are trained to at least raise a message box telling you about the problem. Or, Windows itself will raise a box saying, “can’t find xxxx.dll.” Sure, that doesn’t always clear things up for the non-techie user, but at LEAST he/she has some idea that there’s a problem.
This doesn’t just happen under GNU/Linux with one-offs and gadget programs, either; this can occur with things that are as fundamental to the KDE package as Konqueror! Figuring out just what you did to break it can be a great deal of fun, too.
I love Linux. Use it all the time. But fair is fair. People who say that Windows is just as difficult to use as Linux have OBVIOUSLY never actually sat down and used any recent version of Windows for any length of time. Windows certainly has its problems, but user friendliness is generally NOT one of them.
Oh man I’m looking forward to the next version of BBedit. I bet it’ll be the Rolls Royce of usability (beware of the next changelog, it could be a long one).
Here’s hoping Mr Gruber sticks to his own rant.
Both FOSS and proprietary software still have a long way to go before you can call them “userfriendly”. Anyway, I don’t think FOSS is worse in that respect.
OK, let’s assume Microsoft has some dedicated, well educated designers to make sure everything is consistent, good looking and intuitive.
Question 1: If so, why did XP’s Luna style happen? Why can you still find lots of design flaws in MS’s software?
Question 2: Do Windows user exclusively use software written by (or at least: controlled by) MS? Are you sure every other non-free software product is made by a company that spends money on interface design?
With FOSS, the distributor can spend time, money and work to make sure many important programs look&feel consistently within the distro. For distros like Lindows, Suns JDS, Xandros etc. this is a selling proposition. You may argue that you lose a bit of your freedom if you depend on commercial distros to ensure consistency, but IMO this is not the case. It’s a matter of choice, and many free distros also work in this area. In my eyes, this is a kind of teamwork: the original developers care for the functionality, others care for the look&feel. The original interface may be crude, but’s in many cases it is skinable and in all cases it is open source.
You know that when you do a change or whatever somewhere, the rest of the system will “know” about it.
Oh. Come on. You’ve never set an env variable in Windows, had to reboot to have it be visiable to your program, and only had it revert back to its old state? I’d say Windows is worse at storing changes than Linux. At least on Linux, the app or service is responsible for its own options (cfg files). While Windows is dependent on that mysterious blackbox of a registery.
I think this is one ared where many open source software products should take a leaf out of GNOME’s book, or docs to be more specific.
First, they tell you to fully document your software.
Then they tell you how to document it.
Then they give you the tools with which to document yor software.
whilst no inteface is fundamentally ‘right’, there is a lot to be said for a consistent interface. Once a user finds that under the ‘File’ menu, he will find Open, Close, save and so on. This behaviour should me mirrored throughout the environment.
The user should not have to do anything that the software could do itself. This is one of windows biggest strengths. The user adds the printer by letting the computer discover it by itself, and load the best driver. This works 95% of the time. In the other 5%, he can manually specify the driver to use.
A lot of Linux usability problems are actually hardware problems, or compatibility problems to be more precise.
If manufacturers think a driver is an integral piece of IP, then this problem will always exist for Linux, until someone writes a driver abstraction layer so that companies can write and maintain few closed source drivers. But some companies do actually provide drivers for Linux, and Linux users should start strongly recommending compatible hardware to even their windows only friends. Just tell them something about resale value and so on and they will buy Linux compatible hardware.
The problem is that Linux is transforming from a geek only system to a more user friendly system, and maybe, just maybe, there are people who feel they like to be able to do what others find hard.
I use Mandrake too, so let’s have a look… Yes, Acrobat Reader is in the menu. I installed the package included in the distro, this one did the trick. If I downloaded and installed Acrobat Reader directly from Adobe, it most likely would not appear in the menu by itself. But: Acrobat Reader is not FOSS software. It eighter has no installation program or the installation program is not KDE-aware. Is it the fault of Linux, KDE or Mandrake that Acrobat Reader (a proprietary software product) doesn’t offer a decent installer?
Talking about Aunt Tilly, it seems most unlikely A.T. would download and install AcrobatReader or Mozilla FireFox by herself. A.T. lets nephew Stephen or nephew Erich install her PC, or she buys a PC with the OS and programs pre-installed. In the first case, we will be happy to be able to use SSH to do the installation remotely, in the second case there is hope that the PCs comes decently installed. If it is a Linux PC, there is most likely a program installed that lets you view PDFs (Acrobat Reader is not the only choice). If it is a Windows PC, rather not.
Today 100 GB drives are dirt cheap, having 100 KB or 500 KB or 1 MB of libraries included in the package is WORTH the hard drive space if it is going to be trouble free for the user (this way you don’t get potential library version conflicts either).
Its not the hard drive space that’s the problem. Its the link capacity. Not everyone is running on a 3Mb cable modem connection (thank god I am ). Take two similar programs: K3B and Nero, and compair file sizes:
Nero: 25 MB
K3B: 3MB.
Now, I realize that their is some functionality that is in Nero that is not present in K3b. But 22 MB worth? Why should a user download a bunch of unneeded software just to make things easier on the developer.
Ever read Alan Cooper? That’s his main problem with the current development model. It too much based around what is easy for the developer, not what the end user needs. In my opinon, shoving every lib needed into a package is the easy way out for developers.
Just because Windows/MacOSX/BeOS do it one way dosen’t make that way correct.
> require X (the window system) running. This is what I call “broken software”.
java -Djava.awt.headless=true
Could also be wrong, it’s been a long time since I stopped using proprietary software.
Maybe they fixed it. Or the book I read was wrong. Anyway, it’s just an example.
Issues might be there but then there are issues with proprietery softwrae too. These issues should be resolved but it would be COMPLETELY wrong to say OSS is not the way to be or it’s not competitive with other s/w development strategies.
Why should a user download a bunch of unneeded software just to make things easier on the developer.
Because it is easier for the user (not the developer).
The extra megabytes might take a while to download, especially on a dial-up connection, but consider the amount of time that you save because everything works almost immediately after the download has completed.
No more hunting through obscure web-sites for libs or other dependencies. Many hours saved even if the lengthy download is subtracted…
It’s easier, it saves time, but of course it comes with a pricetag: increased download size.
People could at least start packaging both static and non-static versions, as Opera does, so people could have the choice to play “catch dependency” or just download the whole thing.
but consider the amount of time that you save because everything works almost immediately after the download has completed.
No more hunting through obscure web-sites for libs or other dependencies. Many hours saved even if the lengthy download is subtracted…
I’m not saying the process is perfect. In fact, I agree that playing find the dependency is a broken way of doing things. But, I think that shoving the kitchen sink in the package is the easy way out.
There is a better way. Dependency resolution should be automagic, and should work all of the time.
“Also please put in mind, a great “leader” doesn’t necessarily have to be a great developer. But he certainly needs to be a good all-arounder. He has to be a person who can see the market, where the market is going…”
This is exactly right. Too often, people think that the best leader is the best coder, and that is simply not the case. In a leadership position, there are many other things that need to be considered besides the code. A leader needs to provide direction, and a singular, decisive voice.
The other advantage of having a leader who is not the head coder is that it leaves more time for the head coder to do that job, rather than deal with the fine details that need to be meshed out in the leadership aspect of the project.
FOSS doesn’t seem to be able to attract enough usability-engineering and technical-writing talent to have as much success at the end-user applciation level as it does at creating geek tools for administrators, IMHO. Outside of the Windows world, Apple is probably the only existing Unix company that has any real interest or talent in that regard. Unix was never designed or intended to be an end-userish OS, its community and history reflects this and trying to shoehorn it down to something non-techie end-users will like is hard.
I won’t be convinced that FOSS software development techniques are as good as its advocates say it is until MySQL or Postgre becomes an enterprise-level database like Oracle or DB2. Designing database software is much different from designing a modular OS like a Unix and requires a lot more cohesion between development teams than e-mail can provide. At some point you need to have these guys in the same room with each other when their work has to integrate so tightly, is the point I see being made. Obviously, I don’t think an Oracle or a DB2 could ever have been developed using FOSS techniques (but that’s just me).
@Eugenia: Excellent commentary. Your command of english is now very, very thorough and you should remove that disclaimer on your contact page that talks about any problems with the language. It’s amazing how good your english has gotten from what it was a couple of years ago – at least as far as I can tell. I would never know that it is your second languange and that you took it up at a fairly “late” age (as far as learning languages is concerned).
How about YDL/Red Hat’s Wonderland thems(s) for KDE and Gnome. Pretty darn nice in my view. Of course, they neither can hold a candle to OS 10. They’re essentially “Windows on Linux”.
Or another way to go is how the Oracle database installer works. Link the package when installed. So, it looks for specific packages and libraries to exist (make, gcc, binutils…) during install. This can also make the installation “linux-platform” independent IMHO. Also, despite doing part linking at install time, it is *not* compiling from source — which is way on the other extreme.
My experience has been that we desperately need apt/synaptic to become more “grandma” oriented and not speak the language of geeks. apt/synaptic do the job much better than windows installers but talk in repositories and lot of other things which joe user has no time for.
A good example is Xandros Networks! In fact, a lot of what Xandros has done can be adopted by FOSS projects for desktop consistency.
Everybody here is focusing on big issues – linking libraries and drivers are part of the guts of the OS, and have to be solved by the community as a whole. That’s not the sort of thing Gruber was talking about. He’s more focused on the small things that make life easier and more pleasant on a user. These are the things that are hard, boring, and take a lot of work for little obvious reward.
Let me present a hypothetical:
You have a dialog where you need to select a range of text, using a left text box for the start point, and a right one for the end point.
To do this with good UI, you need to limit both text boxes to only accepting numbers. Then you have to make sure the left one never accepts a value below 1, while the right one can never accept a value greater than the length of the string. Then you have to make sure that the left value is always less than the right – to make the UI better, you should update the right value to be greater than the left whenever the left one is changed and vica versa. There’s probably other issues that i’m not thinking of…
The point is that there’s a surprising amount of code that has to be used to make sure that something as simple as this behaves in a way that’s good for users.
Note, however, that i said amount of code, rather than code that needs to be written by a developer. This is a key difference between Apple (and, presumably MS, but i don’t do any programming for Windows) and most of the FOSS toolkits. Gnome and KDE seem to be obsessing about making sure a text field is theme-able. Apple’s writing the code to add things like Number Formatters, Value Transformers, and Value Bindings, which allow good UI behavior in text fields to be done with a minimum of hassle and code writing by their developers. They’re easing the pain of making good UI.
People are missing the key and valid point of the article because it includes a few incendiary statements, or because they’re defending their platform against a perceived slight that wasn’t the point of the article.
Cheers,
JT
I’m suprised no one has mentioned this: The Mac OS X printing system is CUPS lol. That’s the sad thing.
Anyways, all in all, OSS can be produce some pretty solid stuff, it just needs a kick in the ass here and there. I doubt usability is something unique to closed source, as the KDE Printing Interface or the GNOME HIG will prove.
On a side note: BBEdit is great.
Dude…. white text on a dark background is VERY hard to read. Talk about usability?
http://daringfireball.net/2004/04/spray_on_usability
Unix was never designed or intended to be an end-userish OS, its community and history reflects this and trying to shoehorn it down to something non-techie end-users will like is hard.
This is true, but as Apple/NeXT proved, it can be done, and gracefully, I might add.
The UNIX design is very foreign to the top-down approach the GUI requires, but it isn’t necessarily “hard” — it just requires a different philosophy, or at the least, a suspension of one’s previous design philosophy. UNIX design being that a coder should *never* dictate how a user should use a program, GUI being that you *must* dictate.
A lot of criticism about UNIX coders is that they are “selfish”, only design for themselves, without considering the “user”, but that isn’t the case — they’d just rather not dictate what a “user” should do. So actually it’s not selfish at all. And the UNIX longevity and the variety of ways it’s been deployed is a testament to this.
But…What they need to learn is that people *want* to be dictated to.
“But…What they need to learn is that people *want* to be dictated to.”
Couldn’t have said it better myself. The most of us don’t want choice, or even, don’t need choice. A lot of people just want their machines to work , they don’t care about how configurable it is.
I agree with most of what AmmoQ stated in his post on 2004/04/02. Gruber had my attention for a while until coming off as a Troll Linux basher. Example see his quotes below.
“He also fails to acknowledge another uncomfortable truth: Unix nerds who care about usability are switching to Mac OS X in droves. In fact, most of them have already switched.”
What stats? Does he base this on more false Apple marketing statistics or poor media coverage? Apple’s OSX is nice but I highly doubt that UNIX users are switching in droves.
“Most of the talented developers still using desktop Linux are either cheapskates or free-software political zealots.”
So now the developers at Novell/SuSE, RedHat/Fedora and Mandrake, etc are just out for the mighty dollar and no longer provide intelligent business solutions or tools? Just another illusion of Mr. Gruber.
“This isn’t to say desktop Linux isn’t growing in use. It is, and will continue to. But it’s growing at the bottom end of the market — cheap $400 computers from Wal-Mart. That’s a market where software usability is not a key feature.”
It’s ironic that when someone recommends cheap Linux boxes such as those offered at Wal-Mart some people make the assumption that’s all Linux is offered on in retail systems. Well Mr. Gruber I work as a character animator/vfx artist and can tell you Linux is distributed on very highend systems. Not only does SGI offer Linux solutions but also companies such as IBM and BoxxTech. There are others but I’m not going to point them out to you since you should of done better research.
I agree not all Linux distributions are a simple “click here dummy” OS but some are very close. Such as SuSE Pro and Mandrake. Heck even Lindows is simple enough for those coming from Windows or OSX to use. My preference is with SuSE since it was the easiest to set up and detect my hardware. Having innovative tools such as SuSE Plugger for plug and play detection makes the Linux transition much easier. Another is YOU/SuSE Watcher for online updates which makes my Linux network basically headache free. I love that SuSE’s YAST checks for dependecies and offers recommendations when installing programs. Innovative R&D tools and UI should improve with the next release of SuSE 9.1 that will include such things as Ximian Desktop Pro 2 with Red Carpet.
Everyone can be proud of their purchase but I hate those coming off as their statements should be taken as the gospel truth with out backing it up with facts. Instead of Editors reviewing the writer’s article it tends to get posted with out realizing it’s troll propaganda. This is the same with news sites that allow propagate this by linking to the article. I thought news was to be based on facts, not opinions of misguided individuals or those ignorant to other platforms.
FOSS doesn’t seem to be able to attract enough usability-engineering and technical-writing talent to have as much success at the end-user applciation level as it does at creating geek tools for administrators, IMHO.
That’s maybe one side of the coin, the other one is the necessary willingness of the maintainer to develop “his” package for a general user population, not only for himself.
Unfortunalty, developers seem to be attracted by the possibility of doing things “like they ever wanted to” in FOSS and with this attitude, usability-engineers have a hard stand.
Take for example updating older packages: There are a lot of packages out still written in GTK 1.x, some of them seem usable enought to put some more energy into them.
But instead of updating the interface and making it HIG compatible, some of their maintainers like the package just the way it is. Maybe as a result, others seem to think it’s better to start from scratch, again, using Mono or something else.
Thus, FOSS will never reach the necessary coordination almost by definition, I’m afraid.
as you also do not understand freedom of speech
Dude. STFU. Everything you said until that was well within your rights. Why did you just throw that out at the end?
Besides, Eugenia has done you a fucking service for even setting up the site, as she’s in no way obligated to do shit for you, but she does anyway.
IMO it would be eaiser to get most popular distros to agree on a set of default libs.
Makes alot more sense than putting every single dependency into a package.
Don’t you just love it when the trolls play the Freedom of Speech card.
Since Eugenia runs the site, and you POST on and USE this site based on the Terms of Service (yup, down there in bright red, BOLD writing) she is well within HER RIGHT to remove your post.
In fact, since it is her site, she is well within her rights to remove your post regardless of whether or not it violates the Terms of Service. You don’t seem to understand the concept of OWNERSHIP, and TERMS of a provided SERVICE.
It seems to me that generally the people who “play the Freedom of Speech card” are usually the ones that don’t actually understand what it is.
I use Mandrake too, so let’s have a look… Yes, Acrobat Reader is in the menu. I installed the package included in the distro, this one did the trick. If I downloaded and installed Acrobat Reader directly from Adobe, it most likely would not appear in the menu by itself. But: Acrobat Reader is not FOSS software. It eighter has no installation program or the installation program is not KDE-aware. Is it the fault of Linux, KDE or Mandrake that Acrobat Reader (a proprietary software product) doesn’t offer a decent installer?
Talking about Aunt Tilly, it seems most unlikely A.T. would download and install AcrobatReader or Mozilla FireFox by herself.
Sorry, as somebody who works with a bunch of support guys supporting multiple Windows shops, I have to say you absolutely wrong here. The way anyone who has been using a PC or Mac for the last 20 years installs a program is to use an installer disk or download the program from the Internet … and “download from the Internet” means click in your browser and the program installs … it’s how normal users install things like Acrobat Reader, AIM or Weatherbug all the time. To these people opening the K menu and wading 3 levels deep to a “package manager” is completely counterintuitive. “What is a “package” anyway? Some kind of Linux geek word for program?” is what these people wonder.
Linux *has* to work with commercial software to ever succeed … and anyone who has ever installed, say, VMWare or CrossoverOffice on a Linux machine (and these are *good* Linux installers, imho) knows it is beyond the newbie … the installers ask you all sorts of questions about your system that only a sysadmin-type would know. Something like ATI’s graphics driver installer scares even me every time I run it. And these installers are CL … A.T. doesn’t even know what that is, to her it is like “talking to the computer” in some funny language.
This affects FOSS too. I run Mandrake 9.2 … suppose I want to install KDE 3.2, or the latest OpenOffice, or whatever. Is the KDE I download from KDE the same as the one Mandrake installs? No … Mandrake installs its own version. And there is no KDE 3.2 or Mozilla 1.6 for my version of Mandrake. I have to upgrade *my entire OS* to get it!
Not that I blame Mandrake’s packagers … they have 1000’s of packages to keep up with. It *shouldn’t be their job* to do this.
And KDE tries to make it easier for you to build from source so you don’t have to depend on your distributor … but for to the average user, building from source or installing custom RPMs (which do not update the K-menu, btw) is still way too complicated.
I should be able to click on a link, download a file, provide an admin password in a dialog box and install a program, including adding it to my K-menu or whatever.
So … it may be partly Adobe’s fault, as you say, that their installer doesn’t do this. But how would Adobe’s engineers go about adding that ability *exactly*? The real problem is that “Linux” isn’t an actual consistent platform that Adobe can create a uniform installer to do this … every KDE distro like Mandrake has its own custom K-menu layout, and not everyone uses KDE … some people use Gnome. And some people use neither. So how does Adobe add that “start” menu item automatically? How do they know where to put it? How do they add a desktop shortcut?
The result is that only the distributor’s tools can install and uninstall programs.
“John Gruber is a troll. Not worth reading.”
No, he’s not a troll. He is SPOT ON!
You, however, mentioned the cliched “I disagree
with him, so he is a troll” adage. Shame on you.
Dude…. white text on a dark background is VERY hard to read. Talk about usability?
For most people, white text on a black (or suitably dark) background, when displayed on a monitor, is easier to read. The reason is simple, monitors project light rather than reflecting it. Black (or dark colours) is created by not projecting light, whereas white is created by projecting the most light possible. Therefore, most people’s eyes can pick up the light text more easily.
This is also why most UIs that feature an interface mode for people with poor eyesight will switch to dark (predominantly black) backgrounds with light (predominantly white) text.
Note that this is the opposite of what you normally see with printed text, which has to deal with the lighting conditions in which you choose to read. More often than not, the choice of black text on a white background is a matter of cost, but the white paper also helps to pick up ambient light.
In the end, though, what matters is the contrast of the colours used. In the case of this particular page, it means that he should’ve used black for the background rather than gray, but the feel-good side of most designers shies away from the empirical choice of black & white (or other strict opposing shades in the colour spectrum).
I agree with Eugenia’s points … Mounting SMB shares is a good example of the GUI/OS integration in OS X that I take for granted but sorely miss when I use my Mandrake machine (and have to su as root and type umount commands to disconnect a share, I won’t even go into that).
On a Mac, when you mount an SMB share it shows up as a desktop icon and also in the “Computers” view of all disks … which in an intuitive sense corresponds to “/” on UNIX or “C:” on Windows because it is the farthest “up” you can go in your system’s folder hierarchy (although in reality shares are smbmounted to /Volumes). Then, to disconnect the share, you just drag one of these icons to the Trash, which turns into a “Disconnect” icon as you hover over it to make it clear you aren’t really deleting anything.
Here’s the kicker: If you have any files open in any application that reside on that share, even if you just have a terminal window open where you’ve cd’ed to a directory on that share, the OS complains that a file is in use and blocks you from disconnecting the share.
How can Linux hope to achieve that kind of integration between the GUI, filesystem, kernel, Samba/NFS, and any applications (like Xterm or Kwrite) that might use files or the filesystem?
Well, KDE’s solution is that there’s no way to do it on the kernel module layer, so they’ve implemented it at the desktop environment level. And I love being able to type in “smb://machine/share” in Konqueror. But there’s not a whole lot more than file browsing that you can do with that … and to an unsophisticated user, the fact that you can’t just double-click on an icon in one of these SMB windows to edit a TIFF file in the Gimp means that something is “broken.”
Whereas OS X’s much broader and deeper implementation at the kernel level “just works” for the end user.
“Wait are we taking usability advice from the creator of BBedit?
the application that makes kde look good?
seriously.”
Maybe because BBedit is one of the most used and most loved applications in its field and OS?
Or maybe, because it doesn’t matter who he is, DON’T DO AS HE DOES, DO AS HE SAYS.
> I agree not all Linux distributions are a simple “click here dummy” OS
And this is exactly that kind of attitude which is part of the usability problem of free software: the belittlement of end users who have other priorities than being OS geeks.
Gruber had my attention for a while until coming off as a Troll Linux basher. Example see his quotes below.
“He also fails to acknowledge another uncomfortable truth: Unix nerds who care about usability are switching to Mac OS X in droves. In fact, most of them have already switched.”
What stats? Does he base this on more false Apple marketing statistics or poor media coverage? Apple’s OSX is nice but I highly doubt that UNIX users are switching in droves.
Many, many are. If you check around developer conventions and stuff like that, you’ll see the number of OS programmers turning to Mac OS X on the increase. The percentage of Mac switchers between Jakarta people is also a sign (MANY!). And we’re talking about developers here. For end users, it’s even easier to make the switch, I just don’t have any signs, or numbers. Heck, even Linus himself wrote his book on a Mac (he said so in an interview).
“Most of the talented developers still using desktop Linux are either cheapskates or free-software political zealots.”
So now the developers at Novell/SuSE, RedHat/Fedora and Mandrake, etc are just out for the mighty dollar and no longer provide intelligent business solutions or tools? Just another illusion of Mr. Gruber.
He said “Desktop” Linux. Desktop != corporate desktop, since he talks about Aunt Tillie like end users.
Myself, being a home user, don’t give a rat’s ass about the corporate desktop.
Linux usabillity sucks on the HOME desktop.
“This isn’t to say desktop Linux isn’t growing in use. It is, and will continue to. But it’s growing at the bottom end of the market — cheap $400 computers from Wal-Mart. That’s a market where software usability is not a key feature.”
It’s ironic that when someone recommends cheap Linux boxes such as those offered at Wal-Mart some people make the assumption that’s all Linux is offered on in retail systems. Well Mr. Gruber I work as a character animator/vfx artist and can tell you Linux is distributed on very highend systems. Not only does SGI offer Linux solutions but also companies such as IBM and BoxxTech. There are others but I’m not going to point them out to you since you should of done better research.
Wow! And all 5 people use these systems.
I agree not all Linux distributions are a simple “click here dummy” OS but some are very close. Such as SuSE Pro and Mandrake.
Yeah. So is Mandrake and SuSE not using CUPS for example? Or have they provided anything special atop what mr. Raymond tried (as Apple does)?
Heck even Lindows is simple enough for those coming from Windows or OSX to use. My preference is with SuSE since it was the easiest to set up and detect my hardware.
If you take preferences based on what distro was easier to “detect your hardware”, then he is DEAD RIGHT! Detecting hardware should be a NO-BRAINER, OUT-OF-THE-BOX issue, not something to differentiate distros. Gee!
The reason there is only one usability engineer is because no interface worth spit will ever be designed in a committee. Committees are dark alleys where people develop entire careers of doing nothing more than raising issues and fresh innovative ideas that lead to fresh new approaches to interface design are quietly strangled.
The reason there is only one usability engineer is because no interface worth spit will ever be designed in a committee. Committees are dark alleys where people develop entire careers of doing nothing more than raising issues and fresh innovative ideas that lead to fresh new approaches to interface design are quietly strangled.
Actually, the real reason is simply that the one interface engineer is only working on a small number of products directly related to that company’s interests.
You don’t really need a committee, but you need someone to do an overall set of guidelines (similar to the HIG from Gnome, but probably more detailed and better thought-out), and then individuals to help with the implementation on every piece of software with a GUI. Of course, you don’t need one person per piece of software, but you will probably need a lot of people to work on the environment that you’re going to present to your users as the default.
In generaly, having fewer people can help with creating a consistent design, but something as large as the average Linux distro, one person is either going to do one small part really well, or is going to do a lot of different parts (not necessarily in a way that’s apparently coherent to the user) moderately well and leave a lot left undone. The latter is generally worse than the former, because at least if one thing is done really well, others can base some of their own work from its example.
Eugenia wrote:
Linus Torvalds is a great guy and he has a vision
Linus is definitely a very nice guy, but I never … I am very interested in him, read his book, try to track his interviews, etc, but I must admit I probably missed his explaining his vision. My impression was he always says he just make coding … Would anyone care to drop a link to a vision resource?
Eugenia wrote:
Now, get these XFree guys to work with the Linux/BSD kernel guys, the toolkit guys, the DE guys and even with the Freetype/Fontconfig guys to *architect* things *together* by pushing the envelope and *innovate*.
IMHO it is rather unlikely to happen within FOSS, it would require some form of discipline to be enforced.
It’s possible to take what FOSS created so far, and with some modifications combine into a useful os, but it would not be compatible with unix/linux => so it is unclear how such os would take off.
IBM could do that, but they decided to stay within unix mess.
Linux usability has benefited greatly from Eugenia’s contributions, as reviled as they may be at times. Keep up the good work.
I just thought of a word picture. 🙂 Eugenia, may not be the “leader” but she is the usability prophetess crying out, “Repent and turn from your wicked ways.”
lard
I second that.
Heck, even Linus himself wrote his book on a Mac (he said so in an interview).
The journalist that Linus wrote the book with used a Powerbook, not Linus himself. He’s jokes about it, because at first he was irritated with the idea. The situation required him to use a Mac at first, when the drafts weren’t on his own machine.
Well, I haven’t bothered to read the full article by Gruber; the quoted part seems to reflect its main dirtection. I also haven’t taken on the task of reading all the reader comments sofar.
However, I think Eugenia forgot one thing out of this commentary. She nicely details why it would be good if the FOSS developers would think in a whole system, not just individual projects. But Gruber’s argument is that this collaborative stuff targets developer-level software by nature, so they also should not be expected to think about usability.
What Eugenia should have mentioned is that despite this (otherwise logical) argument, Gruber seems to ignore the fact that the Linux community is aggressively aiming to overtake the Desktop, so, regardless of any arguments about the nature of FOSS development in general, they have no excuse for not addressing usability issues.
(PS.: Again, I haven’t read Gruber’s full article, so he may have mentioned this aswell. Anyway, Eugenia should definitely have also.)
is a websit with light grey text, on a medium grey background.
“I’m suprised no one has mentioned this: The Mac OS X printing system is CUPS lol. That’s the sad thing. ”
No, CUPS is hooked into the Mac OS X printing system, but its proprietary in itself. Also, nobody is criticizing CUPS here, just the KDE/GNOME front-ends that exist to it. The Mac OS X front-end, the Printer Setup Utility, is – although not nearly as flawless as its Mac OS Classic equivalent, the chooser, rather well-designed.
No, CUPS is hooked into the Mac OS X printing system, but its proprietary in itself.
Yes, I know, that was my point. I was just trying to say it’s quite possible to take most *nix software (and the bulk of it is solid in it’s own way), and give it more elegance on the front end. It’s just that experts (rockstars) are needed — not mass numbers of developers or whatnot. As much as I like OSS, things like this sometimes lead me to question the validity of it’s development model. So I’ll just get into the bigger picture here:
To me it’s sad that Open Source, with it’s mega army of hackers, hasn’t accomplished with Linux in 10 years or so what Apple accomplished in the same amount of time (even counting the UI related code reused from NeXT). And I’m being generous in that estimation, as Aqua was pretty much a new project, after Rhapsody wasn’t well recieved.
Plenty of Apple’s stuff was from “ground zero” at the same time projects were starting with OSS desktops and “usability”.
Both projects started out in roughly in the same position in 97 or so, both had a ton of things to accomplish besides UI work, and here we are today, with Apple proving, *at the very least*, that %100 open source isn’t necessarily the best development model. Nope, “oversight and good programmers” is the best development model.
Of course, Linux has OS X beat on other issues, so it’s all good I guess…But what the OSS community needs is more guys like Linus/Jobs/Gates (Sorry Linus) —
More oversight and organization and some restraint on wasting time writing another text editor/media player/browser/email app — working together. They’d get “there” in no time.
“On a Mac, when you mount an SMB share it shows up as a desktop icon and also in the “Computers” view of all disks … which in an intuitive sense corresponds to “/” on UNIX or “C:” on Windows because it is the farthest “up” you can go in your system’s folder hierarchy (although in reality shares are smbmounted to /Volumes). Then, to disconnect the share, you just drag one of these icons to the Trash, which turns into a “Disconnect” icon as you hover over it to make it clear you aren’t really deleting anything.”
Actually that sounds just as bad as the “drag to trash to eject a disk”. The only thing that belongs in trash is, well trash. The icon change sounds like a kludge around metaphor abuse.
People understand “plugged” and “unplugged”, or even better eliminate the need for it to begin with.
“Both projects started out in roughly in the same position in 97 or so, both had a ton of things to accomplish besides UI work, and here we are today, with Apple proving, *at the very least*, that %100 open source isn’t necessarily the best development model. Nope, “oversight and good programmers” is the best development model. ”
Actually all that proves is that both groups have different goals, and motivations, and doesn’t necessarily speak about their deficencies, or their strengths. If OSS had to survive from day to day, or go out of business? Then things MIGHT be different. Similary if Apple had the freedom to pursue as they wish, free from economic, and time restrains, then some of the things that Apple dropped (Copeland, OpenDoc, etc) would still be with us.
Similary if Apple had the freedom to pursue as they wish, free from economic, and time restrains, then some of the things that Apple dropped (Copeland, OpenDoc, etc) would still be with us.
Hmm, but both illustrate what I was saying about experts and project focus. Copland was dropped not because of time constraints, but the lack of that “rockstar” element. It was incompetence. They worked on it for like 10 years and failed – which is why they went hunting for a new foundation elsewhere – Be or NeXT. They needed experts, not time.
As for OpenDoc, Jobs wanted none of it (as with many other Apple projects) and threw it all out. There’s no use for two component technologies, *especially* when one of them is OpenStep. They needed focus, not time.
So anyways, OSS needs a bit of the same — throw some shit out and organize. The problem is that OSS tends to “fire the boss” quite a bit, almost on a daily basis, in the form of forking and dupicate projects. This is something impossible in the commercial world when the project managers are guys like Gates or Jobs. OSS will never have that luxury (or curse), or will fall a bit short because of it.
“They worked on [Copland] for like 10 years and failed”
More like 5 😉
” – which is why they went hunting for a new foundation elsewhere – Be or NeXT. They needed experts, not time.”
Right.
“As for OpenDoc, Jobs wanted none of it (as with many other Apple projects) and threw it all out.”
OpenDoc pretty much failed without Jobs; the other companies like IBM were already leaving it earlier.
“There’s no use for two component technologies, *especially* when one of them is OpenStep. They needed focus, not time.”
OpenStep is a high-level API (Cocoa) and not a component technology and not in any way comparable to OpenDoc…
OpenDoc was simply not realistic.
Personally, I have great faith in the evolutionary biological nature of open source. I am happy that open source explores literally thousands of dead ends, as well as productive paths, very often without so much as a thought as to the potential for financial success, or even success at all. If libre software fails to take over the desktop, who cares? Not me. I also do not concern myself with the fact that commercial software companies usually move more directly to their goals. I believe that the diversity of libre software will keep it thriving. Eric Raymond and others will continue to pine for ‘spit and polish’. I will continue to appreciate the power of a truly diverse libre software ecology. If the best way is less direct, and messier than the corporate way, so be it. I believe in the long run, we all (including Microsoft and Apple) will benefit from the many dead ends and false starts that libre software makes on it’s way to beautiful and efficient desktops. Is it so impossible, or terrible, that libre software should function in much the same office as academia — providing fertile fields of experimental knowledge that will benefit all human endeavours, whether public or commercial?
Go Linux! Go libre software!
B Farwick
I find it amazing how free software resembles old Soviet style of life. For those who was not there: goods and services were cheap (almost free one can say), available for all but of awful quality.
Yes, they were sufficient for survival but not for enjoying life.
If you wanted something better, you had to fork real money (unofficially) to bribe or compensate right people to get better goods or sevices.
As for Soviet propaganda, it did not stop to repeat that Soviet goods are free and available while in capitalist world people can not afford basic but overpriced goods.
As for low quality of goods and services- they were not that bad, according to Soviet propaganda, and constantly improving.
Strangely enough, despite of all efforts to improve quality it still were less than capitalist can offer. May be had something to do with underpaid Soviet workers whose income did not depend that much on amount of goods (they produced) sold or not.
An article written by Eric could have been printed on the third page of “Pravda” with no problems, if software is replaced by goods and services, OSS by Soviet Union and Microsoft, well- left as it is: American ruthless corporation charging poor American workers exorbitan fees for basic goods.
One more: in Soviet times you dare not to critisize anything until Party leader says it is OK to. Then it is OK to, until Party says: enough!
So, thank you, Eric, for allowing us to critisize the OSS for usability. Before you, an innocent person posting mild compain about quality of free software risked to be crucified by vigilanties. Now, thanks to your article- people can speak freely.
“They worked on [Copland] for like 10 years and failed”
More like 5 😉
Yeah, sorry about that I’m just thinking that the NuKernel goes back farther than 5 years from 1997, but probably not 10 either.
OpenStep is a high-level API (Cocoa) and not a component technology and not in any way comparable to OpenDoc…
Then what is OpenDoc? Lol, a “higher” level API? (Actually, there’s probably some truth to that
When I say OpenStep, I mean everything associated with it (ObjectWare being an example). It’s a lot more than a high-level API. If that’s the case, then they are both “high level APIs”. Sure, OpenDoc offered something, but they came into direct conflict more than they did compliment each other, and that’s all I’m saying. The goal of reusing “parts” and rapid development only needs to be attained one way.
Nothing is sacred with Steve Jobs (except Cocoa, Quicktime, and Apple Displays perhaps), which is why I like him.
You scummy moron… I can imagine few more ignominious things than to emphasize some similarities of one thing to another in public, with quietly suppressing key differences which would ruin the whole analogy. Whether deliberately or just by ignorance. This is evil and dangerous.
First, unlike in the soviet system, you’re not forced to use the cheap goods but of groaty quality. It’s absolutely legal to choose expensive proprietary software, if that fits your needs better, and you don’t mind the possible lock-ins and such consequences.
Also, unlike in the soviet system, you won’t get deported for criticising something the “Party leader” hadn’t allowed you to. Actually, while being a great fan of FOSS software, I and my friends have criticised the quality and usability of many such software for years, way before E.S.R. wrote his article. Has anyone ever bothered with it, either positively or negatively? Barely so.
And the fact that you may get discriminated by the evangelists of criticised goods (especially if you do it before the “Party leader” enunciates that it’s legal) cannot be compared to the soviet obligations; and this inevitably happens the same way in the capitalist world – this is a social phenomenon, and is system-independent.
mortee, form Hungary, another ex-socialist country
An article written by Eric could have been printed on the third page of “Pravda” with no problems
Lol, you’ve made my day.
It’s difficult to read an article of this nature objectively given the ‘differences of opinion’ that have arisen after ESR’s original piece.
However, I have to say, I think this is a really good piece of work and does bring some very interesting issues to the foreground, particularly that of the actual process of developing the architecture of an application as a part of a whole and the need to talk about it up front.
Given the need for someone/something to lead the process (and I do personally agree that there is such a need) could freedesktop.org be the place to start? I realise that up to now they have been involved in more infrastructure related work but I don’t believe that it would be an unappropriate place to begin from (and doesn’t a certain Mr Pennington have a hand in freedesktop.org )
Hey, it’s not just Linux.
Here’s an interesting example.
The Office Update for Mac.
First, let me state that I LOVE Microsoft Word on a Mac,
a really class product, except for when it crashes
( just as much as the Windows version ).
Yesterday, I attempted to update my version of word with the .5 update. The doc for .5 said I should install the .2 update first.
Ok, I try that.
– First problem, the install script seems to be reporting that It’s going to install the update on my ComputerOffice folder, however, Office is installed where it ought to be on a Mac: ComputerApplicationsMicrosoft OfficeOffice folder.
– There is no Computer:Office folder.
– There is no way to specify where my “Office” folder is,
so, the update script Can’t Be Fixed, if it’s broke.
I let it run and see if it “really” knows where the Office folder is anyway.
– The Install app reports back:
Either Office Isn’t installed, the files are corrupted, or the Update isn’t needed because my application is already up-to-date.
Is it just me or is there a HUGE Difference between my Files being Corrupted and me Not Needing the Update?
This is where Microsoft get’s it reputation for incompetence. How do you classify a programmer who would allow this programming “solution” to go into production?
– Lazy
– Incompentent
– Moronic
How can Microsoft fanatics justify this type of slip-shod programming? When is Microsoft going to hire Professional Programmers?
Actually, this is yet another problem with GNU/Linux/BSD’s *usability*. There *should not be* any dependancy problems when downloading simple user applications.
I have noticed no problems with the BeOS/Windows/OSX way to include the extra-needed libraries on the package itself and simply run an installer wizard or simply uncompress it and run it.
Really? Windows is the OS that inspired the phrase “DLL hell”. The PC technicians at my company are always contending with applications or utilities that have to be installed in a particular order because of dll conflicts. The conflicts often take a significant amount of time to research and debug. Sometimes they have to uninstall application A before installing application B, then reinstall application A. Hardly “no problems”.
FOSS systems aren’t perfect either, but don’t overlook the problems of proprietary systems just because you’ve become accustomed to them.
Eric Raymond is doing a good job pointing out usability and interface bottlenecks. I hope that people are considering his advice.
The conflicts often take a significant amount of time to research and debug. Sometimes they have to uninstall application A before installing application B, then reinstall application A. Hardly “no problems”.
I have not had this problem in years on Windows. Maybe I’ve just got a short memory but as far as I can recall since Win2000 was released this has been a very minor problem for most standard apps.
I know it seems to be more easy if every program out their shipped the dependencies it needs (except maybe the glibc ;-)), but for the easier installation of a package you’re trading easier maintenance.
If there is a bug in libfoo, it is a lot better to just (…have nice shiny graphical application…) run “rpm -Uvh libfoo-1.2.3-4.i386.rpm” and have all your applications be fixed instead of waiting for your 3rd party application supplier (let’s not call them vendors, this just doesn’t cut it in a Free/OSS environment) to ship an update for his package when all that was changed was some library used by it. Multiplied by number of packages using that library of course ;-). Don’t even think about that the “software upgrading application” could look for instances of libfoo in the application’s directories and exchange them, because then you could just use the system-wide installed library in the first place…
To make it possible to use only one instance of (a major version of) a library requires lots of skill not to break binary compatibility, it is an artform even if there is nothing directly user-visible in it, unless you count applications behaving correctly as being user-visible ;-).
BTW, while we’re talking about UIs, ‘(IF replying, type “RE:” and paste the subject of the comment you are replying to)’ and ‘Preview (Javascript-only)’ is one example of how not to do it, especially on a site that makes UI design the subject as often as osnews.com. This should rather read “Reply to this posting” accompanied by “Start new thread” and the “Preview” button would either utilize Javascript if available or lead to a normal HTML preview. If you want an example how to do it much better (way beyond the two improvements I mentioned), take a look at the (sorry German only and you’d need to (freely) register to try it out) newsticker forums at http://www.heise.de/newsticker/ which has threading, replies with optional quoting, etc. etc.
>>Personally, I have great faith in the evolutionary biological nature of open source. I am happy that open source explores literally thousands of dead ends, as well as productive paths, very often without so much as a thought as to the potential for financial success, or even success at all. <<
I agree here — and none of that prohibits or even inhibits the building of a decent GUI.
What a lot of people are missing is that a GUI is simply the portal for user interaction with the underlying application. It’s probably better designed as a layer on top of the application anyway.
What the developer needs to be concerned with is producing a good, logical, consistant and well-documented *application interface*. A user interface, under any desktop theme imaginable, can the be constructed to tie in to those interfaces.
So I don’t see the GUI deficiencies in OSS software as necessarily developer issues. The developers present their applications to the community. If someone else wants to put a killer GUI on top of that, they have the hooks.
“Their secret: they don’t patch. They only include “stable” package releases (even on their development tree!!) and if they _really_ work well, they will be included. If they don’t, they will not be included no matter how much you beg and you shed tears to them.”
I’m so tired of hearing this. You know what Slackware’s secret is, why only a small minority use it? It has no features, doesn’t really do anything. There’s no sense loading up a GUI with it because you have to do everything from the command line. It’s primitive harkening back to the 80s.
That’s all we ever hear from you: “if it only it was more like Windows or OS X”. That’s what it always comes down to with you. But since you think so little of open source, why didn’t you just open up a Mac/Win forum?
Sorry, as somebody who works with a bunch of support guys supporting multiple Windows shops, I have to say you absolutely wrong here. The way anyone who has been using a PC or Mac for the last 20 years installs a program is to use an installer disk or download the program from the Internet … and “download from the Internet” means click in your browser and the program installs … it’s how normal users install things like Acrobat Reader, AIM or Weatherbug all the time. To these people opening the K menu and wading 3 levels deep to a “package manager” is completely counterintuitive. “What is a “package” anyway? Some kind of Linux geek word for program?” is what these people wonder.
And as someone who’s converted three people from Windows to Linux so far, I can tell you that reeducating them into going for the package manager isn’t that hard.
All you do is explain that there are a group of people who make sure that the software works, and put it into the package manager for you; you just find the package you want in there, and you know it will install properly, and not install anything nasty with it.
Granted, everyone I’ve had switch has switched after getting a virus or a dose of spyware, but it’s not a hard concept for people to grasp.
I am all for a leader of the Linux desktop.
I would have this leader oversee the whole desktop, and then he/she would have to sub leaders possibly from/for the GNOME and KDE projects.
There is only one problem, would the developers listen to these leaders for the greater good?
BTW, I really wish there was only one package format that would work across distributions, it would make things much easier and also packages would be much more available.
Ras wrote…
That’s all we ever hear from you: “if it only it was more like Windows or OS X”. That’s what it always comes down to with you. But since you think so little of open source, why didn’t you just open up a Mac/Win forum?
She is not talking about making Linux into Windows or Mac. What Eugenia is talking about design, direction, some degree of unity, so that the platform as whole can be more polished.
Yes everything in Linux can be coded seperately as modules, but the points where they meet is not just called interfaces it is also called integrations; modules designed to work together.
eg. Gstreamer.
From my understanding of this project, it allow people to plug into it with their apps, but the backend is designed and architected for the greater good of the Linux desktop, not for one particular project.
I know this this is probably going to sound like flaimbait but everytime I try to configure something in Windows (usually at the request of someone who can’t figure it out themselves) I still have to poke around and I can’t always figure it out. Now it is true that Linux software sometimes suffers from the same problems but I find that Linux software tends to be more cohesive than Windows software by the simple fact that the KISS principle is applied to Linux software (do one thing and do it well — although, sadly, sometimes this is being ignored).
Say I want to rip a CD into OGG files. With Linux I can use cdparanoia/cdda2wav and then oggenc or various frontends to these apps but with Windows I have to go searching around Download.com or other software-collection sites (since there is no centralized software repository) and then find one that is free, small and looks like it’d be easy to use, download it and install it using a specialized install program (.msi files aren’t popular yet) and then fiddle with it.
Now there are areas where Linux support and design falls short but often times I find it easier to use and more cohesive than Windows despite the fact that it is a random flash-mob of hackers rather than a giant corporation. For everyday use, I find Linux vastly easier to use and it has the power to do more when I need it to.
I think people are giving Windows credit where it doesn’t deserve it here:
Package managers are good, and here’s why:
– Package managers ensure that there are no complicated installers that are different for each program you want to install. Instead, one program installs all the others.
– Programs cannot be relied upon to supply their own uninstallers. I can’t count the number of times installers have been incomplete and leave crap all over my system.
Dynamically linked libraries are better then statically linked libraries, and here’s why:
– It allows for more flexibility. If I want to change all the open dialogs in all my programs, I actually can by just replacing one library. If a bug is fixed in the library, it takes affect in all the programs using it.
– It allows for smaller file sizes. Smaller file sizes means I save bandwidth AND time installing the program. I personally don’t need 400 copies of the Gecko engine on my computer, each with different versions and some with rendering bugs, some without.
– The having to go find all the dependency packages and install them first can be eliminated using the gentoo-like method where it automatically goes and fetches and installs all dependencies for you. I type emerge monodevelop, it goes and gets mono, gtksourceview-sharp, and so on all the way up to monodevelop.
> real-world users are brought into a closed room environment
> to use and test the software and answer a list of questions.
…
> end user’s input is just as if not more important than all
> the usability experts one cares to throw at the problem.
Which sounds just like user testing – a core part of what usability experts do (facilitate and analyse these sessions) in gathering user responses and reporting on required improvements.
Actually getting non-developer users to test Linux user interfaces is the biggest single obstacle to getting a good, cohesive desktop. Volunteer developers don’t have the resources. People who do software development on their own time simply can’t be expected to do more than ask friends and other sourceforge users (name one that isn’t a programmer or a technophile) to try their software and then ask them the right kinds of questions to get good feedback. As far as I know, only Sun Microsystems has published any results from serious UI testing. That was of the Gnome desktop. Does anyone else know of any other UI testing projects for Linux software?
I would really like to see OSDL add user interface testing to their Open Source support. They have contacts with sponsors who could properly fund testing and hiring of UI designers and engineers to provide feedback to development projects. Of course, the real obstacle would be overcoming the WILI attitude of the software developers.
first of windows does have the problem, dll hell anyone ?
Well known and documented. No thanks we dont want to reboot because a new library has been installed no thanks, we dont want to have libraries overwriting each other and the other problems associated with dlls.
No matter how much you kid yourself on how intuitive windows is, its not. The average joe doesnt have a clue, trust me ive dealt with enough of them to nearly go mad.
I believe the linux way is right, it shouldnt be a case of the applications providing the libraries but the libraries being automatically installed by the package manager. The other way has far too many problems for me to go into.
This is what’s needed a very intelligent package manager.
Whether you feed it a tar ball, any rpm or debian. for it to run .configure on the package every dependency that it fails on for it to be put in a list and then told to the user before going off and downloading them. Then automagically building the corresponding package for the system lets call it an rdeb for arguements sake.
For it to unpack the rpm and the deb. and rebuild to the rdeb. From the package errors find out why package aint being installed and resolving errors / installing package.
Debian right now has the downloading correct libraries sorted perfectly it lacks error correction. If a package is gonna cause a whole load of packages to be uninstalled it shouldnt be allowed.
Once this package management is universally accepted. Then the other packages will eventually fade out.
I have ideas on how to implement this. It can be done, it will involve perl scripts running in the background processing each package but it can be done. It will take time, but it would be awesome.
Maybe someone should start it up.
I think the best thing would be every problem by linux users to be noted, from the errors, we can then start developing a kick ass package manager. I know of a load of errors from the debian package management. Which could be fixed ( although i have to admit debian has gotten much better, about twice a year debian unstable goes through major hickups as xfree86 etc change, theres far too many old packages knocking around that can cause probelms. get rid of the kde 2.x packages, get rid of anything not needed, clean up the repository.. xfree86 3.3 is still part of the packages.. make that into another sub folder such as redundant, for people that specifically need older stuff as they have old machines.
Then the users with ancient hardware run the redundant tree, which allows them to get access to stuff like gnome 1.4 / kde 1or2 / xfree86 3.3 etc. This makes the pms that much easier for people with relatively new hardware.
I can be bothered to continue. Its not perfect, but windows doesnt provide the answer either. If anything windows biggest problem has been its dumbing down.
To satisfy the dumb users the whole windows ui has tried to become smarter at dealing with the dumber, and this smartness causes all of the problems, the attempted smartness has just caused the severe dumbness, no thanks dont a wizard, no i dont want you to autodetect the hardware i removed it on purpose cos its causing me problems . resulting in
$$%””£$£$$££$ windows $£%$£££$£$ $%^£ting “£$£%$£%$%$
which is usually my conversation with a windows machine. It doesnt allow me to do what i want to do something manually, it treats me as a dumb shmuck so i format the crap off and install debian which does allow me to control it as i please. Thats the difference.
I cant even begin to explain the frustration and pure rage windows has caused me. Its just a stupid system i hope the same never happens to linux.
> The USER is who the developers should be thinking when they develop a *platform* not themselves, their geekness and their Kewl status.
I agree with Eugenia’s comments totally. A problem I find with many developers I’ve known is their their myopia in that they’re more concerned with the technical aspects of a project, and usability issues are not the most interesting issues to deal with. This is a major problem facing FOSS, due to its inherent nature. Good usability requires coherence, especially on the UI layer, but not limited to it, and that usually requires one person to do that. Developers have to be prepared for their egos to be dented when their pet implementations have to be modified for the overall coherence and usability of the project, but how many are willing to do that, especially when FOSS developers represent some of the best programmers around?
I dare say that no FOSS would be able overtake any commercial software unless the usability hurdle is cleared.