Author
Topic: What went wrong with Linux on the Desktop (Read 42043 times)

There's a very sobering article posted by none other than Miguel de Icaza (Gnome and Mono project founder in case you don't already know ) that pinpoints rather precisely what the problem is with Linux that it hasn't successfully managed to obtain parity with Windows and OSX on the desktop. Definitely worth a read if you're a Linux user or spectator.

In my opinion, the problem with Linux on the Desktop is rooted in the developer culture that was created around it.

Linus, despite being a low-level kernel guy, set the tone for our community years ago when he dismissed binary compatibility for device drivers. The kernel people might have some valid reasons for it, and might have forced the industry to play by their rules, but the Desktop people did not have the power that the kernel people did. But we did keep the attitude.

The attitude of our community was one of engineering excellence: we do not want deprecated code in our source trees, we do not want to keep broken designs around, we want pure and beautiful designs and we want to eliminate all traces of bad or poorly implemented ideas from our source code trees.

And we did.

We deprecated APIs, because there was a better way. We removed functionality because "that approach is broken", for degrees of broken from "it is a security hole" all the way to "it does not conform to the new style we are using".

We replaced core subsystems in the operating system, with poor transitions paths. We introduced compatibility layers that were not really compatible, nor were they maintained. When faced with "this does not work", the community response was usually "you are doing it wrong".

As long as you had an operating system that was 100% free, and you could patch and upgrade every component of your operating system to keep up with the system updates, you were fine and it was merely an inconvenience that lasted a few months while the kinks were sorted out.

The second dimension to the problem is that no two Linux distributions agreed on which core components the system should use. Either they did not agree, the schedule of the transitions were out of sync or there were competing implementations for the same functionality.

The efforts to standardize on a kernel and a set of core libraries were undermined by the Distro of the Day that held the position of power. If you are the top dog, you did not want to make any concessions that would help other distributions catch up with you. Being incompatible became a way of gaining market share. A strategy that continues to be employed by the 800 pound gorillas in the Linux world.

This killed the ecosystem for third party developers trying to target Linux on the desktop. You would try once, do your best effort to support the "top" distro or if you were feeling generous "the top three" distros. Only to find out that your software no longer worked six months later.

Supporting Linux on the desktop became a burden for independent developers.

But at this point, those of us in the Linux world still believed that we could build everything as open source software. The software industry as a whole had a few home runs, and we were convinced we could implement those ourselves: spreadsheets, word processors, design programs. And we did a fine job at that.

Linux pioneered solid package management and the most advance software updating systems. We did a good job, considering our goals and our culture.

But we missed the big picture. We alienated every third party developer in the process. The ecosystem that has sprung to life with Apple's OSX AppStore is just impossible to achieve with Linux today. ...

Part of the problem is illustrated in the comments, see how many people have commented 'but I am typing this from a Linux desktop'. If those people truly believe someone reading a Miguel de Icaza article counts as success they are missing the point of what success means in today's world (whether we agree with that definition of success is secondary).

But we missed the big picture. We alienated every third party developer in the process.

NAILED IT!

More good points in there, but that's really the major one. You have to attract developers to your platform. The number of developers on a platform determines the success of the platform. Our first big lesson there was Atari vs. Intellivision. Atari had more people developing for it, so it had more games, so it had more customers. Nothing has changed in the platform wars. The rules are still the same. This is why Microsoft bought a little known web browser company's product - they understood that the web was a platform.

I've gone off in the past with my blabbering and ranting about the "Linux mindset" (or whatever), and this has always been at the core of my complaints. I posted in the Developer's Corner a while back about how horrible it was to try and create a distribution package (installer) for Linux. God... Still haven't figured out anything sane. Maybe I should just write one...

Miguel is a minor diety. He has contributed so much to computing. I've spoke with him before, and he's really an extremely friendly and helpful person. If you drop in the MonoTouch/Mono for Android IRC you'll see him regularly. And if you participate, chances are that at some point when you'll be talking to Miguel. I have a lot of respect for him.

However, I don't think that Linux is beyond salvation. If people in the Linux community would listen to stuff like this, there could be change there and a greater focus on attracting developers to the platform. Linux has the potential to destroy Windows and OS X. It just isn't being taken advantage of at the moment.

In the movie "Megamind", Megamind has some keen insight... --> The difference between a villain and a super-villain is "PRESENTATION!"

Apple understands this much better than just about any company out there.

For the record... "command line" or "terminal" is as sexy as a gorged boar vomiting up rotten potatoes and sludge. And you still need to use the terminal on OS X... god... I was so disappointed when I got my Mac... I really thought that they had some better degree of polish... But that only exists for doing the simplest of tasks.

Still... Apple has some decent presentation. Animation on an iPhone/iPad/iMac is pretty damn good. It certainly beats Windows or Android.

Typically, when I look at Windows vs. Mac applications, the Windows applications are FAR FAR FAR ahead of the Mac ones. Much better functionality. What I've found is that the Mac takes forever to do anything at all, and forces you to take your time more as you are so limited. Windows lets you run full steam ahead. As a result, software on a Mac tends to have a degree of polish because if you're spending that much time on it, a bit more doesn't matter. (I'm guessing here -- but from what I've seen, this looks about right.)

I'm still rooting for Linux though. And still tied to Windows... dying to get off it...

I hope Miguel is being overly pessimistic. I really don't want to live in a world of walled gardens.

If you build an environment that's expensive and painful for application developers then you won't have many decent apps. Should be common sense, really.

+1

What I think is funny is that backward compatibility doesn't have to be uninnovative. Figuring out a way to combine an old API with a new one and not breaking anything can be very ambitious and innovative. While none come to mind offhand, I know there have been a few rewrites of system components in Windows so that they are backward compatible and retain legacy behavior.

There, I've seen things like:

methodnamemethodname2

I think hackers and/or developers embracing OSX reveals the singular truth about their interest in Linux: It was always driven by a kneejerk hatred of Microsoft. There is nothing on earth less open than an Apple system.

Pretty much.

Hatred for Microsoft: Haven't seen that with people who contribute.

Interesting. Dunno.

Thank you Miguel. I have been saying this for years. Packages are one of the biggest problems on Linux. I should be able to go to a website, download a piece of software and have it work.

I install an operating system to use applications.

Again, nailing it.

From Miguel:

I have never received a payment from Microsoft or Apple. If anything, I keep giving both money for their products.

No religious/hard-line/extremist group likes introspective criticism or anything that contradicts their long held beliefs. So the only possible explanation that you guys can muster is "how much does Microsoft pay you".

I am not sure how it is now. Some 7 or 8 years ago when I tried Linux (don't remember which distro) desktop OS, I had to copy and paste 3 or 4 lines of code to eject the CD tray. I stopped using it from that day onwards.

I am not sure how it is now. Some 7 or 8 years ago when I tried Linux (don't remember which distro) desktop OS, I had to copy and paste 3 or 4 lines of code to eject the CD tray. I stopped using it from that day onwards.

Is no one going to mention how MS (and maybe Apple) worked hard to make sure that Windows was the only platform that ran the industrial *enterprise software*? Notice I'm not saying "apps" as in "app store cute little thingies". From what I hear the gaming envionment is similar.

A platform needs "anchors", it's the same way the best malls are built. Sure you can get those little strip malls that kinda sit there and be useful, but the really good ones are anchored by 1-4 big ticket stores that really pull momentum. I don't really hear a lot of high powered raving about "Macs". I hear "App Store" = Mobile small useful widgets. Oh, I'm sorry, that used to be called Shareware except now you don't get to try it for free!

If everyone is going to "unify", Canonical is raising controversy by trying to position themselves as the "Linux-but-don't-tell-anyone" OS.

Hmm...I guess all those servers and clusters and supercomputers don't count as enterprise... And what "enterprise" product has Apple ever had besides a "me too" server I don't even know if they distribute any more?

Well, I meant more of the software package side. We all know that Linux rules for "low level servers". I am talking more about the $XX,000 packages. My own specialty is the construction package Timberline. I've heard the same complaint about high end AutoCad. I plead lack of knowledge if Photoshop Pro has a Linux version yet. I bet SAP doesn't. Or PeopleSoft.

I don't pay attention to such moan lisa rants. I personally found no bitter experience on linux for 6 months of full switching. I can't imagine my time with OSX and Windows for 6 months without suckin at all. OSx and Win are crap for me, that's all. :p

I don't pay attention to such moan lisa rants. I personally found no bitter experience on linux for 6 months of full switching. I can't imagine my time with OSX and Windows for 6 months without suckin at all. OSx and Win are crap for me, that's all. :p

Then you rule. I 50% gave up on Linux because I can only retain tech details for like 3-6 months, maybe a year if I am lucky, and my last company never used them so it became one too many projects to keep in my feeble head. :/

I am talking more about the $XX,000 packages. My own specialty is the construction package Timberline. I've heard the same complaint about high end AutoCad. I plead lack of knowledge if Photoshop Pro has a Linux version yet. I bet SAP doesn't. Or PeopleSoft.

Ah! Sorry. I mostly do the "plumbing" end of the business so I don't make it down to userland too much.

But you may have a point in that BSD (and later Linux/GNU) came into existence partly as a rebellion against all those 5-digit financial/business programs. So I guess there is a philosophical semi-aversion to getting too much into that type of development for most FOSS types. However, the CRM market does seem to be fairly busy for the NIX cowboys. And the CGI/MoPic industry is in love with Linux currently. Mostly because it saves them mega.

As far as the vertical app markets, I'm not too up on what's happening there. Most of the industry specific software is moving over to web-based apps so I think the question of which OS to use for that category of software is becoming more and more a moot issue as "open web" is now becoming the new frontier for the old "open source" crowd.

And why not? Seriously, most businesses would prefer not to have to maintain their own infrastructure just to host mission critical applications. Server rooms are noisy and expensive to operate. In-house IT staff and salaries remain a overhead expense even though the average salary has dropped significantly in the last five years. Who really wants to deal with all that if it can be handled with better flexibility and zero-time failover by SaaS providers provided the price and reliability are there? (Competition will make sure it is BTW.) It's where the industry is going. Mainly because it makes too much sense for too many businesses to do otherwise.

So I guess I'm saying when it comes to enterprise applications, Linux is largely irrelevant. And Windows soon will be. Which is why Microsoft is putting so much effort into it's cloud product line. I'd guess within another 15 years thin clients and a cloud infrastructure will be the norm for most businesses. Which will then lead to that interesting little paradoxical situation where only the largest and the smallest companies will be hosting their own IT. Everybody else will be contracting it out as if it were just another P&E expense like electricity or trash removal.

I've whined since day one (1) about Linux documentation and the inability of the developers to create clear documentation for new/intermediate users. 'Twould seem that I've been complaining about a splinter w/o ever bearing the whole cross.

'Tis to be hoped that enough involved folk will read Miguel's diatribe (?) and adjust accordingly ... won't be holding my breath, but I can [forlornly, mayhap] hope.

Yep ... same boat. But can't help but think there's always going to be a non-enterprise market, and OS will matter there. A lot of Mom'n'Pop shops simply won't be able to afford the SaaS overhead. How do you think Quicken or Peachtree products got to be so popular? Really big players don't use 'em, they tend to roll their own, at least the ones I know do.

Methinks there'll always be a small to mid-range market. MS and Apple are always going to be selling to that market. To my mind, that's an area where Linux could be made to shine. I'm not talking about servers, *nix owns that arena. But desktop small-shop businesses are always going to be there, regardless the political/business climate. I've always thought that area to be a prime target for *nix developers: unfortunately, they don't pay much attention to my thimks .

I don't pay attention to such moan lisa rants. I personally found no bitter experience on linux for 6 months of full switching. I can't imagine my time with OSX and Windows for 6 months without suckin at all. OSx and Win are crap for me, that's all. :p

Then you rule. I 50% gave up on Linux because I can only retain tech details for like 3-6 months, maybe a year if I am lucky, and my last company never used them so it became one too many projects to keep in my feeble head. :/

The reason switch was simple is because I stopped paying attention to desktop app development (which is hard for many windows developers) and focused on web development. As you know linux and apple has lots of tools and support and community documentation for web development, it becomes easy on that front. Also stopped hopping for desktop apps like I used to do on windows. Instead of consuming I have taken direction towards producing in web development. I am taking work specifically in web development niche. I have less apps on ubuntu setup and that is why I am doing fine with unity as well.

I'd like to (daydream?) that Linux-On-Desktop has "exactly two chances left". Of course, the problem with EXACTLY two chances is that if you ruin both of them, you're hosed forever, even if there is Wailing and Gnashing Of Teeth for years to come. Well, let's call it Two-And-A-Half Chances. (Movie Puns, go to the Humor Thread!)

The Half Chance is of course Windows 8. With a UI so divisive, rather than learn "Unusable crap" that happens to be from Microsoft, why not learn "Unusable crap" (notice the quotes! In my style it means context!) from Linux.

The first Big Chance is if China ever gets a grip and quits trying to lock down the internet, they could China-ize Linux into some distro and powerbomb the world with $200 machines with X Chinese distro that becomes the new lowest common denominator. Sweatshops, and the works. Suddenly even Canonical might have to get a grip if some Chinese consortium floods the market with 17 times their production. Then it will be the new DOS, and because the source is deliberately "not agressively copyright protected" (Go China! It's your distro, and if you Officially Don't Care, off it goes!) then it will be "that fourth platform businesses need to support".

The other Big Chance is if Microsoft somehow makes 8 too many mistakes and implodes and doesn't get a bailout. In a Post Microsoft World, sure Apple will be having fun with their cute mobile market, but that gaping PHB "no one ever got fired for recommending Microsoft" hole will have to be filled, and I don't quite think Apple has that locked, not yet. So then there is room for about a 4 year shakedown on the best Successor to Microsoft, and some distro of Linux might be able to pull that off.