So Miguael de Icaza posted a blog with his opinion about why Desktop Linux has not become a huge success. The core of his argument seems to be that the lack of ABI stability was the main reason we didn’t get a significant market share in the desktop market. Personally I think this argument doesn’t hold water at all and the comparison with MacOS X a bit random.
So I think there are a lot of contributing factors to our struggle in the desktop market like:
- We are trying to compete with a near monopoly (Windows)
- Companies tend to depend on a myriad of applications to run their business, and just a couple of them not running under Linux
would be enough to derail a transition to Linux desktops
- We were competing not only with other operating systems, but with a Office productivity application monopoly
- We are trying to compete by supporting an unlimited range of hardware options
- We divided our efforts into multiple competing APIs (GNOME vs KDE)
- There was never a clear method of distributing software on Linux outside the distro specific package system.
- Many of our underlaying systems were a bit immature
- Software patents on multimedia codecs made it hard to create a good out of the box experience for multimedia
- Competing with free applications is never a tempting proposition for 3rd party vendors
- We never reached a critical mass where porting to desktop Linux tended to make sense
- An impression was created that Linux users would not pay for any software
- The different update cycles of the distributions made it hard to know when a new API would be available ‘everywhere’
- Success in other areas drained resources away from the desktop
The Apple Myth
So how did Apple succeed? Well first of all the question needs to be asked if they have succeeded? When Steve Jobs came back to Apple I think their global market share for personal computers was down to just below 5% if my memory serves me correct. According to Wikipedia (not the best proof of anything, but lets assume they are in the ballpark) their marketshare is now about 7.5%. So in other words on the back of being the media darling and record breaking products such as the iPod, iPhone and iPad, they have managed to increase their market share with 2.5% in the PC market. I think that speaks volumes about the challenges posted by the first two items in my list above. Another thing that is both an advantage for Apple and a disadvantage at the same time is that they got their own hardware. In the advantage collumn that means that their developers had a very limited set of hardware configurations to support and they could ensure MacOS X ran well on that configuration. We on the other hand have been struggling with trying to support basically any random configuration out there, which means ensuring a problem free experience for everyone is next to impossible. Of course I think only supporting your own hardware also does sometimes makes things harder for Apple, because if a company was considering switching to MacOS X they would have to throw away all their existing hardware, which I am sure makes a lot of companies think twice if contemplating switching.
Apple were also able to build on their old market share when launching MacOS X, which means they have had a profitable ecosystem all the way. So for instance porting games has provided enough income to support companies in keep doing so. While for Linux it has often been a proposition of trying to build a market when considering porting to Linux.
So I could go intro great detail for each of my bullet points, but I think they are quite self explanatory. But my general point is that I when I ask myself if I think our market share would be significantly higher if our ABI stability had been even better, the answer is no. Not that I am saying I think it has had no impact at all, I am sure examples exist of ABI breakage or distro fragmentation having caused 3rd party software developers to shy away, but I don’t really believe Linux would have had for instance a 10% marketshare today if only our ABI stability had been better over the last 10 years. But maybe it would have added another 0.2% or something in that range.
But as I said in an earlier blog post, I am not negative about the future of Linux and open source on the desktop. I just think it is a lot slower slog to get there than we hoped for, and I do honestly feel that we have a much more compelling product to offer today than we did 10 years ago in comparison with Windows and MS Office. But the challenges in my bullet point list remain and overcoming them has been and will continue to be something we have to chip away at, one step at a time. And in the meantime linux and open source software is still doing extremely well in a lot of other end user facing market segments where the competition was not so strongly entrenched, like mobile phones, tablets, TVs, set top boxes, in-flight entertainment systems, in-vehicle entertainment systems, home applicances and so on.
Well, miguel is not talking about global market share, but market share inside the population of people technically able to develop (in the broad sense of the term) software for the desktop.
His point is that a lot of people with a highly technical background and a true sympathy for the Linux desktop have moved to OS X. And that is consistent with hat I see around me. And it’s not because of corporate inertia or Office, but because it’s easier to use and develop innovative desktop applications on an ABI stable desktop Unix.
And a lot of your points are actually about API/ABI stability :
* We divided our efforts into multiple competing APIs (GNOME vs KDE)
* There was never a clear method of distributing software on Linux outside the distro specific package system [Because of ABI instability making generic binary packages a real challenge]
* Many of our underlaying systems where a bit immature [And promptly trashed and never maintained again thus breaking ABI compatiblity]
* The different update cycles of the distributions made it hard to know when a new API would be available ‘everywhere’ [API/ABI differences]
I don’t really see why you think Miguel only means market share among the technically inclined, although yes that is where is pulls his anecdotal examples from. But the difference these people make to the global market share is likely to be about 0.001% at best.
And I have trouble identifying any major open source MacOS X application that can be ascribed to have come out of such a user/developer migration. And yes there might be some open source devs who have become closed source MacOS X application developers, but once again I think that is more about there being an existing market for such things.
And yes, some of my points are API related, but for instance if you target older GNOME 2.x releases you could be quite sure they would work among all linux distros, so it is not a ‘API stability’ issue. But of course with only 1 ‘distribution’ of MacOS X it is easier to know what API to target at any given time, but even there you have the challenge of maybe half your users not having migrated to latest OS versions yet. But lets not confuse API breakage (which is you write an application and it stops working due to the underlaying library actually removing/changing an API) and these other issues which are more about API availbility or package tooling.
“And I have trouble identifying any major open source MacOS X application that can be ascribed to have come out of such a user/developer migration.”
Not modern WebKit branched from KHTML and used everywhere including google chrome on Windows effectively displacing KHTML?
Not LibTiff? (Project maintainers now work for Apple)
Not CUPS for printing? (project founder now works for Apple)
Not LLVM, Clang, or gcc – all of which contain major contributions from the Apple camp?
Not zero-configuration networking (IETF Proposed Standard)?
Ok, to me there is a big difference between independent open source projects being based on Mac and people taking a job with Apple.
I want to put this bluntly: there is no Adobe Photoshop, Lightroom, or many other professional desktop applications on Linux. These all live in Mac OS and Windows. API and ABI stability is only one reason for this, but is no excuse. Without exclusive commercial applications, Linux will never replace the other OSes in the desktop space. I’m not talking about “equivalent” apps that run on multiple OSes or ports or high quality free software. I mean genuine native Linux commercial desktop apps that don’t exist on Mac or Windows and are worth switching OSes for them. Apple Aperture for example.
Google has done a great job with Android and Chrome. It’s not too late for someone to do something similar with Linux.
“but market share inside the population of people technically able to develop (in the broad sense of the term) software for the desktop.”
Unless you are trying to say that more developpers use Apple computers than other computers, there should be a proportional amount of developpers on all types of machine. Market share is market share.
IMO you’re absolutely right: long term compatibility – IOW “not breaking stuff” – is one of the biggest reasons. Enterprise distributions have shown what sort of discipline / effort is required to keep ABI compatibility in the long term, with the present ecosystem. Even if upstream projects cannot be bothered to maintain API/ABI compatibility forever, distros could do a better job allowing e.g. concurrent installation of multiple library versions (so as to provide ABI compatibility by retaining the previous implementations).
[WORDPRESS HASHCASH] The poster sent us ‘0 which is not a hashcash value.
I agree with Miguel. Mac OS X killed desktop Linux.
Mac OS X is real Unix that my wife can use. It is real Unix that my mother-in-law can use. It is real Unix that can be used in an office. If this is the goal of desktop Linux, Apple accomplished this goal a long time ago. The move to Intel processors and the introduction of Leopard was really the decisive blow. (Snow Leopard is one of the best operating systems I have ever used. Lion, not so much.) Plus Apple accepts that this is (for now) a Windows world. While Linux geeks were trying to get Wine to work, Apple was touting running Windows under a VM and dual-booting.
I think the real problem is that the Linux community was divided between the goals of promoting free software and creating a viable alternative to Windows. Proprietary software will always have a place and some in the Linux community don’t accept this. This ideology is holding Linux back.
I have been using Linux since Red Hat 6.1, but I am typing this on a MacBook Pro.
My wife has been using linux exclusively for almost 10 years. My mother-in-law has been dead for around the same time, so….
I have been using linux exclusively at home since 1999 and in my office since 1993. (i.e. since SLS and kernel 0.99pl12). When you include media streamers etc., routers, etc. we currently have 7 (or is it 8?) systems in the house running one form of linux or another.
And I seem to have the vague idea that you *can* dual boot windoze on a linux system and that there are at least 3 virtual environments which can also run that excuse for an OS.
Oh and BTW, one of my students has a macbook, which he immediately installed linux on and hasn’t used OSX since.
Personally, I have never liked Apple products, since an encounter with a Lisa c1983. Jobs was an anal-retentive control freak and thisis reflected in the way his company does “business”. I never have and never will buy anything made by Apple (well, to be precise, their suicidal chinese proxy slaves).
Well, my girlfriend uses Fedora, Ubuntu, and my sister Fedora… but not OS X, because is “ugly and twisted”, the same trouble with Windows.
So, is not an OS for all people, i think there is an OS for each people.
Hm..all you just said is true. However, being Linux and Windows user at the same time (for personal and business reasons) I must say that I am really satsified with the Linux distribution I use. Windows also works fine although using it looks like using a child toy. I am not a person which loves Linux and hates Windows. I am happy using both of them. What’s wrong with this picture? Since Windows is a commercial edition and Linux is not, one could expect for Windows to be better product. But it’s not. Why should it be anyway when there is no serious rival. Linux is not a serios competition. Besides all you have said, I see another issue. If you are a big guy running a race against just one small guy, from now and then you will do some dirty tricks to make his race harder and it will soon give up. If you have many opponents (large or small) you will spend a lot of energy trying to fight them all and eventually you will either try to improve yourself or you will loose the race. So I say that Linux is, despite many distributions, just one opponent to the biggest player in the filed. What Linux desperatelly needs are allies. The more Windows opponents are in the field, the more we all gain. The Windows might become better, and the Linux will overcome its problems and find the way to become serious Desktop Edition. But, as far as I can see, at the moment there is just one player left (Apple). Is it possible for Linux to cooperate with Apple (or vice cersa). If yes, who will represent Linux? If no, is there any other player to join the efforts? Is Linux able to join with anybody else at all? These are the questions I’d like to be clearly answered. After that, maybe, just maybe, Linux will have the opportunity to make a decision if it will be the serious Desktop product or not.
“We divided our efforts into multiple competing APIs (GNOME vs KDE)”
I think that has nothing to do with the lack of success of both platforms. The fact that you have an unnecessary buffer(distributions) which take the mentality of ship it all or ship the best of the best rather than creating a platform for the best of the best to be created is what prevented their success.
ABI stability is important as is having a set of guidelines to help potential developers create great applications for your platform.
It doesn’t matter how well the guidelines are produced on the KDE and Gnome side because the distributions will only confuse potential developers by mixing multiple paradigms for creating an application together.
Distributions are in essence anti platform.
Gnome and KDE in my view need to ditch the distributions and offer the entire platform themselves.
>“We divided our efforts into multiple competing APIs (GNOME vs KDE)”
Are you on drug of course it makes a difference.
I think your defense is very good.
From my point of view you guys made more than enough, but you need in the past more support by hardware vendors.
Said this I think the problem with the Desktop is that while on the Kernel a leader like Linus is enough, on a Desktop you have to put together a multitude of different projects with different goals. So the “anarchy” there is in the open source world for me can’t do more of what you did until now.
The problem is that I use the PC to satisfy my needs and not to increase the Linux market share on the desktop.
So my only hope is that Google or some big company comes in and makes for the PC the same thing that is doing for smartphones and tablets. Because without a company that makes huge investments and can coordinate everything there will never be the chance to fill all the gaps.
Good post and comment response! I’ve been wanting to write a similiar response but just couldn’t drag myself into the effort required because who really wants to hear it? :) But seriously, the only additional point I would have mentioned is the amount of money that Apple has spent on advertising in the last few years. While I don’t have any actual public data to point towards (does any exist and if so where?), I don’t think it is an exaggeration to suggest that Apple has spent > $100 million on advertising in the last couple of years. How much has been spent on Linux or Linux-related advertising? Do you have a microscope?
In my opinion one of the most important points is the second to last:
“The different update cycles of the distributions made it hard to know when a new API would be available ‘everywhere’”
One can never be sure if the software he’s writing for distribution X will work on distribution Y. And it’s not just a matter of release cycles, but what packages (and which version of packages) go into one distribution release. If I’m writing a service, knowing whether the distribution runs init.d, systemd or upstart is important, for example.
For this reason, I welcome all the freedesktop.org efforts on standardization of the Linux desktop. Also a toolkit like Qt is extremely helpful for application writers, because you know exactly what API is provided by each version and it’s not fragmented into a zillion of different libraries released independently. This is also one thing that the GNOME OS might help to achieve: giving application developers a solid base to develop upon; but then, the Linux desktop is more than GNOME OS, so I’m not even sure that the fragmentation will be reduced…
Great post, and makes far more sense than Miguel’s.
I agree with all but the last point. With Android, Unty, GNOME 3, MATE, Cinnamon, KDE, XFCE, LDE, Tizen, WebOS, B2G etc. I feel like the fragmentation is worse than ever.
I’ve had Linux on my desktop since ’97 and still can’t easily share files with windows computers.
Why should I have to chose between RPM or deb? The practical differences are small – I don’t care.
Why is there no good video editors despite quite a few choices?
It seem like the free desktop is doomed to forever be a fragmented mess of 80% done projects because some dev didn’t like some little thing and decided to start his own.
[WORDPRESS HASHCASH] The poster sent us ‘0 which is not a hashcash value.
This isn’t fragmentation, it’s choice. This is software getting better and (in response to the whimsy of Gnome “thinkers”) worse. Canonical is starting to win, because they started several ecosystems that have possible monetary reward– but easy installation choices of largely deb packages. Click it, and it magically appears on your menu. The masses love stuff that just works, to use a hackneyed phrase. Coders love juicy knobs in conf files, but civilians? They have to work.
Apple put together a stable, highly-controlled platform and cut down the driver nightmares and sacrifices that driver coders had to make– they knew the hardware to expect. It was stable. No missing this or that. Yes, they crippled many platforms on purpose to allow their gods at the RIAA and MPAA from losing content thru Bluetooth and other schemes. Draconian, but disciplined.
The kernel might be Linux, but underneath is a junkpile of excellent applications looking for a spot marked X. Distros have hardening of the arteries with useless junk, legacy insanities, and cute stuff that developers mandate but civilians just screw up, then walk away because they grew up clicking stuff.
The reason to buy Apple stuff is that you have to work hard to get underneath and screw stuff up. It’s an anathema to a civilian to get a shell, and poke a long stream of hallowed arguments to an app. They click stuff. Debian? Huh? They have no clue what Yast is, they don’t care about the beauties of dependency checking with RPMs, they just wanna click and go. Now, it’s possible to do in some distros that are paying attention. Love or hate Ubuntu or Mint, at least they package it with sharp edges removed. And both still have chasms to fall into, and aren’t focused towards business desktops, modern security models, and interconnect. Slowly, however, they get there.
Call it fragmentaton, or call it choice – it’s two sides of the same coin. If everyone wants to make diffferent choices, fragmentation is the only possible outcome – the cost of everyone being different is that you lose the benefits of them all being the same.
I’m not trying to be rude to you, but if you have been a Linux user since 97 and still can’t share files among Windows based workstations on the LAN, you either haven’t studied the problem for more than a few seconds, are extremely technically inept(which I doubt from the nature of this blog and your reply), or perhaps you’re using the same distro since 1997!
Samba and its’ cohorts have been considered mature/stable for some time now, have multiple programs written to assist in setup via GUI or CLI, come preinstalled/preconfigured on a few distribution, etc. Hell, there are LiveCDs out there that automagically mount every network share possible for purposes of data extraction upon login!
I’ve been to lan-parties where we’ve had major problems sharing files between windows computers so that’s not limited to the lin-win combo.
Most linux file managers can use smb:// to access windows shares. Setting up Samba to share files to a windows box might be a bit trickier but the default smb.conf is very well commented and has some good examples so any half computer-savvy individual should be able to have a working setup in a few minuter.
The reason why Free Software developers (read: distros and upstreams) don’t give a shit about a closed source ecosystem is because it doesn’t give them anything they want (like Free Software or money). Worse, it gives them things they don’t want (like boring maintenance of old interfaces).
You need to separate distros and upstream. In general distros and developers have very different motivations. At least the commercial distros care a lot about money, that’s the main reason for their existance. They should also care more about long-term binary compatibility and API stability.
I agree that most open source developers care little about long-term stability in general but I think they should. At least they should if they want their programs to be used. If they just write their applications for their own amusement then it doesn’t matter but if they want it to be picked up by distros and used then they definitely should.
This is a bit of a nit-pick (and feel free not to approve it as a comment), but the past tense 3rd person plural of the verb “to be” is spelt “were” (without an “h”) in English. It is pronounced like “whirr” (as in, a rotor) as opposed to “where”, which is pronounced like “wear” (as in something you do to clothes).
Right, vocab and spelling nazi out…
Oops, ok fixed, thanks for noticing. I know it is a mistake I am prone to do, but often forget to check for it.
A problem with your data choice on Apple’s desktop growth is that it discounts 2 major data points. 1) Apple was losing market share at that point at a rate where it was looking to be 0 at this point.. that is a huge momentum to change in the consumer herd thinking. 2) The size of the desktop market has nearly doubled in that time so growing during that time versus further shrinking is a huge undertaking.
I don’t say this because I like Apple, but because dismissing that Apple didn’t accomplish a huge task during that time makes your other parts of the argument easier to dismiss. Also I would say that I got the impression that Miguel was talking about floss software developers use of desktops versus general market. It would be useful to move away from anecdotes and do a solid survey of a) what they use, and b) why they use it.
No doubt that Steve Jobs turned them around, but my point was mostly that even a company that have created a lot of iconic products during the period and had every journalist dotting over them has only managed to achieve a relatively modest growth in the desktop market. Not sure I agree that a generally growing market makes it harder (or easier) to grow your share of the market in and by itself, I think that depends on who these customers are.
As I recall the Apple market share story went something like this: They were headed for zero, which meant Microsoft would have been a 100% monopoly (instead of 95% or 98% or whatever they were at the time) and subject to all sorts of new scrutiny. So they invested $150,000,000 in Apple and desperately tried to keep them alive.
Apple limped along in the cool, groovy, expensive niche.
Then came Vista and everybody I knew who needed a new computer, everybody, was buying a Mac. That’s when their market share finally climbed above 5%.
I think maybe you have to say Ballmer turned Apple around.
I also found the comparison with OS X sort of contradictory to his argument, although he wasn’t just talking about the end user adoption- it seems much of his focus was on smoothing things out for developers (which is extremely important, of course, but not the only thing we need to do).
Like you said, if a behemoth that everyone’s familiar with, whose products most common people envy can’t even double its market share after OS X and the new Mac line came out, how much more difficult would it be for an operating system with essentially no marketing force? We have word of mouth, local groups, and even then it seems that everyone has a preferred distro to the exclusion of others (which doesn’t look good to outsiders).
Still, we’re free, we have a mobile counterpart (of sorts) in Android, and Linux has a reputation for being a stable powerhouse that can do anything from a technical standpoint. I think we have a lot going for us, but it is a tiny bit late. Even if we had everything together, a ton of commercial applications from Adobe, Autodesk, and game studios, we’d still be advertising a laptop- I’m not sure how easily that could impress people considering how fast things are shifting to hybrids and tablets.
There is a huge difference with OS X and Linux. With OS X the cost of migration is high – you need to not only get a new computer but the average cost of a Mac is twice that of the average of a Windows or Linux machine (this does not mean Macs are overpriced – Apple only sells to the higher end… in price comparisons for comparable machines Apple tends to do fairly well).
But Linux is free. Dell and other sellers offer it on systems – some companies even focusing on Linux systems specifically. And, of course, you can install Linux on almost any machine you want. So the cost of getting Linux is not an issue. The cost of *using* it, however, is an issue.
Desktop Linux still lacks software that competes well (in many areas, in other areas it is fine here) and the ecosystem make it hard or impossible to have a system work as a system and not as a mish-mash of competing, inconsistent, and often poorly followed UI standards and APIs. This has to change if desktop Linux is ever going to gain any major user base. Right now it is used largely by people who live in the command line, those that need little more than a web kiosk (which such use is growing) and those people who are using used hardware and need a cheap / free OS to run.
Let me start with “+1”
Second, I think one of the source of negativism is the disapointment of some peopel who have been working on the Linux desktop for a long long time and truly believed that a much larger market share was achievable or even within grasp. And well, it didn’t happen, I think mostly for reasons beyond our control. I can especially point to team Novel/Ximian/Suse who had made on a big bet on the Gnome/Mono desktop and it just didn’t work out in the marketplace.
I may be opening a real can of worms here but let me state my honest beliefs… (ok, here goes)
Gnome was created as a reaction to KDE basing their technology on the – at the time – non-free Qt toolkit. This understandable initiative was a good thing. It developed from nothing to something rather quickly because Miguel and his team mates are exceptional programmers that can hack a lot of code very fast. So Gnome grew and eventually it lead to the result of Qt being released first under GPL by TrollTech and then later LGPL by Nokia.
At that point some high-up Gnome and Gtk people had formed Ximian with a typical – again at the time – business model consisting of 1. Hype 2.Venture Capital 3. … 4. Profit! Before it could burn through all the venture capital money it got bought by Novell and the founders of Ximian ended up in high positions inside Novell. And this is where the problems started.
The big problem is that even if Qt was proprietary and Gtk free, Qt is a much, much better toolkit. You can develop the same program with Qt with less than half the lines of code as the same application using Gtk. If you think this is an exaggeration, I invite you to look at how much boiler-plate you have to write to create a Gtk/Glib based class and compare it with the same in Qt. Qt also has a comprehensive GUI builder and a lot of people behind it. TrollTech had, I think, around 100 full-time developers at the time which is far more than ever Gtk had.
So you would think that whatever your vision for the Linux desktop is, it would be best to implement it in Qt rather than Gtk. However, the Ximian people were and are very adverse to KDE and Qt and convinced the high-up technical people in Novell that Gnome was the way to go for the future Linux desktop. And the KDE people were always a bit naive and thought that the best technology would win so they didn’t counter this with any information of their own. At Red Hat it was more a case that KDE was rather centered in Europe and Gnome started in America so it became natural that Gnome people populated the job openings there. And they are hardly going to recommend anything other than their own baby, are they?
So the situation is that the two most dominating distributions were basing their desktop offerings on bulky technology that prevented fast development. And KDE did and does take backward API compatibility very seriously so that problem is also something that could have been avoided.
Last, I find it very telling that Miguel says that “open source developers are using MacOS a lot”. I think he is only talking about people he knows and sees a lot. I have been involved in KDE development a bit and I haven’t seen very many Macs at KDE meetings. Could it be that Gnome developers just don’t want to eat their own dog food? (Or as we say in the Qt world: Drink our own champagne :) ).
The reasons listed make good sense to me and most could help explain why a comparable or even a better desktop experience could still fail to get adoption, especially in the enterprise.
But is it really the case that the desktop linux experience really is as polished as the windows or Mac? Please understand I am not trying to start a flame war, I like all these platforms, I use Windows mostly for my personal desktop use and Linux mostly for my servers.
I have not spent time recently trying to configure the best possible Linux desktop experience, but I have at times in the past, and while its plenty functional it has never felt as mature to me. The font rendering looks like mid-90s technology. The GUI looks three generations behind too, both as to static elements and to animations. It doesn’t seem like hardware graphics acceleration is active.
The linux desktop may get the job done but to me it feels like the computing equivalent of choosing to live in a factory or office building instead of a nice house. And for personal use, I’d just rather live in the nice house.
Nobody mentioned the fact that Apple and Microsoft have robust ways to monetize goods made of bits. Slightly different ones. Apple does it by bundling software with Apple hardware, monetizing their software directly through hardware sales. Microsoft does the same thing a bit differently, mainly selling software to hardware vendors who then do about the same thing, plus some direct software sales to end-users. Linux desktop software has no such revenue model, and is funded mainly through individual and corporate voluntary donations. Makes it hard to keep up with so much less fuel in the tank.
[WORDPRESS HASHCASH] The poster sent us ‘0 which is not a hashcash value.
It seems to me that we, as a community, need to raise our game. In particular:
* There is a huge amount of waste going on.
For example, there is a wonderful drawing application called Xfig. It’s small, fast, powerful and simple. It also hasn’t been updated in years, so there are still some remaining bugs, and the Xaw toolkit that it uses feels dated. We abandon so much that is useful. We’re about to do it again, with Wayland.
* We are terrible at forcing migrations before the system is ready. After spending years to do a rewrite, we push the new version to end users before it is either stable or finished (or has all the features of the old one). Worst example is KDE4, but I might mention PulseAudio.
* A lot of end-user bugs don’t get fixed. While I understand the resource limits, I think that there is an implicit social contract in a bugzilla: If I take the time to find and characterise and carefully report a bug, the author needs to fix it in a relatively timely manner. Best example: Thunderbird *still* doesn’t ship native support for Winmail.dat files, even though the solution has been known (and the bug open) for a decade!
* We don’t do enough error-proofing. If an end-user makes a mistake, or fails to spot something, that’s a bug. Many developers don’t see this. (Joel Spolsky: Hallway Usability Testing).
While I agree with much of this, I do have two nitpicks.
1. Get over the Microsoft ‘monopoly’ thing. That’s last century. Microsoft has the biggest marketshare and in any mature market, there will always be someone in that position. Microsoft isn’t evil just because they’re successful and casting them in that light really doesn’t buy you much sympathy.
Remember – Microsoft was the big gorilla in the smartphone market until Apple dropped the iPhone. Apple was the big gorilla until Google dropped Android. Just because you’re going up against someone big doesn’t mean you can’t win.
2. You hit half of the main reason Linux just never manages to take off on the desktop.. but the other half is also important: Linux just feels clunky. It feels like it was designed by programmers for programmers. The reasons Linux fans tout as why you should like Linux aren’t the things the general public cares about – and no ‘you SHOULD care’ is irrelevant. You have a cause, the just want a computer to browse the web and play some games.
I don’t think Mac OS or the API had anything to do with it. Pre-installed Windows on every PC is impossible to dislodge.
About 10 years ago Toshiba bought a Linux distribution and started shipping dual boot PCs. Microsoft’s response was to yank their Windows license. How do you compete with that?
Let’s turn it around. Ship Linux pre-installed on every PC. The customer has to buy Windows for $80 and install it themselves. Where would Windows be in that world?
Do you know why Linux didn’t work out on the desktop? It doesn’t look nice. OSX does, Windows does too and most people are so familiar with it that they’ll forgive the ‘toy’ look of it. I run OSX on a virtual machine and I really can’t see the big deal with it aside from looks. I also run Linux Mint and, hey, it’s Linux. Windows 7 is fine for me really. I’ve never experienced the BSOD or had hardware that didn’t work.
Sorry to say: key to Linux desktop success would be Adobe Creative Suite (or, even better, Cloud!) …
One of thing which I believe hindered in Linux’s popularity right from the early days, was its not so impressive User Interface, compared to Win95/98. I think this is where/when Windows took off and nobody was able to catch up comparably for a very long time to come.
Another aspect was the lack of availability of compatible software. Software back in the days were in the form of CDs-on-the-shelf, and I don’t think anybody made any of them Linux compatible.
So the challenge was just not there from the beginning to get a hold of average desktop user.
I think you make some good points. I also think you leave some out. Yes, the fact that their are de facto standards which are hard to “beat” is a problem, but one way to do so is to create product which are not just as good but better.
Right now on desktop Linux the tools tend to not be as good. LibreOffice is excellent and I have a number of clients using it but it is not as good as MS Office. People use it, generally, simply because it is good enough for their needs and free. When they can they move to MS Office because it works for them better. There are many areas where the software on desktop Linux is simply far, far behind the software on the alternatives: Photoshop is years ahead of GIMP, there is nothing like Camtasia or ScreenFlow on Linux, etc. And those are just examples with pretty wide-spread use. When you look at niches such as products like Electric Quilt or products for managing a dentist office then desktop Linux is a complete non-starter.
There is also the problem if Linux systems not really being systems. They are a mish-mash of inconsistent and often poorly followed standards (though, thankfully, this has improved a lot over the last few years). Still, the current state of affairs for desktop Linux makes it so the system itself cannot offer services as other systems do. From OS X, just a few examples: proxy icons, media browsers, PDF Services, application services, renaming and moving and duplicating from the title bar, QuickLook, saved status indicators, a visual versioning system (which allows easy copying and pasting from earlier versions), a visual backup system that allows for using the metaphors inherent in many programs to “dig back”, etc. The open source ecosystem is simply incapable of producing a system that works well enough as a system to provide such tools (not that it needs to provide the exact same tools or do so in the exact same way, but it severely lacking in making systems that work as *systems* and not as a mish-mash of different programs sorta tossed together).
These are some hard problems for the open source community. With that said, though, there has been a great deal of improvement over the last few years and I am hopeful that these problems will be solved – or at least become less of an issue. Open source software can and often is amazing (look at the WebKit web rendering engine and all the tools that use it as a great example). I hope to see it grow and improve and offer real competition for Apple and MS.
IMHO, one of the worst things holding us back has been people not buying from Linux vendors and instead trying to get Linux to work around the myriad bugs in the consumer-grade (read: designed for and just barely enough testing to pass WHQL certification) Windows PC market.
I sometimes think one of the smartest things Apple ever did was locking OSX to Apple PCs. Otherwise, we’d be hearing about how OSX is crap on random Windows consumer hardware because sound is flaky and it can’t suspend and resume right (and sometimes it can’t even turn itself off!) while Apple tries to source hardware from the ODMs with a market share in the single thousands of customers. You know, like e.g. ZaReason and System76 are trying to do it.
no matter how OSX killed linux on the desktop, in about 3-5 years, OSX will be a closed eco-system, where only Apple-signed and certified apps can run. it will be preferred by 99% of the Apple end users (less malware), tolerated by developers (because it cuts out a lot of GPL competition), and very profitable for Apple (appstore only). Apple would be stupid not to. it’s inevitable.
besides, they are going more and more towards portable devices for tweeting, facebooking, etc. it’s moving away from its unix roots quite quickly.
I think that Desktop Linux devs should come together and talk what is the goal of Desktop Linux.
Is it support all the hardware out there?
Maybe Linux can offer AMD a additional value on focusing only on AMD GPUs. Let the Nvidia guys worry about their drivers when they do not want to play ball with Linux. I do not think that we will loose a lot when ditching some of the commercial hardware out there. Maybe we will have then a one set of GPUs that support 3D, Video and mulitple screens well?
Who is the target market?
All kind of people, developers, gamers, office workers, designers? Maybe Desktop Linux should focus only on some groups of users. Of course not to make the usability worser for the non-focus groups that it is today. Maybe make a poll to see who is the user today. When we know who is the target user then designers do not have to invent stupid things like Unity/GNOME 3 because some user groups needs are different than others. Devs need multiple windows to work efficiently (debuggers, doc, browser, editor etc). Switching between windows/desktops takes time. Maybe we can make the workflow better by giving a better option to layout all the necessary windows on one view?
Do we really need to support all the frameworks: Unity, KDE; GNOME; LXDE, MATE?
Is there really a big difference in these systems to make the lives of other people harder?
Can we unite some application developers? Why is KDE making their own Office suite that is used even less than OOo or Libre? There are similar examples out there. Imagine what these devs could do together that they are doing separetly.
Why is there been real advancements in some of the core applications that make the Desktop Linux viable?
For example OOo/Libre haven’t really innovated in the past 10 years. Of course there has been a lots of fixes and additional functionality but the usability/compability is still *shit*.
What I like that Ubuntu has done is that they offered users a way to buy easily commercial software through the same environment as they provide open software. This will help commercial devs to sell their products. Maybe if the Desktop Linux would deside to unify and make a OS that the majority of Desktop Linux users would use in the future should also implement in.
I don’t think that Desktop Linux has to spend a lot on marketing because there are a lot of Linux users out there. When we can make them smile while they are using Desktop Linux they will spread the word to non-users.
I think both you and Miguel are missing the point a little. Look at the latest post on Tomi(s blog “Communities Dominate Brands”. He says, correctly I think, that “Smartphones and tablets are really computers”. If you accept that, what is the current marketshare?
Answer: Apple is number one, with 21% of products sold last year (smartphones, tablets and desktops). Android was number two and Windows has a total of 30% of the market (vs. over 40% for Apple IOS and Android combined).
So Linux for end users is succeeding, just not on PCs (Yet). In the form of Android, it’s proving very successful. And Android laptops or PCs might happen someday. Meanwhile, IOS, not OSX, is Apple’s biggest success story.
But I agree that for legacy PCs in business Windows/Office has an unbeatable monopoly headstart. And neither OSX nor Linux is likely to replace them. Of the two, for business, Linux is probably a better bet, since replacing all PC hardware with expensive new Macs from a single-source vendor is an unattractive option.
Good piece. I agree with every one of those points, with some being more significant than others. Linux is very capable of being the desktop of choice for everyone, yes, everyone. But politics stops it. At the upper end are Red Hat and Novell. Neither of them have any desire or interest to make dent to Microsoft Windows at all (Red Hat even publicly stated this). Despite funding a large part of kernel and desktop development, they did so with self interest in mind, one that isn’t aimed desktops for the general consumer. At the other end are very conservative vocal traditional linux users who dislike any change whatsoever, and yes, unfortunately even Linus is one of those.
Sorry, I had to stop reading at this point: “Personally I think this argument doesn’t hold water at all and the comparison with MacOS X a bit random.”
Because I felt that post was SPOT on, after struggling to adopt desktop linux for 3 years I abandoned it for OSX for the exact same reason in the original post, and I know many friends who went through the same struggle as well.
If MacOSX is so less used as the author says, then why are we getting ideas from Mac in terms of UI, design Gnome.Unity especially ?. We should then get more of the ideas from Windows which has succeeded
Today an operating system consists of much more than basic character input/output. Todays basic IO also has a GUI,audio and network interface, with a standard API.
Speaking with the experience of attempting to transition to a Linux desktop platform :
For several years now, I’ve found a dismissive arrogance in the Linux community. This a broad generalization as there are certainly some welcomed exceptions, but the common attitude/demeanor goes something like this….
If you don’t know how to do something in the Linux environment, then you’re ignorant (true!) AND you have a chance to prove you’re worthy of joining the Linux community by successfully following the terse advice provided.
Not convinced of this? Consider this article author’s comment in his “Conclusion” section : “So I could go intro (sic) great detail for each of my bullet points, but I think they are quite self explanatory.” Self-explanatory to who? Thanks for nothing.
I don’t find this kind of attitude and lack of assistance helpful. Knowing that I will rely on the kindness of strangers in making the transition to Linux, I’ve decided that it isn’t a computer community that I care to join.
All that said — the attitudes and helpful assistance in the Linux community have been improving over the last few years, but it still has a long way to go.
Good luck with your desktop initiative. I sincerely wish you all the best since I really am motivated to switch to Linux. I understand this criticism may be hard to hear. The truth hurts. Ultimately, I hope you all are able to listen to and understand constructive criticism. I’ll keep checking back every few years to see how you’re doing.
FYI : I have paid my “assistance” dues in the Windows world when I spent over a year writing shareware fulltime that was modestly successful. It was free, full-featured, and helpful to both licensed and unlicensed users of the database application.
Hi, my comment wasn’t meant to be arrogant, just trying to keep the lenght of the post at a digestible size. If you want to to expand of any of the bullet points I be happy to do so here in the comment section.
“There was never a clear method of distributing software on Linux outside the distro specific package system.”
I’ve seen this complaint several times recently. What problems do you see with GNOME using existing cross-distribution packaging systems (e.g. http://0install.net)? Has a review of the various options been done? Is there some problem that can’t be overcome?
From the 0install.net FAQ: “Is Linux binary compatibility good enough to share binaries between distributions?
There are some problems in this area generally (not just with Zero Install)……..”
It also does not help you as an application developer at all with actually building your software.
I hope Linux never dies because I love it. Started with Ubuntu years back and now use Mint Julia, the old stable version that never crashes. LibreOffice, Opera, Movieplayer, Image Viewer, Nautilus file manager, all just work. Any out of control web site or stuck program gets Alt+F2, xkill, and away it goes. Never a BSOD. All updates and programs are free as in beer and free as in speech. Plenty fast on old, weak computers. No need for a pricey Mac at all. I don’t envy Mac users when I see what they have to pay for hardware and software. When I see windows users having to click away all those stupid “security” screens I feel pity for them too. What’s not to like about Linux?
This looks like a very sane and reasonable analysis.
Just one tiny bit of it I can directly corroborate as well: for many reasons, I would love to abandon Windows and never boot it up again (details probably boring to repeat, zillions of posts about them already). The hurdle that stops me converting to Linux sounds tiny when I describe it: it is a couple of vital (to me) problems about printing and scanning functionality: both of them somewhat hardware-related, and both of them involving interfaces between print/scan software and different kinds of application under Linux that make calls on their services. I’m getting pessimistic that there will be a solution, and maybe a block is the independence of linux developers, and the shortage of interest in specific hardware and specific h/w functions and the difficulty of organising cooperation between projects.
My simple opinion is that linux on desktop would be more successful if linux had proper binary compatibility existing in eco-system. Simply put – non-tech-savvy people do not compile things. They install things. Also they expect things to work after next OS upgrade. Backwards compatibility and binary compatibility are real weak points in linux, that is why, i think, it has hard time coming to desktop. And it will remain so until those two problems are solved, if they are solved ever.
I think that the MS monopoly doesn’t matter at all. The one and only problem is the linux desktop itself.
“they have managed to increase their market share with 2.5% in the PC market. I think that speaks volumes about the challenges posted by the first two items in my list above. ”
You have forgotten that OSX only runs on very expensive macs. Despite this they managed to grow in a shrinking market.
As long as the Linux Desktop is not coherent and stable enough as a platform, the large desktop applications will not get ported. Because of that the users can’t run the apps they want, and because of that the hardware makers need to bundle Windows with their hardware.
The one thing that’s needed to topple this row of dominos is to make the linux desktop be damn good. The rest will surely follow.
I don’t think the fragmentation of the Linux desktop is the reason for the decreasing interest in open source projects. Apple/MacOS may be responsible, I know some Linux users who have switched to MacOS for their programming/development environment. Personally I think it’s a poor (but currently popular) choice for developers, because the tool environment on Linux is much greater, most distributions have a great package management etc, while Apple just has its walled garden.
Eventually people will realize that MacOS is just as bad as Windows when it comes to freedom, additionally I think Apple and Microsoft don’t even want to put too much effort in their classical desktops. There isn’t much money to be made. They will continue to improve their appstore model and treat the workstation desktop as a step child. This might also drive power users back to Linux at some point.
As for the flamewar about Linux desktops, I couldn’t care less. I use GNOME 3, but for me it’s really the core of Linux that matters and which hasn’t even changed much since the beginnings. In my opinion desktops are overrated (all they do is launch a web browser/terminal and IDEs), giving up on one OS because of its desktop features just shows that you have no interest in classical workstation features whatsoever.
Two words: Dependency Hell http://en.wikipedia.org/wiki/Dependency_hell
I worked for many years on IBM mainframe operating systems and then on Windows. Both of these were excellent at backwards compatibility. Old versions of applications usually ran on new versions of the OS without problems. Yes, I know of exceptions – but these were not the norm.
This is sadly not the case with Linux. Besides that most Linux distros seem to see each release as some sort of fashion statement – just look at Gnome 3 and Ubuntu. For a commercial organisation the cost (including time to educate users) of upgrading is CRITICAL. We’ll see how long it takes Windows 8 to be accepted in offices…
BTW I use Linux nearly all the time and will probably abandon Windows. Apple? Too expensive!
Whilst your points are valid, think of the opportunities we have!
– Our nearest competitor is tied to expensive proprietary hardware
– The monopolist is undertaking a radical shift in its interface paradigm that will alienate a percentage of users, leaving them looking for a new platform
– Linux is more known that it has ever been known before, Red Hat, Android etc are household brands
Whilst Gnome 3, Unity et al arent for me (im a Cinnamon fan), the fact that a monopoly on the desktop is crumbling is a once in a lifetime opportunity. Lets not squander this opportunity by thinking our challenges are insurmountable, lets exploit the opportunities we have to create the best computing platform we possibly can.
installing an application is absurdly difficult. is it built right? is it the right package manager? why is there a tweak for this? why do I need to drop in to the terminal for that?
in my opinion this is the main factor… i’m just enough of a computer nerd to be able to use linux, and just enough not to hate having to tinker and tinker and tinker. i want it to work.
Without arguing the relative merits of Windows, OS X and Linux — they all have their strengths and weaknesses (and yes, closed ecosystems and significantly higher expense are both weaknesses), Linux is at a disadvantage in terms of overall market share due to primarily to lack of marketing.
Most people are simply unaware of it, it doesn’t come pre-installed on new pc’s, and they’ve (of course) never tried it.
For the developer standpoint, Linux is like a vast, unregulated laboratory where literally thousands of experiments are being born and terminated on an almost daily basis. A very small percentage (certainly less than 1%) of these open source experiments ever catch on and survive, but make no mistake, everyone benefits from the existence of the laboratory — including Windows and OS X users.
This is the incalculable value of what is termed ‘fragmentation’, and in spite of the frustrations it brings to some users who think Linux should be ‘more like’ Windows and OS X, I personally can’t imagine any other way this vast laboratory could function.
There is another issue that plagues both free and proprietary software when it comes the wintel platform, MS provides both incentives for “only MS” and disincentives for companies that may choose to give consumers options other than MS. MS contracts with companies essentially require them to put Windows on each and every PC they ship; providing alternatives, such as the option of a Linux distribution, would cost the company money which, due to the way the MS contracts work, the company could not recoup. Companies will not provide hardware without an O/S or a MS alternative as it would adversely affect their bottom line, hence a darth of linux based systems at home and in the workplace.
Why do not put more efforts and donations into improving Wine? It is improving not so fast as it could, if there were more kernel gurus participating in the project. Make it compatible to 90% of major Windows apps and Linux desktop market share will grew up considerably.
Or there is no hope that it will suppport Metro-applications anyway? However, the wide majority of apps are win32 binaries which runs in XP. XP / Win7 will have long life, even if Microsoft does not wants so.
All of this is predicated on the assumption that the goal was to “succeed on the Desktop”.
I’m not sure that was the goal. There was a certain degree of consequential superiority – “Linux is better than Windows so it therefore must replace Windows”. But the motivation behind Linux was to provide software that offered the user what proprietary software doesn’t – control and freedom. A brief glance at human history shows that the majority care little for either control or freedom.
So for me, the idea that “Linux has failed because it hasn’t replaced Windows” is a nonstarter. Pipe it to /dev/null where it belongs.
I think the Linux destop failed not for technical but political reasons. There are just too many companies and organisations with their own interests involved. There is no clear direction. Windows is a much more stable platform for software and hardware developers.
Thank you for the interesting analysis. I beg to differ on two points:
1. You do not consider whether Linux may be generally perceived more of a server OS in the enterprise/household. It is only anecdotal evidence but while I have always found more than a willing ear to listen to the idea of a Linux computer with server tasks, even IT-managers’ first reaction to a Linux workstation is ‘You can work on this?’. And these people have not performed a technical analysis or assessment of the available software. They are only accustomed to the (flawless) performance of Linux servers and thus can not believe that the same OS works for workstations as well.
Android may change that perception as it allows to point out that people already use “Linux on the desktop”, aka in a workstation capacity.
2. “An impression was created that Linux users would not pay for any software” – On the server side, this does not seem to be an issue. A lot of offerings for Linux so why does this impression seem to exist for workstations?
I think this ties into my first point: Commercial developers seem to “follow the market”, which is nothing more than an assumption that eventually there are going to be customers that use a certain OS. If you start from the onset that Linux is a server OS, “following the market” to Linux for an application developer is difficult as it runs counter to the general perception.
In my modest opinion, Miguel is seeing where the money is. He’s making a fair amount of it with his company Xamarin, which basically sells a .NET (Mono) framework for cross-device development.
Don’t get me wrong, I totally support what he’s doing, and he has done a whole lot for the foss community. He is just changing his mind and starting to “think different”. It happens.
P.S.: I have no Apple products and won’t have any of them. Ever.
I am surprised that nobody mentions the original eEE PC netbooks of 2008 which shipped with Linux and were an instant success.
The company that got most scared and worked with Microsoft in strong-arming the manufacturers into increasing the prices and specs of netbooks was Intel.
The reason is that Linux looks to be efficient and not a resource hog and breaks the bloatware-for-gigahertz, gigahertz-for-bloatware vicious circle of planned obsolescense and upgrades.
This removes the need to buy Intel’s latest and greatest processors, and therefore Intel hates seeing Linux running on its desktop/laptop/netbook processors.
The one time Linux really took off was quickly smothered by Intel’s maneuvering. The same Intel who wants Linux to run in the server room on its processors, so it continues to contribute to the kernel.
The elephant in the room can perhaps best be introduced with a short anecdote. A few years back I was webmaster for a small political party. Of the many interesting items to come my way was a list of responses to a Government mandate to install the latest version of Windows, generously provided FREE by M$, on all school computers. All school principals insisted that most of their current hardware could not run the new OS, and was effectively worthless. Furthermore, a condition of the deal was that the Education Department (here in Qld Au) would purchase only M$ software for the next four years, and it went ahead in spite of all objections. One can only wonder at the cause of such determined motivation by public servants.
I’ve also noted that lots of script-kiddie types get a real kick out of pirating M$ stuff, and love to offer it around as proof of their technical accomplishments. And the average suburbanite simply can’t be bothered learning anything new, especially when the only ones they know promoting it appear to be borderline nutcases – geeks at best.
So we at least have an idea of what’s wrong with Linux. So will anyone do something or just keep doing nothing at all?