In in Software terms it is! And let me explain why.
KDE's default sound subsystems, aRts (Analog realtime synthesizer) has been part of KDE since ages. I really appreciate the quality of lots of software it comes with, however aRts is a real disappointment. Since Windows 98 I believe MS Windows's sound system had the capability of running multiple sound streams at the same time, this is 2007, and one of the most popular window managers for Linux lacks this capability.
I was yesterday running an online video conferencing application, based on Java, and due to some bandwidth issue it wasn't going so well. So I logged into Skype, and guess what? Skype couldn't open the sound device, because it was already engaged by the Java application, hence I could run only one sound application at once. I've been aware of this problem since ages, from a previous Slackware 9.0 experience, however when I encountered the problem again yesterday I was both surprised and shocked how this problem could have gone unaddressed since ages. It turns out that since Dec 2004 development on aRts has been abandoned.
And if your wondering? No! There are many sound subsystems for Linux, which do not have this problem, you can run Amarok on Xine, and play some DVD movies on Xine at the same time, and you'll face no problem or you can run two instances of mplayer without any issue, however mplayer is an application. And there is no way
Fortunately, in the next major KDE release aRts will be replaced by an engine which makes it easier use more capable backends like Xine. In the meantime while KDE 4.0 is not out, we have to bear with aRts!
I finally decided to take the plunge and remove Windows XP completely from my notebook (so far I was dual-booting), however I require certain applications which I need to use as part of my research that's why I have installed VMWare and hosted Windows XP on it, with the software. I'm so far very impressed by the performance, although I only have 512MB RAM, but it doesn't feel as if I'm running an emulated environment. VMWare allows me to stay in Linux and access those application which I require which are not available on Linux yet. Gradually I think virtualization will facilitate Linux in taking over the Desktop J.
However I have come across a problem which has been purely setup by open source "fundamentalists"! As soon as I installed VMWare I tried out various hardware including USB flash drives and USB camera, but they won't work? And upon investigation it was revealed that this was due to a method for accessing the USB port, which was claimed to be insecure, hence support for it was discontinued in openSUSE 10.2, in a heated discussion in the forums, it was very clear who was behind all this, a respected kernel hacker. Greg KH recently jumped the canon and was the one who posted a patch to the LKML, for eliminating binary drivers. I respect him; however he does not seem to have any for users. In a post he said:
"We are not supporting VMWare, because it is closed source and proprietary"
It indeed is, but is there any other open source solution that beats it? Xen requires kernel modification and hence does not work with Windows, the only solution to virtualize windows on Linux computer right now (KVM may change that in future, however it is in the initial stages of development, and runs only on the latest processors) is to use VMWare. In effect VMware is doing us a favour by porting VMWare to Linux at all! I'm 100% certain that the openSuse 10.2 kernel team is doing the right thing by closing a potential exploitable thing, however the approach they have adopted is completely unacceptable! If the concerned methods is indeed exploitable, it is only in the application developers own interest to adopt a more secure method for accessing USB ports, however why can't all Linux distributions follow the same standard then? I can well imagine why VMWare didn't use the openSuse method of 'securely' accessing USB ports, because it would conflict with other popular distributions and if they try to support each method, would result in excessive workload to the company. The best method in this case would be to use something like the OSDL (what's the job of OSDL anyway?) to provide recommendations to the linux distributions in order to standardize kernel level interfaces, so that application developers do not end up supporting dozens of methods for a trivial task as accessing a USB port.
For the time being while Windows runs on more than 90% of the worlds desktops, and is a lucrative market for Independent Software Vendors, we can not ignore users who have applications which are Windows dependant; there are 1,000 times more such applications than Linux dependant apps. And the only way to allows users to run those applications on Linux for the time being is to use virtualization (WINE in my opinion, is progressing nicely, but still has some way to go).
PS. Instead of just ranting here, I will be releasing an openSUSE default kernel with the USB access feature turned on, so that people who need it now can use it
From the last few posts you can easily see how much I've come to love openSuse 10.2. Many geeks in Pakistan unfortunately don't have access to highspeed internet to download openSuse 10.2 DVD, and only old Fedora and Redhat 9 are available in the local market, using older distros discourages people fomr switching to Linux. So I've started a mini-campaign to spread openSuse in Pakistan, I'll be 'shipping' 100 DVDs intially and over a period of 1 month, and seeing how well it goes. I could scale up with a little help.
I would love to write the ISO image of the DVD so that someone can burn a copy for their friends.
If you are in Pakistan and are interested in trying out openSuse 10.2, please mail your address to freesuse@phantomos.org
Good news for Dell Inspiron Users: Your notebook is completely supported in OpenSuse 10.2
You can check out these tutorials for getting ubuntu run on Dell Inspiron and this one for Fedora. What do both have in common? Massive manual configuration encompassing kernel recompilations and what not.
However in OpenSuse 10.2, I didnt have to do any special configuration at all to get my hardware running. OpenSuse 10.1 supported everything except the MMC card reader (from Ricoh). Now this is supportedd aswell.
However one thing that is not supported is hardly openSuse's fault: The Connexant Modem. Connexant Modems are notorious for their proprietory hardware standards and focus on the Windows users! Besides I hardly use a dialup connection so this is irrelevant for me. For those reader who do use dial-up connections, I would suggest that you get those cheap external modems (hardly $30).
Ubuntu came to fame purely through marketting and hype! I believe that OpenSuse is the better Desktop/Notebook distro and without any proportional marketting/advocacy large parts of the human population will be deprieved of the 'better' Linux. I personally will soon get a pack of DVD's and spread it amongst my friends.

Since yesterday I've been evaluating SuSe, and I'm pretty impressed by the distro. It's not the first time I've used SuSe, I used it before Novell acquired it. It was one of the best one at that time, but not ready for the Desktop. After the Novell acquisition I think SuSe has improved greatly! It's an awesome distribution now. However the desktop installation did not go as smoothly as that installation on my laptop. I had to manually configure my soundcard, with alsaconf, that's it.
Now, I don't believe that noobs should use SuSe/Fedora etc. straight when they dive into Linux, yes these distributions make a life a lot simpler with Linux, but I believe that you dont learn much about GNU/Linux, the platform, while you are using these distros. For example, since I have installed SuSe I haven't as of yet needed to compile anything from the sources, and just used YaST. So if some software is not available there some noobs who could think that, that software is just not available on Linux, they will not learn about how to find software from sourceforge and compile it, handle dependencies, or if something is wrong with the graphics settings, how to change to xorg.conf file and make the appropriate changes, or if there some problems with iptables, how to delete/add rules manually. One experience I had with a noob, who was a fedora user, was when he had problems with his networking, and he was testing settings in the GUI tool which ships with Fedora/redhat. I investigated using the ifconfig and route tool, and found out there were problems with the gateway routing rules, within the next few seconds I fixed them. In Slackware there is no GUI tool for networking configurations, and you mostly use either the netconfig script or the ifconfig/route commands to get your network working. Using raw distros like Slackware/Gentoo hence has enormous advantages, and I believe every Linux user should use it atleast once to learn the platform.
I have years of experience in Linux, and have used countless distributions in the past. Slackware has been my all time favorite. Over the years I have finetuned it for my PCs that they exhibit performance which I could never dream of in Windows. The thing I really love about Slackware is that because it is raw, the amount you learn about GNU/Linux is enormous. So In desktops at least in my place Slackware rules. However I would not say that Slackware is for the Desktop, it is a raw distro, which requires a lot of expertise and time to fine-tune and get everything working. I initially used to pitch it to newbies, but they always ended up being disgusted with linux due to the amount configuration they had to do.
Recently I got myself a Dell Inspiron 6400 Notebook, and installing Slackware on it, was pleasant at first, but than soon I realized many things where not working, after extensive configuration messing with the xorg.conf, countless kernel recompilations and others I got everything to work and enjoyed Slackware on my Laptop.
Today, I thought for a change I'll try out OpenSuSe 10.1 from Novell out. And it has been a blast! From the first glimpses of the installer I said to myself "hmm.. 32 bit!" (slackware has DOS-like installer, I know its not the only one with a 32bit installer, I've used Redhat's anaconda, its good, but the SuSe one is impressive). Soon I was in for surprises, everything went well during the installation: At first my external mouse and the touchpad automagically worked! Even the scroll wheel did
. Then as the installation proceeded, my sound card got detected (with which I had problems in Slackware, although I had compileed SND_HD_INTEL into the kernel, it still wouldnt work) , the graphics card (glxgears shows close to 900, thats 800 more than Slackware default
), along with the appropriate resolution (1280x800). Bluetooth, WiFi, firewire, everything was picked up by the installer automatically. This is how I expect a Linux installaton to be! SuSe really sets the standard here.
In Slackware, we have the very raw pkgtools package management system, which is simple and easy. But sometimes one runs into version conflicts, just as in Federo with "RPM-Hell". SuSe has perhaps one of the best package management system built into YaST. It handles dependencies transparently, and downloads and installs them without any special intervention.
So OpenSuSe is here to stay in my laptop! I know there are some political arguements against Novell for having struck a deal with Microsoft, and some are going as far as proposing a boycott of all Novell code. But the fact is Novell has made SuSe an extremely user-friendly distribution which really rocks on laptops! I'm sure it has the same performance on Desktops. So with OpenSuse and some other distros like Ubuntu etc. Linux is finally ready to enter mainstream desktop computing.
Recently due to a project(I am part of a group building a next generation operating system, which would allow seamless resource sharing on a global scale) complication I decided to ditch a particular component and implement it in another alternative language. I explored various possibilities. The component is a SOAP web service based thing. It was previously implemented in C, using the Axis2/C framework. The initial impetus to use the Axis2/C framework was to make a web service based component which was as fast as possible. But the problem is that Axis2/C is not mature, it hasn't even crossed the 1.0 milestone! The component was riddled with segmentation faults. It only worked in Slackware 10.2! When we upgraded to Slackware 11.0 in our lab, the component stopped working! I spent some 8 hours trying to debug it but to no avail! I finally decided to ditch the component and implement it another language which was more productive than C and didnt have manual memory management. I had numerous alternatives, Java, which I found to be too resource demanding; PERL, the problem with perl was that I am the only one in the team who knows PERL, and I would have to implement everything myself, I finally settled on a combination of Php and Python. I read somewhere that Python had bad performance as compared to php in hosted applications. So I decided that the server side portion of the component is to be php based and the client side portion is python based, and we have ample expertise in the group in both php and python.
With this effort I hope to dive into python and contrast it to Perl, I will write a subjective comparison of the two languages soon.

KDE just got 10 years old! The K Desktop Environment, is "one of" the best (the "one of" was put in order to stop a flame war in my blog) desktop environments for Linux. KDE has been crucial in introducing Linux to the Desktop, true a GNOME based distribution, Ubuntu has the taken the reign now (I believe this was due to marketing and hype), but KDE based distributions, Fedora, Kubuntu etc are not too far behind. Its been now 5 years that I've been using Linux, my first distribution was Redhat 7.2, which was running GNOME; KDE, due to Redhat's modifications had a similar look and feel in Redhat. So I couldn't get excited about Linux at all, it was a very boring interface for me. But in a random surfing session I came across screen shots of Slackware, which of course ships with unmodified sources, and the screen shots really appealed to me, I downloaded Slackware, and from that moment I've never looked to any other distribution, and use Slackware with KDE exclusively. So what is it that I really like KDE?
1. KDE look and feel
I really like KDE themes Plastik and Keramik. There are numerous innovations in KDE, for example the KMenu applets, which provides fast access to numerous highly useful features, like weather reports, dictionary, direct access to storage media (one click mount), information about my local wireless network etc..
Apart form the KMenu there is another toolbar which I really use a lot, the KasBar, its a toolbar which shows thumbnail views of opened windows, it helps my productivity especially during programming when I have multiple windows open, the IDE, the debugger, Mysql administrator, Mysql query browser, etc. Having thumbnail views allows me to navigate to the required window a lot faster.
KDE Icons look very very clean and well designed. KDE's file browser, Konqueror, in my opinion is the best one around. I've used GNOME's nautilus, and I cant figure out, why they have not included a "open terminal here" options in the popup menu, in any Linux system you have to turn to the command line frequently, because there are some tasks which are more suitably done in the commandline than in a GUI file browser.
2. KDE has tons of freebies!
KDE ships with tons of applications, many for similar purposes, all in all the bundled application mostly fill nearly all my needs, and very few extra software have to be installed, such as OpenOffice, GIMP, Firefox etc.
KDE's own webbrowser, although for a very long time couldn't even open Gmail, has come a long way, and often I prefer Konqueror over Firefox, because it is lightweight. But Konqueror has still some way to go to challenge Firefox on KDE desktops, because it doesn't support some AJAX functionality for example, in Konqueror I can't see the GMail integrated Gtalk client.
There are tons of KDE application which are not shipped along with KDE, but you can get them from here.
3. KDE application development is easy!
KDE is based on Qt/C++, which is one of the best GUI development toolkits for Linux and others. Its innovative 'signal and slots' based event abstraction makes development of GUI application very easy. KDE Desktop Communication Protocol (DCOP), allows KDE application to talk to each other. I really wished that there would be something similar in Windows (maybe COM, but majority of windows application are NOT COM enabled), because allowing application to application communication allows a developer to reuse the functionality of existing software. Then there is KParts, which is analogous to COM, which allows the developer to encapsulate a component which does some specific thing, and then reuse that component in other applications.
KDE comes bundled with some of the finest development tools around. KDevelop, is a very feature rich development environment, which allows you to do development of every type of application from simple BASH shell scripts to complex Kernel modules.
Quanta is an excellent web development environment, its hard to ignore when I'm doing php programming. I use it to complement Zend, a commercial php IDE I use, which lacks in website design capabilities.
If you want to learn Qt, you can consult this book its the best book I've come across, and covers a wide range of topics which help you to get productive with Qt quickly.
So these are my top 3 reasons why I prefer KDE, I'm very excited about KDE 4, and can't await its release, the screen-shots I've seen have been marvelous.
I would like to know from my readers what they like or dislike about KDE?