Nothing is a panacea. Over time, I’ve found the most intelligent thing you can do when making choices is to take the time to understand the good and bad about the decision/life choice/political philosophy/etc before moving forward. If you can’t say both what’s good and bad about something – then you need to do some more homework.
So here’s a very well balance and well-written article on what’s needing some work in Linux. Interesting points:
1. Package management – RPM’s and inter-dependencies are a huge headache. I think people underestimate how much thankless work goes into folks who make packages that automatically resolve conflicts and versioning problems that arise with every singe release of anything. I remember when not only did you have to go through the headache of building yourself (which required a degree in CS to figure some of these build procedures out), but you had to do the interdependency updating yourself. Doing this yourself by hand made me want to commit suicide and really turned me off from Linux. I thought windows install/uninstall was goofy and unstable (leaves junk even after installs/etc). But when I realized my parents couldn’t even figure windows install out – I knew Linux was hosed for the average Joe. Fortunately they’ve really fixed this in modern versions – but I know what’s going on underneath and it’s frightening.
2. Configuration files everywhere – same problem exists in windows – saved preferences and data files for individual programs live EVERYWHERE. Backing up a computer/system is a huge pain the rear because of this – so much so that I’d bet that a full 50% of backups people make probably don’t actually back up the data you think it did and will get burned later. As a solution, he even suggests it might be good to have a central configuration file – that sounds a lot like a *registry* to me…
3. Kernel Application Binary Interfaces – kernal interfaces change too much/moving target. Haven’t had too much trouble with this – but keeping legacy support is the same problem Microsoft has had. Apple went around this by making fat binaries with multiple executables and then just drew a line in the sand and ended backwards support. I personally think that’s the way to go for desktops; but linux has way, way too many ancient apps that have been running in back rooms for decades now – and have to keep them running. Legacy support is a big nasty problem that only Apple has tried to solve well.
4. Native file versioning – rollback on individual files has been in OS X and has recently come to Vista. With the outrageous storage capacity of drives today – there’s no reason not to allow rollback saving. Linux doesn’t have much in this department yet – but will. It’s only recently become viable now that 1 terabyte drives are at $100 – but should become second nature. How many times do I mess up word documents, save it, and then realize I needed the old version with revision notes in it. Word files are like 50-100k, why not save buckets of them? Having this built into the OS is a nice way to not have to save 50 files with different names. Space is basically limitless anymore on desktop machines…
5. Audio application interface – multimedia on linux has always been a bit of a backwards child compared to Windows, and should be embarrased when compared to OS X. Too many half-baked solutions, but no silver bullet. Agree. Unfortunately, this also implies a whole suite of tools that are user friendly for using multimedia – DVD players, video players, audio/iPod/TV tuners/surround sound/etc. Even Windows struggles with a nice uniform exposure that my mom can figure out.
6. GUI – He actually recommends a committee to define interfaces for apps to use in order to get fast access to kernel managed system resources. He further recommends the shockingly obvious – that GUI’s need more uniform look and feel that were actually developed by GUI experts – not Joe’s backyard garage experiment. This is probably the #1 soft issue for non-linux people. More on that below. But the interfaces question sounds a lot like what Microsoft tried to do with MFC. A common interface for asking for GUI interaction. This is a great idea – but just like MFC – is less flexible than ‘to the metal’ coding. There was a lot of folks that had to go back to Win32 just to get features working they needed in their guis. One would need to think very carefully about what that interface would look like before doing it…
7. App integration with X11 – Welcome to Windows 95. In linux, if a gui app crashes well enough, then the windowing system/gui crashes. And people *itch about windows? Agree on this point. Understand how it got there, but what the user sees and experiences is what matters – and pressing <ctrl><alt><backspace> is just as fun as hitting <ctrl><alt><delete>. I see no difference – so fix it.
8. Commercially supported save/restore – related to 2 in my opinion. His proposal is almost already being done by IBM and others that sell *services* that provide you with an always up, always patched, always backed up server to the internet. However, I disagree that this is universally desired. A company cannot really take the risk of the lowest-bidder backup service won’t ever leak their important data or simply go away unexpectedly as things hit the skids. If it must absolutely, positively be backed up and secure – companies must be able to do it themselves. That and I, Joe Average, don’t want to have a bill each month when I can buy another hard drive. But again, very few backup solutions really work well – amazing how bad the commercial sphere is in this department for all 3 OS’s (linux, win, mac).
Here’s one I’d like to add:
9. Ripping it off and then calling it your own – I was amazed how many ‘new features’, ‘updates’, and programs that the linux community touts as star children of open source have blatantly ripped off commercial products. Star Office is a good one. When it was it’s own deal back in the day – it was terrible to use. Now it’s called OpenOffice and looks just like Office XP/2003. GIMP was the most horrid pile of hooey – but has gotten somewhat better now that it kind of looks like Photoshop. X looked like a pile of jagged polygon edges with Motif and now most of it’s windowing systems look just like MS Windows or OS X. Installers now work a lot like OS X/Windows. Yet, everyone seems to walk around like they were first to come up with all these ideas. They weren’t. My concern is that the open source world doesn’t realize what a debt they owe to their commercial brethren for investing LOTS of time/money/effort/insanely talented people into the experience of using a machine – not just its nuts and bolts working together. And if commercial development went away – what exactly would they be left with?
Most of the business models for open source are service models. You don’t make money from the software, you make it from the services of setting it up/maintaining/consulting/etc the code for the job at hand. This isn’t entirely bad – but that means money won’t come from investing 3 years to come up with revolutionary ideas. It comes from continuing the status quo/obfuscation that is job security. I think people have underestimated how much that force will become dominant if left by itself or if commercial endeavors become too costly.