You mentioned that you use Linux on your PC(s) as well as on a server. Which distribution(s) do you use, and why?
I run Ubuntu on both my laptop and virtual private server. Ubuntu is good because it builds on Debian's solid and respected code base and adds some polish and ease of use, and it ships twice per year, which is fun for me as a way to keep up with the steady improvement that free software makes. In the Linux world, you don't really upgrade individual applications, you update your entire OS, which has the latest version of the kernel and all of the applications.
There are many good distributions, but I'm satisfied with Ubuntu so I haven't bothered to try out others. I wish Ubuntu hadn't forked off from Debian, an idea I discuss in my book. Mark [Shuttleworth] hired some of Debian's best developers and took a copy of Debian's code, and is now stealing away Debian's momentum and moving away the center of gravity, which is a shame because everyone agrees that Debian is "the rock" upon which Ubuntu builds. Mark could have done all of his work directly inside the Debian codebase and that would have been much more efficient, and better for the community. There is a lot of bitterness in Debian towards Mark because they did foundational work for 10 years, and he came in, added the last 1percent and is stealing away the new volunteers and excitement. I think Ubuntu is killing Debian, and there is a fair amount of evidence for that.
Another thing that bothers me about Ubuntu is that they've become too conservative. They ship every 6 months, but they ship code that is 6 months old. If you ship every 6 months, but are based on code that is 6 months old, did you really ship on day X, or 6 months before and just sit on it? It also means that when Ubuntu finds bugs, they are in old versions of software that upstream developers don't care about anymore. Here is an e-mail I sent to Ubuntu leader Mark Shuttleworth talking about this issue. I run Ubuntu on the server because I've gotten comfortable with it on my laptop and so it is just easier.
J. Stephen R. asks, How would an average person advance the "cause" of open source? If the answer is "run Linux", how can average people running Linux really make a difference?
Run Linux, tell your friends about Linux, demand Linux support from your hardware and software suppliers and donate money and/or time to free software efforts like the GNOME Foundation, OpenOffice, and so on. Every little bit helps, from writing code to filing bugs to contributing your ideas or artwork or string translations. I heard an interesting line: "each one, teach one."
Actually, the best possible thing you can do is purchase copies of my book and give them to people!
Dominique M. asks, Do you think the current economic crisis will help Linux gain market share?
Yes. As a side point, I think this economic crisis was totally preventable. Fannie and Freddie have been known to be a time-bomb for many years, but the US Congress doesn't act until after a disaster. In general, the US Congress is filled with the most incompetent, corrupt scumbags imaginable. We've not build a nuclear power plant in 30 years because of the Congress. The Social Security ponzi scheme was legislation created by Congress. Everything from Medicare to K-12 education to our energy policy is a disaster because of those boobs. Unfortunately, they get voted in year after year because of the ignorance of average Americans about the details of what the Congress does. And the media doesn't help. "Three Mile Island" is a term that has been etched into the American psyche because of the media, even though no one even died! More people have died in coal mine accidents in the last several years than have ever died from nuclear power in America yet coal is not (yet) outlawed! The media have convinced people to be afraid of nuclear power, and Congress, which receives lots of money from places like Greenpeace, follows along. It is a mess.
But aside from that, the downturn is good for free software. When companies are tightening their belt, they will look to Linux and free software as a way to save money. But I would rather have a growing economy. It takes money to switch to free software because of the transition costs. And I want companies and people to invest and contribute to free software, which can't be done with our economy is contracting.
Theodore B. asks, Since both Linux and BSD are both are free, what makes Linux superior to BSD?
Linux is superior to BSD because it has a larger development community. The Linux kernel has had 3,000 programmers contributing to it over the last few years. I don't know what the numbers are for BSD, but they can't be nearly that high. In fact, BSD shouldn't even exist. It is a waste. It was on life-support before Apple decided to use it as their new kernel. I think they were afraid of the copyleft nature of the GPL license agreement, which shows their stupidity. One example I document in my book is that BSD added optimizations to handle 4 processor computers because when Apple first starting shipping those machines, the performance sucked. Linux had added these optimizations many years before. One of the top Linux hackers, Greg Kroah Hartman, told me that Linux runs faster in a virtual machine on the Mac than the underlying Mac OS.
BSD can even exist because of the free software community that surrounds Linux. For example, many programs run on BSD because the programmers wrote it for Linux and then ported it to BSD later. Apple uses several components such as the CUPS printing subsystem and WebKit which were originally created by the community for Linux. But BSD does demonstrate the vast potential of the free software community in that it can support more than one kernel. BSD is not the best free kernel, but it was much better than the custom one Apple built. Apple still doesn't get free software.
Vijju asks, What do you think of open source implementations of Microsoft technology, like Wine and Mono?
I think both are great. I think Wine is a great way to run some of the Windows applications that haven't been ported to Linux yet. Google got Picasa running on Linux via Wine, and contributed back to Wine which is great to see. If Java had taken off, we wouldn't need Wine, but it failed miserably so we still do. In general, given a Linux OS, it isn't that hard to implement the Win32 [library] names. Win32's CreateFile() just maps to Linux's (similar) API. Obviously not all functions are that easy to do. Anything that lowers the barrier is a good thing.
There is a ton of FUD about Mono, which is very sad, but I think it is great. People worry that Microsoft will sue Mono for patent infringement even though they created a public spec for C# and .NET and a covenant not to sue, and the company even works with the Mono team on things like Moonlight to get it on the Mac and Linux. But FUD is FUD and even though people know that their fear of heights is irrational, it is not easy to get rid of it.
Mono is surely better than Java, which is a fat, ugly pig. (I spend a chapter trashing Java in my book, so I won't get into more here.) In some ways Mono is better than Microsoft's .NET, as it runs on many OSes and processors, supports many languages, and is built by a robust worldwide community.
One of Linux's greatest threats is that Microsoft moves to productive, modern programming languages while the Linux community keeps slogging along in the decrepit C/C++. It is these sorts of inefficiencies that causes the free software's community of millions of programmers to continue to lose to Microsoft's thousands. Microsoft is making a concerted effort to move away from C/C++, but the Linux community is not, partially because there is no leadership on topics like this. I spend a lot of time on this topic in my book. I am also becoming a fan of Python. Linux programmers should choose either Python or Mono and get cracking on porting their code. I think at least 99% of user-mode code should be written in a GC language.
Dberger asks about technical support. How can you ask companies to turn to Linux when there is no single vendor to turn to for support? Why would PC makers ship Linux when support becomes their problem?
There are many vendors you can turn to for Linux support. Call up IBM, wave some money in front if their face and they'll support you. Their supercomputers run Linux. HP and Red Hat are other examples of companies that support Linux. If you run Ubuntu, you can get commercial support from them as well. In fact, the nature of free software makes it easier to get support from one company. Look at the proprietary world: if your Oracle database crashes, you must call Oracle. If Windows crashes, you can't call Oracle. In the free software world, because a company can have the source code to all of your applications, they can step through all of the code and help you more.
For many people, commercial support is not a problem once the hardware works. When my computer has an issue, I just use Google and I can usually find an answer in a few minutes of clicking around. In fact this is faster than calling up some tech support person who asks me lots of silly questions like asking whether my computer is on. When my dad has a problem with his Linux computer, he just calls me up. I have a friend who is an English major who has done a ton more things with Linux than I thought he ever would with only the help of a search engine and the community forums and documentation. Whether you want to compile a driver, or install a game, or investigate a bug, all the information you need is out there. In the proprietary world, much of this information is locked up behind the software vendor's firewall. Linux is also generally more reliable so the need for support is less.
What the hardware vendors should focus on for now is just making sure all of their hardware has free drivers in the kernel tree. Dell claims to support Linux, but does so on only some of their machines. Dell doesn't even have to do any work to make this happen, they just need to put pressure on their component providers. Dell can just say to their suppliers, "if you want us to buy your network card or whatever, make sure your drivers are in the Linux kernel tree too." Whether they support Linux for end-users a different story. But they could if they wanted to. Support could be a source of revenue for them. Now people expect free support because they pay for the software, but they should move to model of free software but charging for support. People are okay with paying for support and it is a better model. Dell could just say we'll help you at $50 an hour. Just call us up and we'll help you on any problem you have and hold your hand till you are satisfied. In the software + "free support" model, the company wants to hang up on you as soon as possible because their profit margin is based on the number of calls per hour they churn through.
Gorath asks about the EU forcing Microsoft to unbundle applications from Windows. Do you think this benefits or harms consumers, the competition or the industry as a whole, and why?
I think what the EU is doing is pointless. They are mostly playing an extortion game and stealing money from MS and their shareholders. Those parasites aren't doing anything to make the computer market more competitive. Microsoft has the right to charge whatever they want for software, and I see nothing wrong with including a feature like a web browser. A computer without a web browser is a degraded experience. Microsoft might be a monopoly, but it is a temporary one: I quote Milton Friedman in my book that the only monopolies that are a problem are government-created ones. In this case you don't need to file an anti-trust lawsuit, just remove the legislation that created the monopoly in the first place. The free market always sorts itself out. And free software will win.
Free software is better for capitalism because it is an efficient development process--software need be written only once and anyone in the world can take advantage of it and further build on it--and it allows any company or person to contribute to it, create hardware based on it, create a support company around it, and so on. Richard Stallman points out that every proprietary software company is a monopoly. If you use Oracle, you are forced to go to them for a feature, or for support. With free software, anyone can download the code and support you or add features for you. (Of course, not all companies are equally as reputable, but that same issue exists with car mechanics.) I'm convinced that free software is better for the free market and more compatible with capitalism than proprietary software. I started off thinking that free software was not good for capitalism, and after studying it intensely for several years, came to the reverse conclusion. I spend some pages on this topic in my book.