Worst Linux Annoyances?
greenrd writes "Ever spent hours trying (and failing) to get a printer driver to work on Linux? Struggled to configure something ever-so-slightly out-of-the-ordinary? What have been your biggest annoyances when using Linux? Three O'Reilly authors are compiling a book on Linux annoyances - and their suggested solutions - and they've started a mailing list here. I can't help but think, though, that such a book will be dated quite quickly. Sure, some problems do languish unfixed for years - but equally, I suspect many of the problems will be fixed before, or soon after, the book's publication date. Still, increased visibility might motivate developers to create fixes or workarounds for some of the problems, so maybe this is an ideal opportunity to get your pet peeve finally addressed!"
What have been your biggest annoyances when using Linux?
Easy - you guys.
By far, hunting down layer after layer of dependency while trying to install software, only to meet conflicts is my biggest problem.
I am running RH8, and an somewhat of a linux newbie, but i have speant hours trying to get the right versions of software installed, often with two four levels of dependency, (ie Software i want needs x, which needs y, which needs z, which needs a...). I recently installed apt, which made it a bit easier for software it indexes.
Windows software downloads can be big and bloated with DLLs but they generally work out of the box.
paul reinheimer
S .... C ... O
Now who can beat that?
Ñ'
The most annoying thing about Linux is that people compare it to Windows and point out the differences as "annoying".
Different can be better, but yes, there may be a learning curve... and that can be annoying for some.
Cripes...
If you ignore the other uses of a tool, does that make the tool less useful, or you less useful?
Isn't something from the OS itself, but the "1337" attitude from the users. "Use a different distro!", "RTFM!", "l4m3r!"
I gave up on Linux (and went back to BeOS) simply because the attitude of the Linux users I ran across was intollerable. You won't find that with BeOS users.
(And I'm willing to bet money this gets modded as flamebait, but it's the painful truth)
So rise up, all ye lost ones, as one, we'll claw the clouds.
The default font (at least every time I installed X) is always *tiny* on my screen. No matter how hard I tried, when I changed settings, it never seemed to work.
"I turn away with fright and horror from the lamentable evil of functions which do not have derivatives."
is vendor supported drivers.
Printing, video drivers, sound drivers, etc are ALL significantly easier to setup and use under windows. This is reality because windows controls 90%+ of the desktop market.
Until Linux has the ease of use with devices that both windows and macs enjoy, drivers will be my largest annoyance.
BTW I've been using linux since '95 and it has come a very long way, but it has a lot left to be desired.
Why can't rpm figure out the next arg is a file (not a package with an illegal package name ending in .rpm) and assume the -p flag?
Why can't cdrecord by default create a sane ISO if the request specifies a directory or file which doesn't look like an ISO?
etc.
Sure, let someone override this behaviour if they give the special flag after RTFM, I propose --literal. I am tempted to implement this using a bunch of perl wrappers.
And this isn't an annoyance that's limited to Linux -- I deal with it in Windows from time to time. When I hit eject, I want the damn media NOW. Both Linux and Windows will bitch in their own special way about open files or locked files or stupid processes... it's beyond me why someone can't code up an intelligent solution that will close all read handles, and close all write handles with some message along the lines of "Completing write in /dev/cdrw0, please stand by" (of course this wouldn't apply to regular CD-ROMs).
Anyway, the whole point of this rant is that there should be something more elegant than having to manually kill proc's by PID. I don't think Grandma's gonna ever use Linux if she has to do that kinda stuff.
Ah, I see you've met the people in #Linux on EFNet. :)
"I need help..."
"RTFM you goddamn newbie or go get WinXP."
You have been kicked by Dudrio (Wanker)
Cannot rejoin channel (Address is banned.)
I heard one guy state that "When you're 80% done with a project, you've probably only spent 20% of the time that it takes to complete it with splendor".
I think that Linux is there, it's 80%. Things just don't work out of the box, and they should if we wish to hope to compete with Windows or Mac OS X. Try daisy chaining external firewire drives on RH 9, it just doesn't work. Try changing network profiles smoothly with RH 9/XD 2 - it just does not work. And get your funky i18n characters to display properly in RH 8 and later - it's not as easy as selecting a country during the install process. These are supposedly not rocket science issues, it's finish, it's what makes the difference to the average user, it's the difference between 80% and 100%.
Linux has not really evolved beyond the 80% during the past 3-4 years. Sure, we've gotten GNOME2, KDE3 and so forth, but these still lack the same finish as their predecessors did.
I'm beyond wanting to fiddle with my desktop PC, which is why, after 5 years of using Linux on the desktop, I'm switching from Linux to Mac OS X once the next powerbook update occurs.
Unable to read configuration file '/bigassraid/htdig//conf/14229.conf'
Geocrawler error message.
Trying to understand Linux as a "Windows substitute" is a doomed prospect. Their differences aren't just a matter of tradeoffs: they are radically different kinds of system, much as an MP3 player is different from a turntable. If you found two people arguing over whether an MP3 player or a turntable was "better" -- or a turntable user saying that MP3 players were "annoying" due to the lack of an RPM control -- you would of course recognize this as nonsense.
An example of this sort of difference between Linux and Windows is the difference in the handling of drives. Windows uses drive letters; Linux uses mount points in a single filesystem. While there may be advantages to each, they are more a design difference than a set of tradeoffs. Another example is the difference in balance between CLI and GUI. Windows (or, moreso, Macintosh) users who come to Linux looking for that kind of carefully tuned GUI are likely to be disappointed -- and pushing the KDE control panels on them as "almost as good" is inviting their disappointment. There is a difference in design intention between GUI-focused and CLI-focused systems. The new user just has to un-learn old assumptions, just as the turntable user needs not to be looking for an RPM switch if he wants to become familiar with the MP3 player.
Things I would describe as "Linux annoyances" are points which remain difficult, problematic, or simply grating even for the already-familiar Linux user. Many of these will sound entirely foreign to the Linux novice or non-user, since they are matters that only occur to the already-familiar. These are points which seem out of place, or insufficiently regular or predictable, even to the expert.
Some examples of what I mean:
The parent contains an insight that many Linux hackers simply don't get. It's better to have some process generate a thousand I/O errors than to have a computer that is not responsive to user input.
Having to use a command-line utility to track down and kill apps that are accessing a given device is a complete *failure* of the OS to just do what the end-user wants it to do. In the case of a disk eject, the OS needs to forcibly unmount the disk and allow the user to eject, and it should be the responsibility of any programs to gracefully fail, or even better, handle the error, if they really needed to access that disk.
It should never be the user's responsibility to clean up other programs so that the system can perform a task the user requested. When the user makes certain requests of the system, such as those of the "give me my disk" variety, the system should be expected to bend over backwards for the user, not the other way around. Anything less should be considered a severe usability bug.
The foul language used by the parent detracts from his argument, however in this case it can be forgiven due to the extreme annoyance of this bug^H^H^H feature.
The preceding comments reflect the author's personal opinion and are public domain, unless explicitly stated otherwise.
Copy and paste doesn't work consistently, and when it does, it often behaves in nonsensical ways.
I feel that world domination will come when the following "Just Works" for every Linux user:
- You can copy text from any application that can supply text into any other text application that can receive text. Many Linux applications can't copy and paste between each other, or if they can at all, you can only do it in one direction.
- You can copy some text from any application, close the window to get it out of the way, because you don't need it anymore, then paste the text into any other application
- You can copy some text in any application, activate the window of any other application, select the text you want to replace, then paste the text you copied first, thereby deleting the second text which you had selected and replacing it.
This last thing I try to do quite a lot to paste a new URL into the URL textbox of a web browser, so I can replace the old URL with the new URL I want to visit. However, in X11, highlighting some text makes it "the selection", so a paste will just paste in the text I'd selected, which was the text I wanted to replace.All of these things have consistently worked flawlessly in every version of Mac OS and Windows I've ever used. Note that my first Mac ran System 5 and my first Windows box ran Windows 3.1. Yes, I am an old man.
I've been using Linux since I first installed Yggdrasil Plug-n-Play and I've never been able to get this to work right.
Consider how frequently office workers in a business need to copy and paste text, and consider that this is my main frustration, even though I am an experienced Linux user. I nearly had my Windows-loving wife talked into trying out Linux, but when I explained this problem to her, she said she wasn't even willing to give Linux a chance.
And yes, I understand one reason this doesn't work in X11 is that the fact that this network-transparent GUI sometimes has to work on X terminals with limited memory, so you can't provide a dedicated memory buffer for a clipboard like on Windows or the Mac. But my friend, the PC I'm typing this on has 512 megabytes of RAM, and frankly I rarely if ever run X over a network, so I don't see this as a valid excuse anymore.
It's enough to make you chew your own foot off.
Request your free CD of my piano music.
The multiline strings suddenly being illegal in gcc 3.3.x are annoying too. Much code still uses multiline strings. Yes I know about ANSI concatenation, but I'm not talking about my code here, I'm talking about the heaps of OPC (other peoples's code) out there. Many wasted moments were filles cleaning up other people's mess. Oh well, not really a linux issue, but a gcc one, but what the heck.
The Linux VM swaps an awful lot when it really shouldn't. Well, it doesn't suck as much as it used to, It used to be a whole lot worse, but it still sucks. I have quite a bit of memory in my machine. I bought the extra mem just to avoid the godawful paging to disk. Linux somehow still sees fit to page to disk. Yes I could turn off swapping, but I just want to be safe instead of sorry. The OOM killer isn't very nice to your processes when you run out of mem or swap.
Linuxisms in code. Programmers that write very cool software (e.g. KDE) but fall into the GNU libc-extension and Linux-only features traps, and thereby making their code instantly unportable. Linuxisms are the bane of my (and others') existance when porting stuff porportedly written for linux to another OS. Instead of a straightforward recompile, I have to monkey around to beat all the linuxisms out of the code to get it to function well on other systems. Examples include /proc abuse, library/system calls only available to Linux, assuming the env is little-endian, alignment assumptions, filesystem feature assumptions, and wearing 32-bit blinds. Not really a linux system annoyance, but more a Linux-attitude-towards-other-systems and brainfarted programmer annoyance, but hey, we're on a roll here.
Bash-isms. Yes, I know the venerable bourne-again shell is the "default" bourne type shell in Linux. It's actually quite featurefull, and can do a heap more stuff than the normal POSIX bourne shell can do. Linux coders seem to thing *all* systems use bash as their bourne shell and write their supposedly bourne shell scripts with bash extensions. For someone using systems like the BSD's, IRIX and whetever doesn't ave bash as their default shell it's mightily irritating. Also the linux bash shebang cancer is an annoyance. If you absolutely must have bash, use env(1) to find bash, instead of hardcoding it into your shebang. Else, just stay away from those bourne again extensions. Use the korn shell if you must.
GNU's rabidness against man(1). GNU has deemed the info(1) documentation the "standard". info(1) sucks. It's counterintuitive, bloated, and redundant. It has absolutely no advantage over HTML, SGML or even LaTeX docs. And the man(1) system is nice and lean for a quick reference. For some reason, GNU wants to stamp out man(1). Luckily, many linux developers still embrace the man(1) system and still write manual pages (bless their little souls). But to find any useful docs about say gnu autoconf, you have to interface with that monstrosity that is info(1).
That's it for a while. I'll think up some more concrete really linux application related ones and post them to the list if I have time. FOr now, this is just a small list of some tings I find annoying about Linux and GNU.
Some time ago i DLed Slackware 7 (or whatever, im a Linux noob) from the Swedish University Network and installed it. It was not the first time i installed linux so i had some clues on how to get a window manager, sound and the internet connection running. But to my frustration the resolution was always off somehow and everything farked up. SO, i return to my filthy imperialistic pigdog Windows and ICQ my Linux-geek friend. Guess what? Couldnt fix it. After a few weeks in windows, i hear the distro on the SUNet was corrupted and averyone downloading the ISO had problems with X-resolution. The bottomline? Peer-to-peer support is way too hostile in the linux community. Go ahead and tell me i shouldnt run linux if i cant get it running in 10 minutes. I still think the community could use some more happy faces and a friendlier attitude towards noobs like me.
Ok, im gonna duck now and try to keep myself from catching fire.
You cant fight in here, its a war room!
That's the trouble. Linux often seems to have two levels of operation: omniscient programmer and absolute moron. While I've always been a big Gnome fan, the latest push is to dumb down the default interface to the point of being suitable mostly for users at the "gee, where do I launch The Internet?" level and requiring hacking xml files to reconfigure things to make it work the way you want it to (because everyone knows that options are confusing, right? we can't give users who can't grok xml the ability to modify the way their programs work in non-trivial ways, they'd be completely overwhelmed!). File-roller is somewhat slow, its interface gets in the way, and it doesn't have enough of a range of abilities to be able to replace learning all the CLI archive commands for anyone but beginning users. Why can't GUIs and command-line commands be at least somewhat targeted to the users who generally know what they're doing but aren't programmers and can't remember all of the command line options for hundreds of programs?
"RTFM. If you don't like it go use windows."
No! I told him to use graphical desktop apps. Nowhere did I even mentioned Windows.
Graphical archiving apps like File Roller and KArchive detect the file format automatically. Those are the apps you should be using, not commandline apps.
I am a software developer by trade. I know a fair amount of user interaction design principles. That doesn't mean I have the lifestyle that affords me ninety hours a week to add nothing but polish the nits out of the hundred different Linux applications I use every week.
I submit suggestions when I can. I even submit code when the problem is isolated in such a way, and the existing codebase is conducive to productive spelunking. Most software annoyances I have are conceptually easy to explain but require in-depth knowledge of the codebase before I could hope re-architect or retrofit a solution.
This isn't about selfishness or altruism, it's about specialization: people can (and do) have legitimate issues without having the capability to fix it, even in so-called Open Source projects.
[
That's against the point of such command-line programs.
Many UNIX command-line tools are meant to do one job, and do it well. There's no reason for tar to know about compression formats -- what about UU-encoded stuff? Should tar have to know about ARJ, LHA, ZIP, gzip, various encoding formats (BASE64, etc.), and other issues?
This isn't an RTFM thing -- you don't really want to be using tar or rpm or cdrecord in the first place, because these are programs which are meant to do things very literally, without room for misinterpretation.
Strict behavior is better than undefined behavior.
The ideal solution is NOT for GNU to add all sorts of heuristics into tar to figure out what you want it to do -- that addresses the wrong problem. The ideal solution is to have front-end programs which invoke tar, gunzip, rpm, cdrecord, and such. Perhaps a "suggest" script could invoke "file" to determine what the file contains, and suggest things to do with the file based upon its contents.
Simplicity is key to having bug-free programs. Let front-ends handle dealing with people who don't want to learn how to get a specific program to do a specific task for which it was designed.
Besides, what is the best default action for tar? To uncompress an archive? To list the contents? To add files to it? What if the user specifies two tar files on the command line? Does tar add the second to the first? The first to the second? Does it list them both? Does it create a third with the merged contents of the two on standard output?
It sounds to me like tar should have command-line options to let the user tell it EXACTLY what to do, so the user isn't surprised by something unexpected happening.
Oh, wait, it already does.
Somebody get that guy an ambulance!