Dependencies. Linux has a chronic case of dependency hell. Let me explain. In windows there is the win32 api, which is a standard set of function calls that do things like draw buttons or make the sound work. Once a new set of functions is added to the win32 api, those functions are guaranteed to be present on all windows installs. So for a software developer things are simple, the library your using is in the win32 api, it's guaranteed to be in windows and you can leave it out of your installer. If not, include it. What's more, because win32 doesn't change, old software runs on new windows. If the programmer who wrote your favorite win32 gets board, goes broke or aquires a girlfriend
then that win32 program will run on each new version of windows forever. Or at least, that's the theory. Joel, from joel on software
is an ex microsoftie who has written some interesting articles on the importance of backwards computability to Microsoft and the reasons for some of Microsoft's decisions of the years.
In linux, there is no standard set of libraries installed that a software developer can rely on. If you want your software to install, you need to either include everything (making the exe bigger) or tell the user to find and install the libraries. Finding and installing libraries gets old really fast. Fortunately, if a package is in the package manager then the package manager will install the needed libraries. Often even if the software isn't in the package manager, then libraries might.
Things are a lot better than they were even just a few years ago, but the situation is still not ideal. Interestingly I once tried to persuade a real hardcore religious linux fanatic that there was some advantages in doing things the windows way. I even suggested the solution of gathering together specific versions all the commonly used libraries and putting them into one uber-library. Call this linux standard library 1.0. Make a package for all the common distributions, and get each distribution to put that package in their repositories. Each new standard library sits at a different location on that hard dist, e.g. /usr/lib/lsl-1.0, /usr/lib/lsl-1.2 etc. Now Joe independent software writer can just compile against linux standard library 1.0 and know his software will work forever. A bit later he writes version 2 and lsl 1.2 has come out, so he compiles against that. But nobody is forced to upgrade because lsl 1.0 is still there.
It would probably be a really hard task, but you don't get prizes for doing things that are easy.
The hardcore linux fanatic rejected the idea right away. Apparently that would be encouraging closed source software development. Everything in open source software is supposed to evolve. No girlfriends allowed.
EvanED wrote:I don't dispute that Linux has Windows beat in this area, but I think you overstate differences, especially if you allow the Windows user to install cygwin. And I don't think you chose very good examples, except for arguably the wireless one since I think you may need a dialog for that. (That said, it's really easy to open and provides all the information I've ever needed.)
They're examples of the commands I know. As you might be able to tell from find | grep html, I'm not a guru the command line. I still like the linux command line a lot more than the windows. The results from ls are colour coded and can be filtered with grep. In windows you have to change disk and then cd, I'm forever tying d:\>cd c:\documents and settings\. There's probably more. I may well be getting to matters of personal preference, so I'll leave it at that.
Win-R brings up the run dialog in Windows. It's rather crippled in comparison though since not much is typically in your %PATH%. However, in Vista, just pressing the Windows key and typing is almost always enough, as it will search the start menu and eventually other things. The times when it isn't is typically when you want to run a command line utility that is in your %PATH% anyway.
I don't actually have Vista, but with google desktop, you can double tap ctrl and type the program you want. I consider google desktop worth installing just as a start menu replacement, never mind the all the searching. I wish the gnome people or the kde people were paying attention. Tracker just isn't in the same league.
More realistically you'll be starting aptitude or synaptic so you can search for the program you want, at which point you're not seeing a huge win over the Windows method.
apt-cache seach maguffin! ...but yes, actually I'd use synaptic for seaching. When I wrote that post, I'd just been fixing my Grandad's PC. He'd go so much crap running at once that needed either uninstalling, or at least deactivating with msconfig. When you need to uninstall 10 or 20 things at once on a computer that runs like treacle (no matter how many processes you kill) you will appreciate being able to check 20 boxes and go make a cup of tea. When I somehow broke the crappy antivirus software and needed to use system restore and had to uninstall everything again more carefully, I really, badly, wished windows installer worked like apt. Maybe that situation doesn't come up too much, but I was really frustrated when I made the original post. The problem didn't turn out to be spyware of viruses, in case you were wondering. Just lots and lots of legitimate crap installed from CDs.
And if I know what I want, I apt-get install. It even autocompleates on ubuntu. Anyhow...
OP: The biggest danger of using linux is that you'll end up defending it pointlessly in an internet forum. I mean, I joined the forums just a weak ago, and I've ended up writing two posts which are much longer than I intended.
All in all, it depneds how much you care for your PC. If you don't pray to it, don't want to have children with it and wish it good morning every day, then stick to the 'normal', 'easy' and 'simple' solution
But if you don't wish it good morning every day, how will it know you care?
I henceforth declare that I will not defend linux on this forum anymore, as life is too short and the subject is too tempting.