apps on a shelf

A blog like mine thrives, in part, on there being a steady supply of good quality native Linux apps to write about.

We do news too of course, and tutorials, how tos, lists, eye candy, and even the odd opinion piece (like this post). But I know you like reading about new and updated Linux apps, and, to be fair, I like writing about them.

And yet… Where have all the Linux apps gone?

Bear with me as what follows is more of a ramble than a coherent essay. For background, I’m writing this on day four of an enthusiasm drought.

Is Linux App Development in Decline?

We’ve been writing about Linux apps that work well on Ubuntu (and most other distros too) since 2009 and things …Well, they aren’t what they were.

Once up on a time us writing about “yet another music player” was a meme-like weekly occurrence.

Same goes for video players, download managers, instant messengers, torrent apps, image editors, Twitter apps, image viewers, text editors, photo uploaders, etc — you name it, we probably wrote about it! It seemed, for a long while, that app developers were out there en masse, crafting quality apps to satisfy the full gamut of end-user needs.

These days the availability of new native Linux apps which cater to users of the most popular Linux distributions seem few and far between.

Is Linux app development is in decline, or is that simply the wrong question to ask?

Electron — A New Hope

Cumulonimbus is a desktop Podcast app built in Electron

Contrary to popular belief I personally prefer to use native Linux apps over ones built in transposable (and resource intensive) frameworks like Electron (though Electron, as I’ve opined on before, does allow a different type of developer to create apps that we wouldn’t otherwise have).

So, in-spite of some commenters’ suggestion of bias or favouritism, the only reason you see so many Electron apps grace these pages is because, without them, I’d have precious little else to write about on the apps front.

Even the great open source stalwarts like Clementine, Geary, VLC, FeedReader and Corebird are only updated now and then. GNOME’s core apps, for all their relative innovation, only receive proper change-logs once every 6 months or so.

New native Linux apps seem to be rarer than a Hannah Montana Linux user. Why?

Part of the reason could be that we’ve changed

I posit that you can tally the decline in variety of Linux apps directly against the the rise of Android and iOS. We’ve offloaded tasks from our computers to our phones, tablets and smart TVs.

And many of the hobby developers who previous scratched their development itch with Linux, now do so on mobile.

Plus, more and more of what we do with our computers can be done through a web browser. Services are “locking” us in so as to better control (and learn from) our experiences, deprecating or not providing accessible APIs and endpoints in turn, from Facebook Messenger to Netflix.

So is lamenting the loss of ever-more music players and video apps out of place? I don’t think so.

Linux users are diverse, so shouldn’t our apps be too?

CMUS plays music, so why use anything else?

I know that a few people reading this will get a bit sniffy about my wanting to see “more” apps when there are, for most use cases, existing options.

The “Why do we need X when I use Y?” argument.

It’s not an unreasonable viewpoint but me, I’m old school. Part of the beauty of personal computing is that you it can be truly personal; i.e. we can use the kind of apps that suit our needs.

I prefer to browse my music visually, by album art. You may prefer a playlist-led approach, or get everything you need from a CLI player.

Fact is, we all have different needs — it’s part of why we all chose Linux, right? And a diverse, vibrant app ecosystem reflects the diverse, vibrant user base.

I don’t believe we’ve all become homogenous over the past few years. So why else might app development on Linux seemingly slowed?

Do we live in the web browser now?

Netflix running in Google Chrome on Linux

In the era dominated by streaming services like Netflix, Amazon Prime and YouTube; Spotify, Apple Music and Amazon Prime Music, the “need” for a desktop app of such ilk is lessened.

Making the lack of new apps in these categori more of a symptom of wider change in how we “use” computers.

  • We stream music = fewer MP3 apps
  • We stream video  = fewer video players
  • We share photos on social media = fewer photo uploaders
  • We chat using protocol-specific services = fewer IM clients

And so on.

And yet it’s not all doom and gloom. Linux app development isn’t dead, it’s just become a little more niche.

Oh there they are, on elementary OS!

While I do think that, overall, fewer app developers make Linux apps than before, those that are sticking with the platform are no longer targeting the most popular Linux platforms.

A stack of exciting, well designed, feature-filled native Linux apps are being created — but they’re being created for a specific Linux distributions like elementary OS.

Just look at this selection of apps and tell me when you last saw one of these recommended to or used by a Linux Mint user, or a Fedora fan:

What is it about elementary OS that makes app devs want to build apps for it, and pretty much only it?

Well, it has decent developer documentation for one; it doesn’t break core APIs every few months; and it provides a consistent look and design across all apps that run on the Pantheon desktop environment.

It also has a community of users who care and encourage new developers, rather than chastise them for making “yet another” app of a certain type.

Now, to be clear, I’m not criticising elementary for being the focus of (seemingly most) modern Linux app development outside of the GNOME desktop. Deepin is another Linux project that has a great set of home-grown first-party apps that, without using extraneous PPAs and obscure dependencies, aren’t readily available on Linux distros like Ubuntu.

And even Linux Mint is getting in on the action too.

But it does …frustrate me.

I regularly come across apps ‘designed for elementary os’ on Github and know that a lot of readers would like, love, and/or make use of them. Yet I can’t pimp them without providing a massive dollop of “How to upgrade half your Ubuntu distro to a different distro with development packages and experimental PPAs.”

And as this is “OMG! Ubuntu!” and not “OMG! Turn Ubuntu into Elementary!”, it wouldn’t be right to do that.

The majority of elementary and Deepin apps are open source. They can be made to run on other distros — it’s just that there are some really impactful “trade offs” in doing so.

The first being they’re a hassle to build on most Linux distributions as they either require or rely on non-standard components, like the ‘elementary SDK’, the custom GTK library ‘granite’, or some other component not widely distributed in the standard archives of major Linux distributions.

And then there’s appearance: elementary OS apps tend to look terrible under any GTK theme that isn’t elementary (as we saw when we wrote about NotesUp).

Certain Deepin apps, meanwhile, rely heavily on APIs within the Deepin desktop environment or hosted on a Deepin server somewhere.

“So, what?”, you (rightly) ask.

The answer is ‘I don’t know’.

I guess I’d like to see open source app developers embrace open source. The kum-by-ya stuff like working together on new APIs, submitting patches upstream, devs working to improve toolkits instead of forking them, and so on.

Sadly I get that that stuff is hard and, in some cases, impossible. Upstream GNOME developers are steadfast in what they want to achieve. Qt is Qt. You can’t blame some distros for opting to swim their own route rather than battle on upstream.

It also doesn’t address the wider fact that we simply don’t use computers, Linux, Windows or Mac, like we used to, and some of the tasks we use them for now happen in a browser.

But it is a shame that some the very best Linux apps that are still being built right now are only targeting distro which have tens of thousands of users at best. Ubuntu has over than 20 million. Fedora has more than 8 million. Even Linux Mint has several hundreds of thousands of users.

Wouldn’t it be great if these new apps could land in the hands of more users? Cos right now it’s very much a case of “look but can’t touch”.

Elementary OS apps don’t work well on other distros

With Ubuntu’s popularity (apparently) in decline, and the rise of bespoke independent distributions like Void Linux and Solus on the rise, perhaps developers targeting niche distro is symptoms wider, more general trends.

And who can blame them with the turbulence in trying to target the ever-evolving GTK stack and having to contend with API breaks is. This is supposedly over, and yet GTK 4 looms large.

Even Ubuntu, after a couple years of shepherding developers to NIH APIs and Qt/Qml templates for its mirage’d mobile future, no longer has game in app development. It’s now focusing on app distribution with Snaps.

Snaps to the rescue?

VLC Snap App

Snaps, like Flatpak, may just offer a glimmer of hope to those of us desperate to benefit from this new breed of open source application targeting bespoke distros like elementary — without needing to switch lock, stock and distro!

Snappy and Flatpak app makers to package their app for use …anywhere, with entire app frameworks, bespoke dependencies, and other necessary non-standard cruft contained within — no PPAs, or Git branches, or package conflicts necessary.

It has a downside (bulk, duplication) but it may help pull things back to an accessible middle ground.

For example, a popular presentation creation app for elementary OS was recently made available as on the Ubuntu Store. It has issues, crashes a lot, but it’s somewhat functional.

A sign of things to come? Let’s hope.

There’s no real point to this post beyond putting my frustrations into pixels to work around my current malaise. If you’ve read this far you’ve earned the ‘patient reader award’. 

deepin elementary