Friday, December 30, 2011

No Rants Just Sincere Concerns for Linux at Home

2012 is a few hours away. Thankfully, no one is claiming that "Year of the Linux Desktop" anymore across OSS fora or other social media on the web.

Linux Desktop is not going to die, but it won't win more home desktop users either. The present stack of servers will continue to work day and night in the racks, linux servers will power my office website, Android cell phones will probably gain more users, Windows 8 may go unnoticed on the mobile platform, million other appliances may definitely run on linux, more linux distributions will surface, some will die unmaintained, there will be hue and cry about the major improvements in some of the core and sub-core components of linux, four new kernel versions will be released, gnome shell will ride v. 3.6, we'll see some more forking of gnome and other desktop environments as well as distributions... so on and so forth. But the usershare will dwindle roughly at 1%.

There'll be arguments and counter-arguments - Windows comes preinstalled, Resistance to change, Lack of games on linux platform, Lack of drivers, Lack of marketing, Microsoft and Hardware vendors are partners in crime and on and on...

Are these arguments valid? If yes, how much? Moreover, are they going to bring any change? A big NO. Why?

I smell there are far more serious issues than the lack of application software, device drivers, games, lack of adverting/marketing or microsoft's ill practice. I've seen vast improvement in all these areas. Where Linux and the community lag behind is putting the basics of home computing right. In other words,  the platform suffers from bad integration of components. How?

Gone are the days of dirty commands on a text console. In 2012 99% users are going to use computers as just other electronic appliances. They are not going to worry what's going under the hood as long as it works. I'm using Linux for more than a decade (two of my home PCs are linux - Debian and PCLinuxOS, 100's of my office workstations are linux - CentOS and Fedora), even administered some desktops for sometime. Here are my list of the basics that go wrong in Linux, always.

 - Bad Workarounds
 - Overlapping Packages/Procedures
 - Problematic Sub-core Components
 - Fast Moving Base and Major Components
 - Ever Changing Desktop Metaphor

  • Bad Workarounds: For appliance-oriented present world, either it works or it doesn't. Anything in between is an annoyance. Device drivers in the kernel stagging area, especially for graphics and wifi, fall in the user annoyance category. Here're a couple of issues from my personal experience. Let's first talk about Radeon HD 6250 graphics that came with Asus Eee PC 1215B. AMD proclaimed it had opensource drivers (in kernel 2.6.38) ready for all the Fusion APUs (my graphics driver falls into this category), besides, it had proprietary binary linux drivers too. Sadly, driver support in both the cases are workarounds, far from being comparable to their windows counterparts. Open source drivers were damn slow, lacked much of the features of the device, even power management was shoddy. Installing proprietary driver was cryptic. It should confirm to a certain version of xorg, require libva and xvba-va-driver packages, require the mediaplayers to be set to xv or x11 or opengl (can't recall the exact one). After all these be prepared to see some conflicts with your desktop environment. I had similar experience with my Atheros wifi card. First, there was no opensource driver support, but it worked on ndiswrapper. Then one morning it broke, opensource b43 drivers superseded it. I had to blacklist it and then finally switched to windows drivers which would on/off on its own like a pain in the ass. Finally with Linux 3 kernel it worked as supposed. In my view the device maker or the community should not taut that "it works" or "it is supported", if it doesn't work the way manufacturer's specs claim. Users are not worried about whether it's opensource or closed. All they expect is not to see any ugly surprise. For your information, the opensource radeon hd 6250 driver performance is poorer than x3150 igp that comes with any atom pinetrail cpu.
  • Overlapping Packages/Procedures: Choice is good as long as the procedures don't multiply/overlap. Human life is too short to waste time reinventing the same wheel. All the distros are free, but the time involved to settle at one after a little bit of hopping is not. There is no benefit in learning multiple procedures for doing the same thing which should otherwise happen unnoticed. For example, take a look at the package management. In your distro-hopping you're likely to interface terms such as apt-get, yum, pacman, ppa, official repo, unofficial repo, free, non-free, restricted, local installation, remote installation, package pinning, compiling from source, so on... The other day, a linux guy at my office was dabbling yum commands on my debian squeeze (apparently none worked), he's just too used to yum in CentOS, no one to blame.  Similarly, you'll see a bewildering multiplicity of commands/tools/packages for configuring your desktop, setting network and doing user administration. Overlapping packages is even funnier. Can't remember properly if it was on Ubuntu - after installing both KDE and Gnome I saw network-manager-kde and network-manager-gnome in my installed list of packages. But only network-manager-gnome would work on kde and gnome. There're a dozen other packages just to monitor/show/configure your network. It's not funny, it's ugly. You might see similar multiplicity in your desktop in sound components - alsa, pulse, oss, bla..bla.. bla... Multiplicity in application software such as office suites and graphics software is ok. They don't change across distributions.. But there should be certain degree of order in desktop configuration tools/packages. For now the situation is a mess.
  • Problematic Sub-core Components: Consider the subcore components such as sound, graphics, network devices, printers, etc., and their integration on top of linux. In Windows you need to install a certain driver (100% time it is supplied by the manufacturer). That's it. But in Linux proper sound is not just about something called drivers - it involves kernel, alsa, oss, pulse, and some packages to wrap those packages with each other. What's worse, even after all these packages talk to each other well, sometimes you can't hear any sound, send the output across hdmi, or the sound is too choppy. Then of course, you fiddle with setting sound channels, reconfigure alsa and what not! You are overwhelmed by the presence of six items in your application menu just for sound such as pulse-volume manager, alsa-mixer, audio-manager, sound, etc. Same thing with graphics, there's no such thing as just graphics drivers, it's a set of packages - kernel, xorg, proper modules, proper players, plugins, proper wrappers, etc. You take some time to figure it out, and put them together well. You're happy till an update breaks them all.
  • Fast Moving Base and Major Components: Frequent release of base and major components often wards off the prospective linux users. It's like world's fastest roller coaster that never stops, there's no option to ride it. Consider the desktop environments Gnome and KDE. There was an almost perfect KDE 3.5. Then came the disaster KDE 4.0 final (quite sometime after the official alpha, beta and rc releases). The final 4.0 was worse than industry standard alpha release of most software. And took roughly 3 years to bake further to be usable by all. Same thing can be said of Gnome 3. The point is linux community doesn't let a stable, good working major component stay for long enough to be used. Major percentage of the software timeline here is a kind of never-ending work-in-progress. Any major upgrade of software-stack in GNU/Linux world, even after it comes with usual alpha, beta and rc cycle, is far from being usable/stable/bugfree; bugs outweigh features. Compiz, pulseaudio and many other major packages have had similar buggy health long after they had been touted final versions.
  • Ever Changing Desktop Metaphor: Some ways it's similar to the previous issue. At some point in the Linux history KDE 3 was very popular. It kept on improving and became rock-stable by 2008 through its 3.5.9 iteration. Then came the unholy KDE 4 in Fedora 9, it smelled more pungent than Sulphur. Even some KDE fanboys, after getting stuck with KDE4 for couple of months, left the camp to saught refuge in good old Gnome 2. Sure, it was not way too much configurable as KDE3 but it worked. Alas! Gnome team gave a similar jerk with their 3.0 release in Fedora 15. Nobody always likes spending time configuring the desktop when it never gets quite right. You'd be at the neck of some urgent work and your system would fuck the hell out of you. The desktop environment design people should understand that users develop a workflow and keyboard/mouse habit, get used to certain tweaks/tricks and settle into an environment. Challenging the same for the heck of it, in my opinion, is the worst one can expect. Users will go away looking for their familiar working desktop metaphor.

I'm sure the situation is not going to change. I will still be using linux at home and office. 99% will be using Microsoft or Apple products, despite Linux being inherently more secure.


Fitzcarraldo said...

I've been a Linux user for circa five years and wouldn't contemplate going back to that other OS, but I agree 100% with all you write. In my opinion, GNU/Linux is its own worst enemy as far as the Desktop is concerned. The diversity and 'anarchy' of the GNU/Linux and FOSS worlds, coupled with the design of GNU/Linux itself, are the causes of the problems you mention. They are both a blessing and a curse at the same time. Still, we can take quiet satisfaction in knowing that GNU/Linux has the embedded marketplace sewn up, and Android seems to be on the way to doing the same in the mobile marketplace. The following newspaper article makes for a comforting read:

Tucanae Services said...

Though there is much of this post I can agree with, the situation with Linux sound being one as Pulse Audio was/is a disaster; Linux will gain share in the home space. Here's why --

1/ Mobile. As the linux mobile space expands more and more people are going to say "I am comfortable with Andoird. Be nice to have that on my PC too." With the proper cross platform integration it could happen.

2/ Cost. Software cost eclipsed hardware cost long ago. Its now getting critical. Its why FOSS is gaining ground in a number of areas. Nor is that decision necessarily a end user selection. For example you cannot find a printer today that does not use Linux as its operating system. Device mfrs are making those decisions and the end user defaults to them.

3/ The last item, Microsoft stumbles, is not foretold. But there is a chance that Microsoft will repeat Vista at some point. When it occurs the world will be vastly different as the desktop will not be the dominant place that it has been.

Just some thoughts.

cwsnyder said...

And lets not forget that just as KDE 4 is FINALLY becoming stable and usable, they are talking about changing the QT package to QT5 with a changed API.

Maybe we should have a long term support package for the desktop which changes only the applications, and a beta channel which allows the developers to play with the latest toys, but breaks often.

manmath sahu said...

Thanks Fitzcarraldo for pointing me that article. That's a great read. Wish you a brand and grand new year 2012.

Barista Uno said...

Linux is great and I have been using it almost exclusively since early 2009. What's dumbfounding is the never-ending experimentation, forking, spinning off, bug-fixing and desktop re-designing that attend almost all Linux distros. When will the developers and the Linux community at large come to their senses and realise that most computer users simply need a fast, stable and useable desktop OS?

manmath sahu said...

Barista, you're very much right. Agree with you and wonder if the hobbyist attitude of the linux community will ever change.

Anonymous said...

I tend to think Linux will very slowly expand it's reach. Less affluent countries are adopting it more quickly than the rich countries, but even in the United States I see a very slow adoption. Even so, it will be a long time before Linux reaches more than one or two percent.

manmath sahu said...

i'm sure linux will never perish, but it won't see any rise in userbase, for the pure hobbyist attitude.

Anonymous said...

Great post !
As soon as some sw starts working well, it is dropped for a "revolutionary" new thing that does not work anymore.
Will KDE 4.X be the next victim ?

Anonymous said...

Great post !
As soon as some sw starts working well, it is dropped for a "revolutionary" new thing that does not work anymore.
Will KDE 4.X be the next victim ?

Anonymous said...

Great post !
As soon as some sw starts working well, it is dropped for a "revolutionary" new thing that does not work anymore.
Will KDE 4.X be the next victim ?

Anonymous said...

The new form factors presented by phones & now tablets are creating new opportunities for "desktops".

So does the change to ATOM and ARM processors.

No OS really has an advantage today and in some ways you might claim linux via Android has something of a lead.

Its also obvious to me at least that today's new applications are cloud/web based and you access them through any browser or a client-side application share the applications resource loads (cpu, storage etc) btwn tablet/phone & server. (dropbox, google docs, etc)

Anyway I don't see either Microsoft or Apple having any 'particular' technical advantages in the above scenarios.

I'm very happy running ubuntu 11.04 on my ATOM n450 tablet. It had come with meego which worked really well but seemed to have little future as an OS.

I switched to Windows 7 and although it worked there were various problems and it didn't seem to be easy to find answers or fixes (for a tablet).

If Windows 8's reworking of its UI is as different from historical Windows as it appears.. users may or may not like the change and figure if they have to change AND pay for application upgrades too that maybe they will try something different like a Mac or linux.

On the tablet I then tried Androidx86 - ice cream sandwich (v4.x) beta and it installed and worked great but being beta still had some crash problems every 10-15 min. That will get fixed then I will try it again on the tablet.

Finally I installed a modified Ubuntu 11.04 with kde's plasma widgets etc and everything seems to be working great so far.

My phone's running android.

So what is a desktop today.. and tomorrow?

Anonymous said...

I use Linux on my home PC and Windows at work. Linux as General purpose desktop has a few bright spots, but collectively it feels like a pile of unorganized mess. In combination with the reasons stated in this post, Linux will not be #1 choice for home users for a significant period of time. I am going to make a few point/observations:

Software cost is not an issue for me as a Desktop user. I can run FOSS apps on my Windows box without any added cost. In many cases FOSS apps would run better on Windows than they do in Linux.

Also, I have no problems investing into the latest versions of Windows and MS Office because it creates a marketable skill. If you forget for a minute about Software Enginnering / Sys Admins jobs, what other jobs on the Enterprise/Corporate space require Linux skills? Try to look for those in your local job market... I bet that jobs with computer skills require MS Office. Nobody in HR department will care for your KDE/Gnome or KOffice/Gnome Office/Open Office experience.

Therefore, the focus of Desktop linux should not be on home users - they don't drive anything. If linux desktop succeeds in enterprise pace it would create demand for Linux. Home users will need to learn it to get a job. Educational institutions will offer Linux courses to keep up with the demand. Stable, Polished, Streamlined, Productive environment should do the job.

Linux does have deserved success in Server/Embedded space. But this has very little relation to desktop. First of all, these are sandboxes that implement a limited set of functions. High quality components are hand-picked and maintained by (hopefully) knowledgeable staff. End users do not have ability to change settings or install/upgrade software as they do on desktop systems. So this is a completely different case.

I think this post is already long enough, so this is the end part 1 of 2.

Anonymous said...

Part 2. Android and mobile devices.

First of all, those are not going to replace traditional desktop PCs. At least not any time soon. Even though, some simple/basic computing needs can be satisfied by a tablet alone.

Second, it is my semi-objective opinion that iPad is still kicking Android's butt in a couple of very important areas: iPhone/iPad GUI feels more polished and intuitive to a new user. Battery life of Apple devices is much-much longer - from pure mobility point of view it is very important. I have an Android phone, my wife has an iPhone - the difference is quite obvious to my eye.

At the same time I think Android has very un-linux like attributes that contribute to the adoption and will continue to do so in future:
1) Backing from major commercial entities including service providers and hardware manufacturers.
2) Marketing, User manuals + Hands-on demonstration is available in all major retail stores. Some of those stores offer free 'Smart Phone" classes where Android is featured as a major player.
3) There is ONLY ONE 'desktop' shell. Individual manufacturers can modify, but still there is no KDE/Gnome/Xfce mix-and-match
3) Native applications use ONLY ONE toolkit for GUI elements and widgets.
4) Native applications are coded in ONLY ONE programming language. This might not be 100% correct, but so far vast majority of publications suggest Java.
5) API's for OS and hardware features are provided out of the box. It is much easier to concentrate on pure app development.
6) Backward compatibility and smaller number of moving parts. Piece of mind (in theory) that app developed for 2.0 would work just fine in future Android versions.
7) Streamlined app publish/deploy model.
No need to be concerned with rpm/deb/tgz/tbz/... and/or dependency resolution. Once again ONLY ONE way of doing this.

I enjoy my Android phone, bu I do feel that Android in many ways is big step away from a traditional desktop linux model. May be linux desktop could learn a thing or two from this. I am sure that ability to use 10,000 different window borders is not that important.

Anonymous said...

Certainly the video and sound drivers are a recurring problem for Linux. None of these problems exist if you purchase your box with Linux preinstalled. On a preinstalled system the manufacturer has configured all those (otherwise painful) items in the optimal way.

It is amazing that Linux can be installed on so many hardware platforms. It certainly would be harder to install Microsoft whatever on an Apple hardware. Likewise installing Apple software on a Microsoft hardware would be a nightmare. So why complain about Linux installation? Why not leave that part to the Linux box supplier?

manmath sahu said...

Thanks anonymous (one who put such well thought ideas and organized in part 1 & 2)!

I agree with you fully. The fast moving base and api/abi is really more of hindrance than help. I'm sure FOSS enthusiasts will never like an android model for linux desktop. For them choice is more important even if it kills usability.


Now to the poster who talked about getting preinstalled linux box.

So far it's not viable. Because, there are not many vendors offering them. And the few offering them don't necessarily offer the model one is looking for.

Another bad experience here in India for vendors offering linux boxes. They, for some unknown reasons, charge more than a comparable windows box.

Pure tragedy!

Marschall Acoustics Instruments said...

Computer manufacturers that make preinstalled Linux boxes generally use higher quality components than ordinary consumer grade boxes - hence the higher cost of machines with Linux preinstalled.

Customers for boxes with Linux preinstalled tend to be either media creation or IT professionals and demand a higher level of build quality and performance.

It is not unusual for professionally designed and configured Linux boxes to have 50 to 100 times the performance of similarly 'advertising spec' consumer boxes.

The big IC manufacturers, i.e. AMD and Intel have extensive resources on their sites for Linux box developers. They do this because over half their IC sales go into Linux boxes.

Using their recent stable driver and SDK tools (sometimes proprietary) very impressive performances can be obtained. A small fanless Intel Atom 525 box can easily handle word processing, spreadsheets, document preparation, and other office tasks - and uses only 12 Watts of power.
An economical AMD A4 Fusion processor with sufficient fast memory is capable of around 8 GFLOPS of performance for media work without overclocking - and uses only 48 Watts of power.

Only with Linux is that kind of high performance at low cost and low power consumption attainable.

There are reasons why all the big media/movie production houses use Linux almost exclusively. It is also big in the mineral resource development sector, and in many government offices - particularly in Asia.

Certainly over 80 percent of my company's web traffic comes from Linux boxes, with another 18 percent coming from Macs (OSX is a version of BSD Unix). Microsoft is coming in at under 2 percent and has done so now for a few years.
We don't sell consumer items, only industrial and commercial equipment so those results should be read in that context.

ספי לוי said...

I've been on Linux continuously from 2007 i believe when i discovered PCLinuxOS and liked it's "update" method, instead of a re-installation like on others.

Was so easy to use for a new user like me that i've started making my own remasters which a lot of people seemed to love! and others even use them till today.

What killed me as you recall, was exactly your words on the hobbyist and purists of Linux. Now i know that Linux greatest enemy, are actually it's users and the Hardware/Software makers.

Linux seems to be designed for and only the hardcore user, which is why most of the users coming from Windows don't get to last long, as they don't want to put all those command lines into doing what they had in a GUI before.

As advanced Linux is, it suffers from an attitude issue coming from it's own supporting users. The reason Microsoft is doing so great, is cause they put a thought on how the user will behave on his computer.

It's a shame really, cause it has a LOT of potential. If only the users which so much love it, will start putting the thought on the NEW user more then multi choices which are hardly a single working one!

Even when i install a client's new PC, I make sure i aim for his uses before i offer them a Linux system. Cause i dont think a home user wants to deal with the driver installation in command line when in Windows they just do Next...

manmath sahu said...

thanks sefy for the well put together thoughts. sad fact, by the very nature of linux ecosystem, it seems will always be fragmented. the development will always be in a rush, and though the core is very solid the corners will remain rough.

thanks god, there are you, tex, warren, clem, who believe more in practicality and try to bundle things like an appliance. cos at the end pc is an appliance and software, a tool. it should make life easy.

The Geeks said...

hi..Im college student, thanks for sharing :)

How about this