Linux is safer than Windows because the open source development ensures there are none of the viral nasties installed in some proprietary software. Linux is safer than Windows because there are none of the artificial usage restrictions that stop Windows at critical moments. Linux is also supposed to be more reliable than Windows but Ubuntu 10.10 and many other Linux distributions are not showing the reliability of Windows.
This is my third attempt to type this page because I am typing it on an Ubuntu 10.10 Linux machine that keeps crashing.
I have two identical computers. One runs Windows XP 64 bit. The other has Ubuntu 10.10 desktop 64 bit edition. The XP machine has not crashed for months. The Ubuntu machine has already crashed twice while I try to type this page and this page is in response to several crashes earlier today. I now resort to saving my updates in Ubuntu almost every sentence.
The XP machine has not had an update to Windows for years. The Ubuntu machine is updated every day in the hope that an update will fix some of the problems.
Despite the problems on this particular hardware, I still use Linux on some machines because Linux is improving while Windows went through the Vista disaster and the free versions of Windows 7, such as Windows 7 Home edition, are brain dead. You have to buy a really expensive version of Windows to get the same features as your basic free Linux.
I also have a brand new netbook and Ubuntu 10.10 Linux crashes on that machine. Many tests of many other versions of Linux on this and other hardware demonstrate how Linux crashes more often than Windows. When Linux works on specific hardware, it is great but it is currently a 50:50 lottery on new hardware.
Some major applications make Linux crash and, unfortunately, a couple of the culprits are in areas where I need something, limiting the use of Linux on my computers.
Windows crashes when you use Internet Explorer because Microsoft let Internet Explorer inject trashy code direct into Windows the same as any evil virus. If you use any other Web browser you do not get daily crashes in Windows. Linux crashes daily without Internet Explorer anywhere near Linux.
All the applications I use are applications that work on Windows. Most also work on Linux but some do not. The closest equivalents in Linux are a real problem.
You can run a lot of applications at the same time in Windows without problems. I often run up to 60 applications at once. Linux often crashes when I have only two applications running.
Almost any combination of two applications from different developers can crash on Linux. The testing of individual applications might be good but there appears to be insufficient testing of each application while other applications are active.
Windows XP works in 4 GB of memory. Linux crashes with 8 GB of memory. A lot of Linux applications are tested with small amounts of data then fail when used with professional levels of data.
As one example, I tried to use open source photo management software for a small collection of photos, only 25000. The initial testing of all the candidate applications with 50 images worked. They all failed with 25000 images. Professional software works with hundreds of thousands of images and I need something that works with at least 250000 images.
Crash proofing is possible
Windows survives a jumble of beta and alpha level software. Linux is crashing when running a small selection of widely tested software. Looking at some statistics for applications, Windows developers call their software beta quality when only 50000 people are using it while a lot of open source applications go from beta to release level with as little as 50 people using it and often all the people using it are using it the same way.
Crash proofing Linux requires better testing of data passed through application programming interfaces, better automated testing of what are usually called edge cases, and better automated testing of previously reported problems.
A small number of open source applications reach the level where consistent wide coverage automated testing is implemented and they are usually application used by corporations who can sponsor developers.
Applications used by individual professionals do not receive that level of support. A corporation might sponsor a developer one day a week while an individual professional might have one afternoon spare per month. A corporate oriented application might have a hundred corporations sponsoring developers while an application used by individual professionals might have only a few professionals who can program and none rich enough to sponsor professional programming.
Ok, I am starting again due to another crash.
One of the features the Linux/Unix bigots brag about is the ability to install software without restarting your computer. Windows XP is an old version of Windows and you do not have to restart windows for every software installation or update. Ubuntu 10.10 is a modern version of Linux and you have to restart Ubuntu to install some software plus to apply some updates.
I have to restart Linux for software installations and updates as frequently or more frequently than Windows despite the Linux machines having far fewer applications installed. Linux does not reduce the number of restarts.
Advantages of Linux
Linux provides a few advantages over Windows. I am steadily replacing Windows with Linux because of the advantages of Linux. Reliability is not one of the advantages. Freedom from reboots is not one of the advantages.
If I had to pay for Linux support, Linux would be far more expensive than Windows. If I had to pay staff for the time they waste restarting Linux and doing other silly thins, I would burn up the cost of a conversion to Windows in a few weeks.
Most of my conversions from Windows to Linux where during the horrible days of Vista. Vista was a real incentive to use Linux and put up with some problems.
Windows 7 removes some of the incentive to convert to Linux but to get a Windows as powerful as Linux, you have to buy a very expensive optional version. You used to be able to select the Pro version instead of the home version and the Pro version was supplied on many of the better notebooks. Now you have to pay hundreds of dollars for an upgrade to a pathetic version that does not have anything as basic as RAID.
Vista meant replacing half your computers because they were not powerful enough to run the Vista hog. Converting to Linux means throwing out some of your hardware because Linux does not support some hardware. Linux often worked on computers to old and weak to run Vista, making the conversion to Linux a useful step.
Linux beat Windows when you had to pay two hundred dollars to upgrade XP Pro to Vista Pro then another thousand dollars in hardware upgrades then you found that there are zero improvements in Vista, that many of the design errors in XP remain the same in Vista. By comparison each release of Ubuntu Linux brings some improvements, however small, and the updates are only six months apart.
Today you buy brand new hardware fitted with Windows 7 and sometimes find that Linux does not work with the hardware. Would you seriously consider changing half your staff to Linux while leaving the other half on Windows due to hardware incompatibility? No, Windows wins in that situation every time.
Linux works when you are planning a major replacement of everything and can test each type of computer with Linux. Linux wins when you let staff take home the old computers and they try Ubuntu on the old computers on their own time. Ubuntu wins when Microsoft software suddenly stops in the middle of the night due to a license restriction and the choice is between waiting for the Microsoft office to open in the morning or a quick conversion to Linux. Linux moves toward the front runner when you convert your Windows machine from Internet Explorer to Firefox and from Microsoft Office to OpenOffice.
Firefox just crashed on Linux. Firefox has not crashed on XP for months. Firefox crashed twice today under Linux.
Linux wins when you want a Web server because all the components of a good Web site, Apache, PHP, etc, are tested on over a hundred million Web sites. Many Linux desktop applications are far more complex and are lucky to get a few thousand people testing them before general release to the public.
Programmers faced with failing software or time shortages often grab at new programming languages and tools to provide a magic answer to development problems. Those changes rarely work.
In the software sales industry, those new approaches are called silver bullets after the silver bullets used to kill enemies who cannot be killed by regular means. The idea is to distract someone with the latest silver bullet, extract all their cash, then when they find the silver bullet does not work, offer them another silver bullet.
Microsoft's .NET is sold as a silver bullet but .NET is just Microsoft's brand for their version of Java and Java never solved anything so why should .NET? Mono is the open source version of .NET and the best example of Mono in use is F-Spot, a disastrous application that wasted a lot of my time when I tried to make it work for a very simple test. F-Spot did more than not work, it crashed Linux.
Why did Linux let F-Spot/Mono crash Linux? This is one of those situations where the Linux developers need to be more careful about what they let applications do. Linux developers talk about Windows letting stupid programming crash Windows but Linux has the same problems.
There is an update based on Ubuntu 11.4 beta 2 at Linux reliability as demonstrated by Ubuntu 11.4.
Hopefully one day enough parts of Linux will stabilise to make Linux the choice for reliability. Hopefully one day all Linux applications will be equally tested, stable, and stop crashing Linux. Hopefully one day all open source developers will scrap mono, Java, and other programming experiments in favour of the reliable programming languages for major applications.