Yet Another Call for Linux Standardization
An anonymous reader writes "Newsforge has an article Commentary: United We Stand...the Division in the Linux World, in which David Meyer argues that UnitedLinux will provide standardization for the Linux community that will allow it to win the desktop market from Windows. The article has a number of supporting comments, but then this one particular negative comment that disagrees with David. This particular comment offers an alternative view on the need for standardization. This aternative view that is put forward simply argues that 'Over what is almost twelve years we have pulled ourselves up by the bootstraps. We have done this using a development model that allows us to produce software that proprietary vendors cannot compete with', and then summarizing that 'the Linux community does not need to set up businesses with the specific intention of trying to "win" users from Microsoft; all we have to do is continue to develop software in the same way, and the users will make the switch all by themselves'."
There is only one answer: SOMEONE needs to convince me that I can be just as happy and productive in a Linux environment. To switch though, I also need some incentive (in this case that would be that Linux is free).
The idea that "users will make the switch all by themselves" is absurd and unfounded. Does the comment author believe that the BILLIONS of dollars Microsoft puts into marketing is wasted?? I don't think so.
using System.Awesome;
Not to be a naysayer, but in 12 years Linux has managed to gain only a few percentage points worth of the desktop market. Users really don't care, don't know, and have no reason to be aware of the development model used to create their software.
In all probability, Linux will never replace Windows, or even the Mac, on the desktop. It can, however, carve out a viable slice of the market if the Linux community delivers attractive, innovative, easy-to-use software with capabilities that users want but cannot find elsewhere. By and large, this hasn't happened yet.
And, it will not happen if too many Linux developers continue to imagine that their development model is what they're selling. It isn't.
-- Slashdot: When Public Access TV Says "No"
If, and only If, one method was so wonderfully better than all the others, everyone would be using it.
Well, being honest -- if one package manager was so much better than the others, all of the competing package managers would try to clone that one. Natural selection doesn't seem to be working particularly well among open source programs. (How many things pop up in one version of Gnome/KDE that is copied by the next version of the competing desktop?)
However, any modern distribution is pretty consistent by itself; the whole inconsistency argument has been weak for quite some time. If you install everything from source, then you'll have to deal with it, but those who pop in the CD, install everything they want, and then go have a nicely working system.
How can we continue to believe in a just universe and freedom to eat crackers if we have no ale?
The problem as I see it, is that Linux is seen as the Windows killer. It is not yet that way. We are willing to praise lackluster device support, and non functioning desktop environments because they don't give us a BSOD or tell us our applications are doing something "illegal".
We need a Lindows type OS, that has a nearly flawles, Windows-like interface, and easy to use device support. We also need massive support for everything that is cool on the Web for home users to tackle learning Linux.
I'm not a computer dummy, but I had trouble getting my scroll button on my mouse to work in Mandrake 9.0. I set it to where it SHOULD have worked and it didn't. Then I rebooted, and all the sudden it worked. Nothing told me I had to reboot, and I assumed I didn't because I was switching between mouse selections and other features were changing so how was I to know that the scroll button needed a reboot?
If I were in Windows, they would have told me to reboot as soon as I picked another mouse. This is just one example of less than thrilling support for my hardware. My soundcard and NIC didn't work either without tinkering.
Thanks for letting me rant. I want Linux to kill Windows [to the point where it is affordable and stable], but Linux cannot do that yet. Standardization will help that, but Linux is not meant to be standard for everything! Contradiction, eek!
You need non standard versions of Linux for people who don't want it for Desktops. Period. Trouble is, those people are the ones driving its development, so we won't see a standard Linux anytime in the next decade.
Saskboy's blog is good. 9 out of 10 dentists agree.
1. Debian (who are a very very big player in the Linux world and currently my distribution of choice) have a very very good package manager and even better distribution system for it (apt). LSB, on the other hand, have decided on Red Hat's RPM as their package of choice. This means either Debian somehow has to be extended (some would read crippled) to work properly with RPM, and then on top of that they have to realign their directory structures to go in line with LSB standards, which will confuse a lot of Debian stalwarts.
Windows installers can copy quite fine with the fact that the system directory on Windows 2000 is \WINNT and the system directory on Windows XP is \WINDOWS. It shouldn't be hard to write Linux installers that can do the same thing - even just looking at environment variables should leave you right 9 times out of 10?
Debian can produce a LSB-compliant distro, but they may choose not to. Or not for a while anyway.
2. Has anyone suggested to Richard Stallman that Free software is renamed Freedom software, so people instantly have a better idea of what it's about?
A big, big part (perhaps the most important part) of usability is consistency. Lack of consistency between apps, and between an app and the desktop environment, contributes to poor usability.
How important you consider usability to be for Linux I guess is up to you the individual. But accept that without a 'standard' GUI you can't have a good user experience.
- Documentation on how to get cable/DSL modems working. Perhaps a desktop utility (program) too.
... why can't I do that from my own console?
... not a bad idea, although it's still a hack. I really ought to figure out how to do that.)
Don't you just type the relevant information provided by the cable company into your distribution's networking options? Though it would have been nice if there was an easy way to enable NAT -- I seem to remember that being a pain.
- Swap files. They work. People don't have a lot of RAM (well, geeks do, but most home owners have 64 or 128 MB). But they like pictures and video, so let's swap out some of their 20GB hard drives.
I can't remember the last time that an installer didn't at least recommend making a swap partition.
- Some blue screen type of application to let them know when their video drivers are corrupted or something bad happens.
I agree here. Most people are using X, and so if you have a kernel panic or something else bad happen, you don't see anything. Also, if X locks up (usually due to buggy graphics drivers), I often have to telnet in to kill off X and restart it
(Someone suggested that I set up my reset button to kill X
- 24 hour free tech support via phone or on-site service for $0.99/minute. People need to learn Linux. Most aren't born with command line powers gifted from God.
- Record hardware configurations and errors that occur (ala "TalkBack" in Mozilla). Users can then call in to 1-800-LNX- HELP or whatever and get some assistance based on their computer's unique ID number.
Tech support costs money -- lots of it. "Linux" isn't a corporation that can pay for it. The distributions, however, can. (And I'm fairly sure that they do.)
How can we continue to believe in a just universe and freedom to eat crackers if we have no ale?
It's not the first time that I see comments on how on some linux distributions config files are not where they should be (in /etc) and how *BSD is so much better in that respect.
/etc (besides user config in my home). So can you please give examples of config files that are not in /etc?
;)
/etc or /etc/squid but didn't find anything. It took me a couple of minutes to figure that the config file was in /usr/local/squid/etc or some very weird path like that. Not really the 'everything system related is in /etc like it should' you describe. The story had an happy end since a few minutes later I managed to log on IRC.
I've been using Linux for 5 years, and over they years I tried several distributions (Mandrake, RedHat, Debian, Gentoo) and I don't remember having to edit a config file that was not in
Now, regarding *BSD. A couple of months ago, I went in a cybercafe and wanted to chat with friends on irc. However as soon as I tried to connect to an IRC server, it would disconnect me for 'having an open proxy'. I asked the manager. He said he was aware of the problem but didn't know how to get rid of it. I told him they probably had an open proxy. He asked me if I was familiar with unix. The next minute he had me logged as root on their FreeBSD NAT trying to find the problem
I ran 'netstat' and found out that they had Squid running, and that me getting kicked from IRC was probably to due to the fact that it was poorly configured. I immediatly looked for a the config file in
Disclaimer: it was my first and only time doing 'administrative tasks' on a *BSD system so it could be a bad example. I do not mean to troll, just giving one example that is opposite to the parent poster's experience. Are Linux distributions so bad at having all config files in the same place, and are the BSDs better are it?
!
^_^
I hear what you are saying, but instead of looking at the glass as half empty, look at it half full. In 12 years, linux has managed to gain a couple of percentage points of the desktop market. Holy cow! That's major! That's amazing! Think about BeOs, NextStep, OS2, and Amiga. Hell, even Irix, Solaris, and AIX have been loosing ground in the desktop market.
I understand what you are driving at, as things currently stand. My thinking is that a half dozen advertising gurus could take linux, repackage it, and make a marketable desktop operating system that could replace Windows, if they could find a better user interface metaphore than 'Windows'. But, let's face it, 'Windows' is a pretty damn good metaphore for operating a computer. If that marketing and advertising team could think up of a better metaphore than 'java' or 'windows', they would stand a chance of reinventing the market. By and large, this kind of thinking is very rare, and the notable exceptions have been Windows, Apple, Sun, Macromedia, and so forth... (notice the metaphorical marketing that is inherent in these companies' logos?).
Hmmm... will need to think about this some more.
Next, have several distros aimed at different kinds of users. Everything should be graphical from the very start. The installer should never bother the user with manual partition creation and the like. Just a simple question: You have an 80 gig drive, how much of it do you want to leave to your old os, and how much for linux. No more should be asked, ideally. A basic package set is installed for all of those distros, and a set of packages that is target-specific, as in productivity apps. All hardware should be auto-detected, and the smart installer should download the drivers automagically. Most Windows executables should run directly as if they were linux binaries (transparent Wine). There should be a simple, complete configuration utility, which should also include package management. Network access should be transparent. The installer should also install software according to hardware installed. For example cd-burning software will be installed if the system has a burner. Video-editing if firewire ports are present. Hardware detection at boot and periodical software updates according to software package completeness (if the package development has just started, and the package is still buggy, it will be checked for updates more often). Direct importing of emails and address books from existing Windows partitions without user intervention. In short, the user would be ready to start working immediately after installation(which consists ONLY of popping in the cd and selecting partition size then waiting for setup to complete). The smart installer should also handle windows installer programs.
This is a short summary of the features that would lead to rapid adoption of linux on the desktop. It must be made transparent, as non-intrusive as possible, yet easy to customize and all possible options easily available to power users (interface complexity as a setting in the control panel). It must handle everything automagically, so the user never needs to do anything related to the os, only related to the work they are doing.
I realise that this is far off, but one step at a time we could develop a system that would work for average users as well as power users.
Generally, we need to take the following steps:
- The setup program
- The smart installer
- Transparent Wine and windows app integration
- A central driver repository
- Central package database
- Minimal user interaction when not absolutely necessary(of course available as a setting)
- Interdistribution compatibility
- A method of retrieving settings and data from old os
If we handle those issues, we might actually have a better os usability than windows. If we have something easier to install, free(both ways) or at least free as in speech and very cheap, with better usability and better responsiveness, fast automatic bugfixes, better stability and better application base, we have a winner.
No matter what you may think of Java, it is incredibly sucessful at providing the sort of standardisation the Linux is after. While there are occasional gliches, given the scope of the APIs and the fact that the apps run on completely different OSes, Java has been incredibly sucessful in the standardisation that has been necessary to make it cross-platform. Maybe the Linux crowd could learn a few things:
:)
1. If it already works, wrap it
For example, Java often wraps existing functionality with a common API and then has SPI (Service Provider Interfaces) that funciton as "drivers" to a specific implementation. For example, the Java Naming and Directory Interface (JNDI) API allows communication with DNS, File System, LDAP, NDS, etc. Each of these naming or directory services were around before JNDI but it enables them to be used in the same way.
2. If it doesn't exist yet, standardise the interface, not the implementation
Some specifications don't wrap existing functionality but create something that is completely new. However, Java trys to have its cake (standardise the solution) and eat it too (allow competition). How does it achieve this seemingly impossible miracle? The interface is typically standardised (to a degree) and the competetion occurs in the implementation. Of course, the interface typically ends up only describing a subset of the functionality that is needed so:
3. If it's too hard, leave it out of the standard interface (but revisit it later!)
It's important to realise that people will have trouble agreeing on the nitty-gritty aspects of a standard. So what? There will always be implementations that push the limit and go beyond the standard. This is good and necessary. What is important is that the standardisation process is a cycle where features can be wrapped into the standard (following the first 2 principals mentioned) after they have had a run competing in the wild with each other.
4. Spec, RI, Test Kit
When giving a talk, it is said that you should tell people what you are going to say, you should then say it and you should then tell them what you said. Only then will they really understand. Likewise, there are 3 components to a sucessful standard - the specification (unfortunately many standards stop here), a Reference Implementation and a Test Kit. Only with the last two can competing implementations be sure that they will be compatible. Of course, like everything in the standards process, these 3 components need to be revisited as the standard is improved.
5. Don't impose the Lowest Common Denominator
For those not from the Java world, the graphics libraries in Java are a useful case study in standards evolution. AWT was originally know as the Abstract Windowing Toolkit but quickly became known as the Awful Windowing Toolkit for a few reasons, the primary one being that it only implemented those widgets that were available on all platforms. Obviously, this sucked - for example, because X/Motif had no tree control, you couldn't use AWT in Windows to do tree controls. There are currently two ways around this: Sun created Swing which takes the AWT library and emulates every platform's widgets. This has both the advantage and disadvantage of consistency: It takes a lot of work to emulate an underlying feature exactly and when the underlying feature changes, people using Swing have to wait for the Swing libraries to be updated. The alternative, SWT/JFace from IBM's Eclipse project uses a cross between the AWT and Swing approach. It works like AWT in that it renders widgets natively but it doesn't restrict itself to the Lowest Common Denominator. Instead, it only uses the Swing "emulation" approach if the given widget does not exist on the underlying platform. While these APIs only refer to GUIs, the general architectural problem is the same when creating standards that wrap other standards (point 1) and need to be considered carefully.
6. Motivation
The following is my personal opinion but I am sure many people will agree: Creating specifications, reference implementations and test kits is boring. Maintaining them is a pain. Trying to get people to agree even on minimum standards, especailly when people have firmly entenched beliefs is difficult to say the least. In other words, making standards is boring, painful and hard. It is also very useful because a good standard makes everyone's life easier. Think about some things that are pretty well standardised - the way you make a phone call for example. Imagine if not all phones had the same symbols. Imagine if the nozzels at certain service stations only fitted certain models of cars.
Why are these things standardised if they are boring, painful and hard to do? Personally, I think economics/money has a lot to do with it. However, I've already ranted enough here so I'll leave that for another post.
A+
'the Linux community does not need to set up businesses with the specific intention of trying to "win" users from Microsoft; all we have to do is continue to develop software in the same way, and the users will make the switch all by themselves'.
Bless that guy that wrote this! Too many people are obsessed with making Linux (and Unix in general) the "Anti-Microsoft" operating system. I would much rather use a real OS than an alternative OS. What is this strange desire to make Linux an alternate operating system?
A Government Is a Body of People, Usually Notably Ungoverned
Nothing worse using in Linux. Where is my Maya killer, the Photoshop destroyer, the NASCAR game, a sweet DreamWeaver clone, etc.? THEY DON'T FUCKING EXIST!!!! How many times do we have to shout it to you Linux idiots, IT'S ALL ABOUT THE APPS!!!!! We don't want to wait for you conceited OSS zealots to get off you ass and write an inferior version of an app we need, we need apps just like the Windows verions we all use, AND RIGHT NOW!!!!!
The OSS community cannot be depended on to write needed code. Here's the poster boy for this argument. Linux drivers for ATI cards. Now ATI has made available the info needed for any coder to write a driver, yet not one has been offered by the OSS community. Now if this supposedly quick moving OSS group can't even motivate themselves to write a measly driver, what makes you think they can replace every Windows app with OSS equivalents? They won't, and they can't. Commercial programs are what will save the day, not this phantom OSS force.
Until the apps are there, Linux is a waste of time.
Using RPM (retch) to install Windows (retch retch) would go something like this (blatantly ripped from a sig I saw):
Gentoo's portage tree, on the other hand, goes something like this:
and it installs. Sure beats dealing with RPM's endless dependency bullshit.If I wanted to deal with crap like this, I'd just continue signing checks to Lord Bill hoping he won't remotely disable my precious Windows. As long as we have garbage like this, we're opening ourselves up to FUD that will neatly appeal to the PHBs M$ markets to.
When Gentoo gets a graphical front-end for the portage system, compilation will be a long-lost memory for most users. Gentoo standardizes the compilation/compiler option configuration process - for any program, just emerge (name of program to build). It has some bugs now, but fewer than you'd expect. I think this would be great for end-users - power users and sysadmins will want to muck with every individual compilation.
It also does dependency checking better than any packaging system I've seen so far - except maybe Debian.
The fact that it's source-based will probably keep it from mainstream use, but the spin-off distros could be incredibly promising.
There are a helluva lot of comments of the vein, "if you don't want to learn Linux, stay away." It is obvious to some but not many of us here that the problem is not that people don't want to use Linux, it is that they want to be able to USE Linux. As a relatively new Linux user (although I've used a lot of Nix tools in Mac OS X) I find it incredibly frustrating that oftentimes I want to do something in the CLI, I have no idea how, and I don't even know where to start looking. Friends tell me commands to run like they should be obvious, but how would I know them except by being told? And I absolutely hate it when I want to, say, change my resolution and I have no idea how and a friend refuses to help me because he knows how to do it in Red Hat and Mandrake but he's never used Debian and he doesn't know nor care to know the "Debian way."
The posts about "lowest common denominator" are right now, and here is an example. When you want to change the host name of your machine, you run the command "hostname" as root followed by the new name. Ta dah, its set. This works, as far as I know, on all Linux distros. On Mac OS X, you use the hostname command, and it doesn't stick on reboots. Why? Because the Mac uses a differnt configuration file and its not documented under man hostname.
What do I want as standards? I want you to be able to add new ways of doing things, with new features and better usability and nicer functionality, but I still want my old commands to work, even if their deprecated. Or at least point me in the right direction.
That is what "standardization" means to me...a unified method of handling user interaction. I don't care if you use Gnome or KDE, I just want to be able to access all my apps from each. I don't care what you write your programs in, I just want to be able to use keyboard shortcuts for "cut" and "paste" and "save" that are the same. I just want my window themes to apply. I just want the widgets to look the way I set them. I just want the "Okay" button to always be on the right. Or the left. Whatever.
Please, standardize. Look at the Apple Human Interface Guilelines, and make something better, something that projects and apps can put a sticker on their website proudly saying, "I'm usable!"
That's all I, a Linux newbie, ask.
Whew, that's a relief, because you know what... Linux wasn't created to replace Windows! .
Let the users complain all they want, Linux doesn't exist to compete with Windows, nor is the goal of Linux to supplant Windows on the desktop.It may be the goal of some Linux companies to engineer a Linux version to compete with Windows, but this is not the goal of Linux.
As a Linux developer (and not a Linux Distribution employee), I really don't care what the Windows users whine about. If they don't like it, they can go back to Windows. Linux wasn't created by whiners, and I don't work for them.
If the users can't use it, or it's not too easy for them, there are plenty of other operating systems they can play with that might be easier. I'm sick of hearing this topic come up over and over and over. "But for Linux to be successful, it has to make it to the desktop...". Linux is already successful, even if I am the only person in the world using it.
It's MY job to make the software, and make it work.
It's someone ELSE's job to make it work like Windows.
Damn right poeople are warezing Photoshop. For most people, the gimp is probably enough - and they just don't know it yet.
When gimp can do true CMYK what-you-see-is-what-you-print color-matching as well as Photoshop can (which is pretty damn good, but needs work), it will be a professional product. But I'm not exactly holding my breath, because, as Eegon says, "print is dead." Long live the Internet.
People who think Linux will never be able to compete with Windows until every damn niche market has been filled have forgotten what ordinary people do with computers. Average Joe Enduser (no offense) will probably never touch Maya in his entire life. I don't see why Linux needs a Maya clone. It's a niche - and free software may fill it one day. It may never be filled. Until it is, most people won't give a jot if some freedom-loving hacker making Lego movies has to suffer with POVray. In fact, most hackers probably don't care already . . .
After letting my non-technical friends test-drive some Linux software, they wanted Linux. They love ee (electriceyes), gimp, logjam, and Mozilla - because they see these programs as better at doing what ordinary people need to do. In two weeks, I'll be putting Linux on their machines just so they can use these four programs. And that's all I have to say about that.