Thursday, 16 April 2015

The sad state of the Raspberry Pi software ecosystem

When looking at possible channels for a future Language Spy product last week, I took a look at the Raspberry Pi Store. I've been a Pi enthusiast from the moment I heard about the project, indeed the Language Spy political corpus is driven by a pair of them.
The Pi Store is an app store powered by IndieCity which is available both on the web and through an application included in the Raspbian Linux distribution that most people run on their Pi.
I hadn't looked at the store since it was launched, so I was rather saddened to see it in something of a moribund state. Very little activity, an absence of the commercial software that was there when I'd last looked, not a channel that seemed to be going anywhere.
Of course, you might ask why the Pi needs an app store. After all, Raspbian is a Linux distro, and thus has all the huge library of Linux software available for it, at least all that will compile and run on the Pi's limited hardware. And in a sense you'd be right, in that a few seconds with apt-get can satisfy almost your every software need.
But the success of a machine like the Pi depends on more than just using an operating system with a much wider support. Platforms succeed when they create an ecosystem around them, and while the Pi has been very successful at creating a hardware ecosystem the failure of the Pi Store serves to highlight the sad state of its software ecosystem.
In the last couple of decades working in software companies it has been my observation that the most successful new platforms are those with the lowest barriers to development. In the 1990s the PlayStation trounced the cartridge consoles by not requiring developers to stump up for a huge inventory of plastic bricks for example.
In a way one strength of the Pi - its Linux OS - is also its weakness when it comes to the Pi Store. There are so many different paths to Linux development that the Pi Store lacks that crucial low barrier to entry offered by a simple choice. What the Pi Store needs is an "official" way to write code for it. A straightforward community-supported development path encapsulated in a single download from the store which contains everything needed to publish. In fact I'd go further, what it needs is two such routes, one for simple apps and one for more demanding apps, roughly analogous to a framework like Apache Cordova and Java respectively in the Android world. Maybe Cordova on Qt and Qt itself would fit the bill.
Meanwhile it's no use saying "Rubbish, everyone can just use [insert your pet 1337 dev environment here]!" when the people who are slowly becoming advanced users and wanting to code on their Pis might not have the required technical expertise to master all its nuances straight away.
In the way thus described the Pi Store could become a channel with a low barrier to entry. This is not to say that the "official" dev path need be the only one, more of a "You can code how you like for the store but here's a straightforward way to do it".
I won't be developing that Language Spy product first for the Pi Store as it stands, it would not make sense when other channels will give me a much better airing. The Pi remains a platform with some potential for a developer like me, but until some serious attention is paid to its app store I don't see it gathering its own software ecosystem.
I don't know about you, but as a Pi enthusiast I think that's a shame.