Linux on the Desktop
Daywalker Designs
Posts: 3,586
Linux will never rival Windows or OSX.
But that's the thing. A few years ago some "Brand Name" computer companies made a big deal about offering some computers with Linux installed. No one bought them.
Linux is still evolving. The issue with Linux isn't that it isn't 'ready', as Ubuntu and CentOS have shown. It's that truly user-friendly configuration and installation CANNOT exist with all the multitudinous flavors of linux that exist today. As long as Linux is fractured, it will never take over the desktop market.
If tomorrow, ALL the linux users agreed that Distro X would be the only one, and that ALL current linux systems would be migrated to it, then it would very quickly start to gain traction. Linux already dominates the Server niche, Desktop and Workstation is where it lacks. But with the current dozens of distros out there, automating configuration and unifying tools and formats just isn't ABLE to happen. And THAT is why it isn't competing seriously with Windows and OSX.
And unfortunately, that isn't going to happen any time soon. Most linux users have their 'favorite' distro, and are loathe to use any other. Mint afficianados won't touch Ubuntu, RedHat backers can't stand SuSe....Slackware, Debian, CentOS, and more and NONE of them can agree on much. The only thing that unifies them is the Linux Kernel. There is some overlap about certain other parts, but it's still very different worlds.
What is needed is someone to build a linux distro that is well-thought out, has lots of support for hardware, Media licensing, simple GUI based configuration and setup utilities, and a unified GUI design. And then for ALMOST ALL exisitng Linux users to convert to it. Then MS and Apple would have some real competition to worry about......
I disagree. What we often overlook is that underneath the various user interface tweaks, most often the difference between Linux distributions is kernel specfic tweaks from a given vendor and the core package management tool used. CentOS is Red Hat Enterprise Linux (literally minus the Red Hat logos), Ubuntu/Linux Mint/etc. are Debian. The biggest issue is the packaging tweaks that can happen between derivitives of the core (upstream) OS base.

Comments
And I disagree with your disagreement. While CentOS is a modified RedHat, and Ubuntu and Mint are derived from Debian, there are still extensive UI/configuration/etc differences between them, which can easily result in incompatibilities. I've run into this before (worked as a developer at a cross-platform shop, we supported about 7 different varieties of Linux and BSD) and it makes for problems for anyone who isn't really familiar with Linux (which would be the majority of desktop users.)
Until things in the Linux world are unified enough that supporting Linux is simply having ONE build that will run consistently on ANY Linux install, it is going to remain a small player in the Desktop/Workstation market. The GUI has to be consistent as well. Software companies don't want to distribute full source, so executables and installers have to be targetable for a single Linux platform, so it 'just works' without requiring the end-user to know how to configure and build the whole thing.
This can be done; it's simply a matter of software vendors making a firm decision to support one common Linux distribution that provides support for as many closed source drivers as practical. That will force users that want to use those applications to make a choice of whether they really want the product or not.
There are absolutely ways to make software for all linux distros. The primary problem is that the majority of programmers come from Windows environments and tend to still program from a Windows mindset. This is evident by the way that apps are moving away from the Posix way of operating to a "single user computer" method. There is no consideration about multi-user concerns such as permissions, windows manager disparity, remote network operation, etc; simply because these ideas are foreign to their experience. Most programs don't even allow for the ability to restrict access to features based on group or user settings anymore. In my mind, this is a failure in education where the teachers/institutions have become so lazy that they no longer teach computer science from a theoretical standpoint that can be applied to many environments. These people/places have become "job placement" centers where they cater to one specific mindset in an attempt to get their students into the "workforce".
The second problem is that there is very much a tribal mindset inside many Linux app development teams where they DELIBERATELY use libraries that only exist in their preferred distro in an attempt to lure others to their preferred environment. In most of these cases, the programs will not even operate in a different version (next/prev) of the distro or even in the same distro with a different window manager. This is endemic in the Ubuntu setup right now. In most cases, there is absolutely no need to use the specific library version(s) called since the operations can be done with older library versions, or different libraries that provide the same features that exist more compatibly.
Once these people mature into programmers that understand that programming is more than "writing for themselves" applications will become more useful.
Kendall
Kendall,
Not so much a Windows mindset as a DOS one, from my perspective. Even with all the changes in Windows since the release of Windows 98, there are still programmers out there that treat Windows as though it is still a shell over DOS, rather than an OS with Posix style security options. This is especially evident in software meant for the Amateur Radio hobbyists, where many such applications are installed in the root of the Windows C: drive in their own folders instead of being designed to read their user specific configuration data from the logged in users home directory. The few applications that I know of that actually do this do it because they are designed from the start to be cross-platform.
I wasn't going to comment because I'm just a user who doesn't do much programming. At most, I'll dabble in a little bit of scripting and use the terminal if I must. But, I've recently learned about AppImage and if they can set up a program to work on any Linux distro then I know it is possible for others to do this as well. While AppImage may not be the best solution, I have no idea if it is or isn't, at least it does go far in proving that it can work and it is possible to have a program run on a Linux desktop no matter which distro you are using. I do know that, when I needed to find a way to use Gimp 2.9 without totally destroying my stable version of Gimp 2.8, I found an AppImage version of Gimp 2.9 Beta and it works wonderfully on my distro which is Linux Mint 18. From everything I've read from others testing out the same package, it is working successfully on a wide variety of Linux distros. I've not read anything in the reviews yet of any distro being completely unable to use that particular AppImage build of Gimp, yet.