The Open Source Design Conundrum
Matt Asay writes "Walk the halls of any open-source conference and you'll see a large percentage of attendees with ironically non-open-source Apple laptops and iPhones. One reason for this seeming contradiction can be found in reading Matthew Thomas' classic 'Why free software usability tends to suck.' Open-source advocates like good design as much as anyone, but the open-source development process is often not the best way to achieve it. Open-source projects have tended to be great commoditizers, but not necessarily the best innovators. Hence, Red Hat CEO Jim Whitehurst recently stated that Red Hat is "focused on commoditizing important layers in the stack." This is fine, but for those that want open source to push the envelope on innovation, it may be unavoidable to introduce a bit more cathedral into the bazaar. Without an IBM, Red Hat, or Mozilla bringing cash and discipline to an open-source project, including paying people to do the 'dirt work' that no one would otherwise do, can open source hope to thrive?"
Their is no one overseeing the whole thing.
There is no common goal.
There are more useless that useful programs.
Stupid little things never get fixed.
There are too many distro's.
Someone needs to get paid for the work they do.
Someone need to get the praise and encouragement they deserve for working so hard.
Do something, go to your favorite distro's website buy something. No one wants to work and have to survive on cup-a-noodle its gets real gross after awhile.
Give the people who make your free software something so they don't feel neglected, an unhappy programmer will code what he needs for himself then give it away for free because of his principals. Make it worth his while and he might make something you need.
So, i take it you haven't "upgraded" to KDE 4.x yet. :)
---- Booth was a patriot ----
The useability problems with Linux comes from several areas. One is the lack of hardware support which results from the lack of a stable binary driver ABI between versions. This is basically a great disincentive for hardware manufacturers to not support linux and providing a driver. The open source drivers are often late, becoming avialable months of years after the hardware was released, buggy and does not support many hardware features. Vendors tend to carry out a lot of testing on the drivers which they produce and are better able to write driver to fully exploit the features. All hardware vendors will never release driver source, thats not realistic and a pipe dream, and shows the arrogance and niave nature of some Linux developers. The only people that refusing to provide a stable ABI ends up hurting is users who cant use their hardware. Users dont want to wait months for the release of some crappy open source driver, they just want the hardware to work.
This support for backwards compatability does not necessarily need to go into the main kernel but could be provided by a compatability layer or module.
For any platform, backwards compatability is essential for useability and to get support for software and hardware companies. These companies are not going to want to support 15 different versions of software for each od the kernel/distro combinations that exist.
On linux, the package systems and program installation is also a mess. Linux developers make an arrogant and naive assumption that all programs that a user wants to run will be open source, and that they will be installed with the native package system. An effective OS realises that the program installers will vary and will not always be in the form of a native package, and makes sure that these can work, and also protects itself.
One solution to these problems is to utilise a filesystem overlay. If an installation program attempts to overwrite an existing library, for instance, instead of being overwritten, the old version of the library will remain visible to other programs that use it but from the perspective of new program, it will see the new version of the library. This prevents the DLL hell nightmare. Each version of a file and program would be tagged to environment overlays. This would also allow, every file in the system to be traced back to the program which installed it and all files the installer put in the system to be completely removed without even affecting other programs.
This would be secondary and used mainly with foreign installers, programs of the native package system instead linking to a shared version of the library that they need and with different versions of the library being stored with the version number in the file name.
Linux can and should be both user and expert friendly. There does have to be a focus on both providing a high level user interface and as well transparency of the underlying systems so that they can be better understood and services. Everything should be able to be done both at the command line, programming and GUI level.
THe key to designing useable software is not making software dumbed down or removing features. Doing this makes the software so inflexible that only an idiot can use it. Instead, the software needs to be configurable and flexible as possible, but useability is in the layout, more commonly used features are placed up front and less commonly ones placed in expert screens and so on .
Sometimes, people who know little or nothing about Linux or software development make badly informed opinions on software development. I have heard people both advocate actions that would cripple linux software by damaging backwards compatability or remove essential features and functionality making the software too rigid and inflexible. These badly informed decisions cause a significant degree of the useability headaches with Linux. One example of people who dont know what they are talking about is people who think X needs a built in widget set, or who complain
Thing is apple laptops are usually pretty good in design, so even OSS people will buy one and then put distro of choice on it, problem? not really. Good hardware is good hardware.
Except that Apple laptops are junk. None of them have nipples, they only have a single mouse button and they're all shortscreen. Mind you, most laptops are shortscreen now, but that doesn't make it any better.
Game! - Where the stick is mightier than the sword!
Agreed. Take note, KDE4 developers. When you're baffled at the negative feedback you're getting, keep this in mind.
The reason that open source sucks is that it is tied to Linux, which is a derivative of UNIX. Devotees of the Cult-of-UNIX believe that gui interfaces are positively evil, because users should have to EARN the right to use software by memorizing an arcane and poorly documented command line syntax.
This is what has kept all versions of UNIX, including Linux, in the murky shadows of the IT world for decades...
The open source world needs a mental high-colonic. They need to purge the computer-science major arrogance out of their mindset and realize that ease of use trumps all other concerns in software design.
Following the proverb - "He who would be first amongst you must be the servant of all", open source developers need to finally admit that only software that makes features accessible to their grandmother *MATTERS*.
Everything else is just- well - j@rking off...