We're in something of a Linux gaming renaissance right now. Not only are a lot of games browser-based, like the EA games featured in the Ubuntu Software Centre,
but the Humble Indie Bundle
proved that making your games cross-platform is worth it. Add to that online stores like Desura
-- basically cross-platform Steam for indies -- and Gameolith,
and gaming on Linux is better than it was during even the Loki
(Goddess, I wish that I'd picked up Sid Meier's Alpha Centauri for Linux back in the day.)
The app situation on GNOME, though, isn't nearly as good. We've got some shinies,
but we don't have that many, and we certainly aren't getting bundles of them every few months. As someone who's trying to empower application developers by writing tutorials, this concerns me. Who's going to read what I write, and what are they going to make with it? Most importantly, when do I get to use their apps?Developers don't rush to new platforms
That's the name of an essay by Marco Arment,
developer of Instapaper for iOS. In it, he sums up the reasons why iOS took off like a rocket:
- Dogfooding: We use iPhones ourselves.
- Installed base: A ton of other people already have iPhones.
- Profitability: There’s potentially a lot of money in iPhone apps.
All three of these factors converged to create the Linux gaming renaissance. Live CDs and dual-booting made it easy for game devs to experiment and gain familiarity with Linux, and distros like Ubuntu (which pushed brand awareness and ease of use above all else) elevated its public profile. Partly thanks to that, the installed base for desktop Linux is now higher than it's ever been; and by showing their profits from each platform right on their homepage, the Humble Bundle crew empirically demonstrated #3.
As far as I can tell, though, most of the above does not apply to most Linux distros. The one which comes closest is, again, Ubuntu, partly via aggressive promotion of existing GNOME developer tools and the promise of exposure through its Software Centre. Beyond that, though, Quickly and Launchpad also combine to create a packaging environment that -- while unattractive to git veterans -- is apparently easy for newbies to learn. (Which, Ubuntu's focus on newbies is probably another reason why Python's the language they push the hardest on developer.ubuntu.com.)
This is all well and good for Ubuntu, but I personally like GNOME 3 better than Unity and I like Fedora's implementation better. I'm guessing most of those reading on Planet GNOME are with me on at least the first part of that.
So, what can we do to help get apps written that use awesome GNOME technologies?Lower the bar to entry
One reason things like Desura are so important is because "packaging", from what I've gathered of it, is a chore. Extra work that you do to make sure people can use your app, which you then have to repeat for each distro. Not only does this favor more popular over more focused distros, thereby creating a winner-take-all feedback loop, it also creates extra work and confusion for devs, who already have five different languages
to choose from in GNOME documentation and no clear guide for which one they should use.
You'll note that in the case of Linux gaming, the biggest first step was bringing in enough newbs for the market to matter. But the assumption behind most of our docs seems to be that readers won't
be newbs, and will have a clear goal in mind ("I want to contribute to X project which I know uses Y language") when visiting. We assume they're familiar with IRC and mailing lists, that they know how to use git, that they have a high threshold for frustration (which is implied in that last item), and that they're comfortable browsing source sometimes in lieu of documentation. We also assume they're console fans who use Emacs or Vi; or at least we seem to, since Anjuta and Glade (our more newbie-friendly dev tools) don't support the latest GNOME widgets yet.
But by acting on these assumptions, we boil our developer base down to only
the people exactly like that. We leave out the Girl Scouts,
the 13-year-old whiz kids,
the hackers of tomorrow who have no idea that they, too, can write apps. And who aren't being taught, because we think they're too short to ride
and that's apparently how some of us like it. Like the commenters on Máirín's blog entry linked there, who "don’t want incompetent users [sic] life made easier" and who -- bless their hearts -- think that the reason they themselves are competent is because they're just awesome like that, as opposed to because they fit the narrow profile of the kind of person who thrives in their "meritocracy."
(Let me know if I ever use that word outside of scare quotes, BTW. If I do, it was a mistake.)Piggybacking to success
Making GNOME development more accessible (and fun!) for newbies is what I and some of the other interns are here for, although you're totally welcome to help if you like and there's a whole page set up with instructions.
Beyond that, I mentioned Desura but what I'm really excited about is the Mozilla Marketplace,
which is going to be the "app store" for the Firefox browser and Boot to Gecko
devices. The web is the world's biggest and most awesome open-source platform, and GNOME's browser, Web, already has an app mode, plus GSOC intern William Ting is working on building in Firefox Sync.
I don't know if non-Mozilla browsers will be able to access the Marketplace, but it seems like integrating it into Web would be a logical next step.
The Marketplace is possibly the most democratic of all existing "app stores." It's like the Identi.ca to Apple and Google's Twitters; the code's open-source, and anyone can roll their own. Hopefully, it will be seamless for people to buy apps from anyone's store, using their Persona.