Why are certain apps yet to come to Linux, and what is holding back the community from producing more alternatives? Let’s find out.

1. There Are So Many Versions of Linux

When you develop software for Windows, you only need to test your software on a handful of systems: the latest version of Windows, the previous one, and maybe, depending on whether your program is targeting very slow-moving businesses, the version before that. It’s relatively straightforward.

On Linux, there is a sea of different versions, known as distributions. Even if you limit yourself to the most prominent ones, that could still mean supporting half a dozen distros.

Let’s say you decide to support only Ubuntu, the most popular version on personal computers. With Ubuntu’s release schedule meaning an upgrade every six months, even that can be more work than it sounds.

Universal package formats have improved the situation, but there are still multiple options. If you’re targeting Ubuntu, it makes sense to go with the Snap format, but most other distros have more of an affinity for Flatpak instead. A few have settled on AppImage.

In theory, apps in any of these three formats can run on any distro. But let’s say your distro ships an older version of the background components Flatpaks need to run. That means an app may lack the functionality that the developer expects you to have. The situation is improving, but Linux still has ways to go to make the landscape easier for app developers.

2. Linux Has an Unclear Funding Model

Linux is as much a philosophy as it is an operating system. Technically Linux isn’t even an operating system, but a kernel, the aspect of your computer that enables the buttons you press to actually do something and your screen to show what’s being done.

The desktop interfaces and the apps that we use have really nothing to do with Linux. You can run much of the same software on FreeBSD, which doesn’t use the Linux kernel—and you can’t run most of these programs on Chromebooks or Android, which do.

The philosophy underpinning desktop Linux is the concept of software freedom, that code should be visible and freely shared. This is the only known way to ensure that programs aren’t doing something shady and to actually give people ownership over their devices.

A result of this is that it’s difficult to charge directly for software. You can sell a program under a free software license, but since the code is freely available, there is nothing to stop someone else from compiling and distributing another copy of your program that doesn’t cost money.

As such, people developing Linux and related software have had to experiment with different ways of funding their work. Many are volunteers who fund their work with a different full-time job. Many volunteers are students. Some people land jobs where they are paid to develop one aspect of Linux, but in their free time, they contribute to another. Only a few developers are able to bring in enough donations to compensate for their efforts.

There isn’t a clear funding model for someone looking to make a living creating apps for Linux like they can for other platforms unless these apps are proprietary, a type of software many Linux users want nothing to do with.

One Linux distro, elementary OS has a pay-what-you-can approach for the free and open-source apps released in AppCenter (pictured above), but so far people have not paid enough for app developers to consider this a full-time job.

3. There Is a Lack of Money to Go Around

This unclear funding model is part of the reason many Linux communities don’t have access to enough money to do the kind of work they wish to do. People working on a particular desktop environment may want to design a full suite of apps that integrate with their interface but lack the resources to pay people to do the work.

This lack of resources means free software communities are primarily reliant on volunteers to step up. If there isn’t a volunteer with the interest, the time, and the skill set, then often times the desired software doesn’t get made.

This also leads volunteers to cooperate on certain programs. This isn’t necessarily a bad thing. But if you’re wondering why there aren’t more open source alternatives to LibreOffice, that’s partially because it often makes more sense to volunteers, and even companies employing a handful of developers, to contribute the functionality they want to LibreOffice than to make another suite from scratch.

4. Open Dialogue Comes With Disagreements

With volunteers doing so much of the development on Linux, and with both the open-source philosophy and financial constraints pushing people to work together, a great deal of communication is necessary for all the pieces to come together.

Since people often can’t attract paid developers, they have to convince people to volunteer their time for ethical or practical reasons. This means blog posts or in-person speeches that can have the effect of inspiring some and putting off others.

Open source development also tends to happen out in the open, over mailing lists and the likes of GitHub and GitLab. These conversations often involve differences of opinion. Rifts can form, leading developers to go develop their own interface from scratch, duplicating work that someone else has already done.

This is part of the reason Linux has so many interfaces that technically do the same thing, just in different ways.

All of this is before the people who use all of this software get involved. Users can have passions that are even stronger than the developers, especially when they feel powerless that a beloved program is changing its look or a feature they rely on is going away entirely. Some developers face so much hostility that they quit free software development due to burnout.

5. The Linux Desktop Has Low Market Share

Of course, it’s not only software developed specifically for Linux that people desire. Many want access to the same software they use on Windows and macOS, such as Photoshop. Some of these programs do make their way to Linux, such as Steam, but many do not.

Linux’s relatively small market share is a big reason why. While Linux is dominant on servers and supercomputers, only a relatively small proportion of people use Linux on their personal computers. This still translates to millions of people, but many companies determine it’s just not worth the cost of paying developers to maintain support for a third operating system when they’re making enough money already.

6. Businesses Have Copyleft Licensing Concerns

Some companies have reservations about the copyleft licensing that most software on Linux uses. These organizations may want to develop software or integrate certain components, but they fear ending up legally required to open source all the code in their proprietary program as a result.

Many companies have an aversion to the GNU Public License, which requires any software which uses code shared under the GPL to be made open source.

Companies that do utilize free software often prefer code available under permissive licenses, like MIT and Apache, that permit people to use the code with no requirement that the resulting program become free and open source itself.

For a company whose business model revolves around the sale of closed source code, misreading a free software license and opening themselves up to legal litigation can be a threat to the company’s bottom line.

Nonetheless, Linux App Development Goes On!

Despite these challenges, Linux continues to attract software developers. The free and open nature of Linux makes it a great place for a student to learn. Open code also makes it possible for people to use existing apps as the foundation for new ones, rather than starting from scratch.

Then there are people who agree with Linux values, who can’t bring themselves to ultimately help Microsoft, Apple, or Google make more money. This keeps the ecosystem vibrant and active, even if you have to be willing to try out apps whose names you’ve never heard before.