Home

Advertisement

Customize

Whence world domination?

I've had this blog entry going around in the back of my head for some time now...it's seen a number of false starts and revisions, finally I've decided to cut it down to just the essence:


Andy (re)started an important discussion. How do we increase use of GNOME and Free Software in general on the desktop? What's our target audience? What kinds of things can we do? Why haven't we taken over the world yet?


Basically, Microsoft Windows is like a big Katamari ball. It has an enormous amount of momentum in the form of first and third party applications, drivers, hardware vendors, etc. Put another way, it's a Network effect. Even Apple, who have a huge influx of cash from their consumer electronics business and been returning some of that as improvements to their OS, have only seen their market share increase by tenths of percentage points (insert standard statistics disclaimer and standard Wikipedia disclaimer).


How about us? First, let's note that overall, the Free Software movement is doing better than it ever has. For example, Sun is quickly transitioning to becoming a primary Free Software company (I liked this blog entry). I'm sure if you told Richard Stallman back when he started GNU that he would end up completely winning versus all of the proprietary Unix systems of the day, he would have been amazed.


Even Microsoft is now employ people who work on projects like IronRuby (as Sun employs major JRuby hackers, and did you know Apple has their own Ruby bastard child? (I'm doing my own Ruby implementation too)). So in general almost every large technology company now ends up contributing back in some way to Free Software, typically infrastructure (development tools, shared libraries). I liked this quote from the New York Stock Exchange:



"Red Hat is like water; it's pervasive within our architecture. ... Without it, most of our computers wouldn't be running," -- NYSE

So we understand that Free Software is doing well. Let's go back to the desktop specifically. Despite some negativity, the Free desktop is widely regarded by a number of important software development organizations (both Free and proprietary) as a target platform. For example, Mozilla and Adobe. We have quite a lot of Free desktop applications. There are a lot of professional developers, students, etc. using the Free desktop on an individual basis, and a growing number of managed (usually thin) deployments like this Europcar one.


In particular from that story it sounds like Europcar basically needed a desktop to run Telnet to some proprietary backend booking system. Yes, it doesn't make sense to spend large license fees to Microsoft to run telnet. More generally for a growing number of corporations their needs are increasingly met by the web browser (the 21st century telnet). So we can expect deployments like this to increase. Every time I see the default Windows XP screensaver on a point of sale system I just shake my head. It's a testament both to how enormous the Windows Katamari ball is (it rolled in the ISVs developing the point-of-sale apps), and to how no one ever changes the defaults.


But what about consumers? Let me just say this straightforwardly: I don't think the free desktop is likely to see significant gains in unmanaged consumer computing in the next few years. Fundamentally, it has to be extremely compelling to get people to download it and replace their current operating system, and while we do have our advantages, most people just want to check their email and then go out and do something that doesn't involve looking at a computer screen. Could we do better in the consumer area? Yes, I think so; I have some specific business-related ideas in that area that I won't mention now, but in the end we're likely only talking about a percentage point or possibly two for the near future.


For consumers though, Free Software does have decent success in the form of Firefox. What's Mozilla's trick to get so many downloads? What we can learn is that Free Software is certainly a necessary condition, but not (in general) sufficient. The other key is the user experience. People can very much appreciate things that make computers suck less. Firefox 2 added tabs, Firefox 3 added the awesomebar. There is of course also the fact that installing Firefox is far less risky than replacing your operating system, and while we can do some things to ameliorate that it's difficult.



Don't get me wrong; I think we will see more adoption of the free desktop among consumers (as a percentage), but again, the Katamari ball isn't going to stop overnight. A lot of people seem to think either we won't see any increasing adoption (again, as a percentage), or that there will be an inflection point at which adoption takes off, and I don't think either of those are likely soon.


So the other main audience is technical computing; sysadmins, developers, scientists, etc. What we absolutely must do is stay on the ball for this audience. These people are in some ways a proxy for the larger audience; even particle physics researchers want their sound to Just Work. For example, this bug from a Mozilla developer. That's a generic GNOME bug; on the vendor level we are still struggling with a good upgrade process. This blog from a Fedora developer, and this blog from a Mozilla developer using Ubuntu. As I've said before, apt-get or yum or whatever are fundamentally just fancy implementations of wget; upgrades (without random manual intervention in a terminal) are a harder problem than that.


Anyways this is a long entry now and at the beginning I said I'd keep it short =) So the bottom line? We're doing OK. But truly spreading the Free desktop requires solving many hard problems that do exist. We can't spend time screwing with the code. Think about how to make the experience better; it could be for developers and sysadmins if you like, or better for nontechnical users.


One last thing; while writing this entry I stumbled on Federico's 2006 summary of feedback from thin client deployments that I hadn't seen before. There's a lot of things there that are eminently solvable. Let's just do it.

Comments

(Anonymous)

Badbad

Open source folks are bad in leveraging network effects. For instance the Microsoft's documentation that comes with the SDKs is plain superior - it is convenient to develop using them.

Also they direct resources into developing their strategically important libraries and platforms. That's something that doesn't really work with these open source communities. There have been obvious really weak spots for Gnome desktop and Linux in general but they have not received proper resources. Good examples of this are Totem (movie player component which has been basically alpha stage software for years), Telepathy (getting rid of the boxes, pervasive communications platform), integrating all the software involved in booting Linux up (2-3 seconds to GDM is technically possible, without constant flickering), network projectors support (absolutely non-existent on Linux, although those wlan projectors are quite common already), getting rid of Evolution (Prism for instance was a good idea for replacement, Evolution has been practically abandoned project for the last couple years), getting new startup menu (the SLAB is not perfect, it sucks as well, but the old one sucks the most), ...

(Anonymous)

its the games

"most people just want to check their email and then go out and do something that doesn't involve looking at a computer screen."

Ugh. God, no. This is the biggest myth I keep seeing spouted over and over again by the Free Desktop people. The vast majority of computer owners DO use it for more than email, web, and lite word processing.

http://www.washingtonpost.com/wp-dyn/content/article/2006/05/07/AR2006050700172.html

While the hardcore gamer market might be a niche, it is a significantly larger niche than the Free Desktop users niche. And the casual gamer market is just fucking huge.

On the personal anecdote side, I can plainly and honestly say that every single one of the two dozen plus Linux installs I've done for friends and family have been replaced with installs of XP, solely due to software support. Firefox and OpenOffice.org is NOT enough for the majority of people - almost everyone does something else. Whether it be a crappy shareware game like Bejeweled, an occasional last-gen shooter like Unreal Tournament, or a variety of newer games (Oblivion, the Witcher, NWN2, etc.), I can't really name many people (other than Free Desktop users) who eschew games on their PCs.

Linux can work for gaming, assuming we get the graphics driver issue truly solved soon, AND assuming we make it possible for people to actually install the damn games. One of those installs I mentioned was for a friend who wanted to play two and only two games: Warcraft 3 and NWN. NWN has an actual Linux-native port. But you know what? It was actually EASIER to install Warcraft 3. Pop in the disc, click the icon, and it just installed via WINE. NWN? Open a terminal, copy the shell script off the CD, modify it to work around some of the changes in modern distros X11 utility locations, run the script, manually download the patch tarball, unpack it, apply it with another shell script, etc.

You want Linux on the average consumer's desktop? Make it easier to install random-ass third party software (which yes, IS going to greatly increase the risk of trojans and viruses - that's life) because to be perfectly frank, even the 15,000+ package repositories full of Free Software don't come anywhere close to containing all the software that most people want, because most people want at least one or two games.

And Free Software just does not compete in the game market. I don't know why, but it doesn't. However, even if it DID, that wouldn't change anything: even if we had 10 triple-AAA, that doesn't also mean that the non-Free triple-AAA titles cease to exist. I mean, if someone wants to play Mass Effect, then they want to play Mass Effect -- if there's another Free game of that same quality, all it woudl mean is that that person would want to play BOTH, not just the Free one.

THAT is what stops Linux from working in the consumer market. It isn't just a lack of compelling reasons to switch; it is the presence of a very, very compelling reason to stick to XP to retain the ability to play games.

Re: its the games

Gaming is important, I agree. If you take "most people" to the extreme, right now most people don't even use a computer (according to http://www.internetworldstats.com/stats.htm).

Let's define "people" in this context as people with enough wealth and time to afford a personal computer. By that metric again, I would argue that communication with other people (generally email, but blogs/IM are growing fast) is still the killer feature.

But let's get back to gaming - I do think that in the next few years, the PC gaming is going to be strongly squeezed by two trends. First, the consoles are getting the networking/social features and keyboard input that were the main advantage of the PC before. The other trend is Flash games.

Don't get me wrong, I myself have a Windows partition with Steam so I can play TF2 with some friends in other cities, and Valve does an amazing job, but it does feel like the writing is on the wall. We'll see =)

Re: its the games

I think gamers is not the best candidate for the first niche to address. It is a hard job and requires cooperation with potentially hostile entities (proprietary game developers who force down their users throats weird protection schemes).
Probably is better to focus on easier niches until gathering the needed mass.

On the subject of keeping scientists/engineers happy

The times I've played with Fedora I've found the Fedora (and RHEL5, ugh!) coverage of science packages to be significantly smaller than Ubuntu's (Debian) and Gentoo's.

So now I use Ubuntu (switched from Gentoo). However, my pet-dream is that Fedora would take Gentoo as upstream and integrate the package-management. Then fedora would gain the crucial package-coverage and Gentoo would gain professionalism, infrastructure and people pushing bleeding edge patches.

And Fedora seems to have quite a lot of focus on the bleeding edge - and many Gentoo users are more than willing to test that bleeding edge, and a bit beyond.

Ok, enough day-dreaming. Back to work.

(Anonymous)

It's very hard to dominate the world when the most successful open source programs are also available for Windows.
While the most (*cough* *cough* cracked) programs on windows aren't available on Linux.

I know it's unpopular to say, but I think that Linux will gain some points in the market share when there will be some cool proprietary tools available only for the Linux Desktop.

Money

I don't think there's anything inherently wrong with opensource, Linux or Gnome that prevents it from reaching people. The network effect you mention is more like platform inertia, since Microsoft hasn't been able to harness a true network effect on the web (isn't it amazing that IE defaults to search.msn.com and Google is still the search leader?) I say go for quality, integration, stability and innovation. The same old. Quality will win. MacOS doesn't quite count as a counterexample, because the hardware is relatively expensive and Apple had that slump period in the 90s from which they're recovering.

The key is to hire developers whose sole job is to work on Gnome and Gtk, rather than rely on volunteers and spare hours from the business stakeholders. The only people who can do this are the users, through a foundation (Gnome foundation is solely administrative, right?) If every user contributed the equivalent of a box of consumer software (about $50-60 in the US) the Linux Desktop would be able to compete with MacOS and gain market share much faster.

(Anonymous)

lame programmer support

I'll share my recent experience:

I decided to learn Gtk using ruby. Turns out GtkTextView does some updates asynchronously and that was causing me some problems. I rewrote my test case in Python and then in C. Still didn't work.

I posted questions on irc and mailing lists for ruby-gnome2,pygtk,gtk+ and got no answers at all.

I read tutorials. Nothing.

Finally I just started reading through the API's from end to end and I stumbled in the ruby-gnome2 docs on Gtk.events_pending? and Gtk.main_iteration. Wow, it works now.

However this experience really sucked. I bought a book on PyQt4 and I'm considering switching either to that or to ruby-qt4. I need to develop some real apps. I really *like* gnome/gtk+ but the mature and practical side of me is firmly telling me to *not* use gtk+.

If other developers have this experience then that is why the application ecosystem is so small on gnome and that is probably part of the answer to your question about why gnome hasn't taken over the world.

Re: lame programmer support

Have you done any GUI toolkit programming before? All of the main ones I'm aware of have the concept of a mainloop which you must run.

You don't want to use Gtk.main_iteration generally; just run: Gtk.main

There are a lot of examples around.
First about "Firefox 2 added tabs" - I am quite positive Firefox has tabs right from the start (from 0.1).

To stop the Katamari ball we'll have to reach a tipping point. Firefox reached it by various means (aggresively courting IE users and letting in the cold old Mozilla users) and after that it continued to unstoppably grow.

For the Linux Desktop I think is the same: it has to reach that tipping point, a certain market share (not the pathetic under 1% where it reportedly is today) and then it can't be ignored. So by all means, focus on increasing the market share to build the network effect.

How? Focus on easily reachable niches. Compete hard and have a winner mentality.

(Anonymous)

Feature creep vs regressions

In adddition to the already mentioned things, I'd like to reiterate that regressions and library "incompatibilities" are a huge problem. For example, despite all the bashing on Vista, for the most part, it just plain works. Even legacy applications do as advertised, unless they expect to be run with administrative privileges and get confused by Vista's poorly implemented variation of sudo. On the other hand, recent iterations of GNOME (and lets keep KDE 4 out of the picture for now) do not fare so well when talking about stability and cohesion/integration. The perceived frequency of segfaults, threading related crashes, failed assertions and misc runtime errors increases with each release.

For example, I sort of regret making the jump from Fedora 8 to 9 on the day of its official release. As much as I like the inclusion of *bleeding* bleeding edge stuff into a supposedly stable release, this time it was a very painful experience. And it demonstrates how increasingly complex Desktop Linux(tm) has become. There are layers above layers of code which each make (different?) assertions about the environment its processes will be executed in, so to meet the lowest common denominator. All those layers have to for compatibility reasons, or else risking the house of cards to collapse. Yet, its still possible that some code runs perfectly on machine A, only to fail on machine B (insert distro U vs. distro F here).

Moreover, there are a lot of rough edges in GNOME in particular. Each of which are not a bug in a technical sense, but could rather be categorized as unintended feature. My most favorite example in this regard goes like this (its reproducable, yay): Open nautilus and make sure its viewing mode is set to "View as List". Select any existing folder or create one and then select it with a left-click. Select the File->Create Folder option in the main menu (no, right-clicking on the selected folder will not offer the option "create folder"). The newly created folder will be a child of the tree root aka the folder used as a starting point for the list view. Expected behavior: the newly created folder is a child of the previously *selected* folder. While having to drag the new folder to where it actually belongs is no big problem in a simple tree structure, it becomes rather time consuming in slightly more complex directory structures.

End of rant.

(Anonymous)

Re: Feature creep vs regressions

I have been an avid linux user from the 90s ... started with slackware and I am now on fedora core 9. I have exposure to aix, windows, os2 warp, mac os. Here is the problem I see with desktop linux in general. It is powerful in some areas but lacks the polish of my wife's mac book for example. I think all the pieces are there conceptually but we are missing a bit of polish and end user functionality. For example, my wife owns an ipod and a mac book. she plugs up her ipod and is guided through setup on the mac book. This is how it also works with the Iphone. I own a gamer friendly laptop which was know for its black and white cows. I haven't ever gotten usb sync to work (though bluetooth works most of the time). I am not saying all these problems are the cause of the linux development community... they are not but these are the issues we need to overcome in terms of use-ability to attract the the average user but we have to do more than that ... we have to give them a compelling reason to move from what is familiar. We haven't done that ... we are a bit short of providing what they already have in terms of functionality. I love linux but I think we have to upstage microsoft and apple to win converts. We have to raise the game and produce a truly superior product for the end user and not just business.

Advertisement

Customize