There's currently a discussion going around twitter about the idea of a Drupal App Store. Now, I don't actually want to talk about the merits and problems of the idea itself. From what I can tell, what this really is meant to be is a conversation starter for a presentation that Robert Douglass is giving in Brussels. And the idea of an App Store has some very interesting ramifications, some positive, and some negative.
But as I said, that's not what I need to get off my chest.
At least one person said, during this, that all software should be free. My response to this led to some friendly conversation that more or less said that it's not okay to be paid to write software, it's only okay to be paid for providing services around the software.
An unfair analogy: Nobody would ever build houses if they were only paid for the services around the house. Now, the analogy is unfair, because house building has a certain amount of materials cost that writing software just doesn't have. That said, there is a lot that house building and software building have in common, once you start building something bigger than a doghouse: 1) Doing it well requires a team, planning, architecting and executing. 2) There is a significant investment in labor to do all of this.
Another unfair analogy: Fiction authors would likely never actually write fiction if they were only paid for services around the fiction. What service is there? They spend months writing a novel and...then they're done. They could perform readings and of course there's signings and tours, but ultimately the profit in writing fiction is selling books. Not necessarily physical books, but if the books were given away, it's hard to envision where the income is from.
A similar unfair analogy: Musicians, today, are struggling with the digital age. Right now music is treated as a commodity, and an industry that's always had control of the media has mostly lost it. Musicians have a bit more leverage in the idea of services around the product: right now, musicians make their money through concerts (and the music industry takes most of the money through sales). There is also the pay-to-play revenue from radio which is in turn funded through advertising.
A final unfair analogy: We vote politicians into government positions to provide services (theoretically) for our society. We don't actually expect these politicians to do their work for free, unless we're a certain brand of libertarian. The reason is that doing the job of being a congressman or mayor or president is a full time job and you've got to be able to eat and very probably support a family.
The reason that open source often sucks is that when there's no direct revenue for building it, there is something else that drives the need or interest for it. Scratching your own itch, scratching a shared itch, sharing the code to get growth from the contributes of others with similar itches. But one thing that open source doesn't do a good job with: building teams of people with complementary skills to make sure that the software is a good experience for the customer. Why? Because there is no customer. Oh sure, hundreds of thousands of people use my software and they consider themselves customers, but ultimately they are not. Why? The definition of a customer involves, among other things, providing a revenue stream.
Obviously, I have a great love of open source, but I've never been an idealist about what open source means or why it works. I am a pragmatist. And part of that pragmatism is recognizing that I am rather lucky in that I've been supported by companies with a vested interest in my software who have given me the freedom to make sure my software continues to advance. Many potential open source contributors are not so lucky. We constantly ask for contribution with no compensation in return, and hope that the contributors will be able to find some alternate compensation. That's fine.
But the part that is not fine is when I start to see idealists say that it's actually wrong to get compensated directly. I agree that an App Store is going to have some very difficult, perhaps insurmountable problems gaining traction in a community like ours. But in no way is it fair to say that the model is inherently wrong. People can and do charge for software. A well built team with a revenue stream has the opportunity to build a much more polished product than a bunch of itch-scratching random developers getting together to build something. This isn't to say that they will: the corporate environment can produce vastly screwed up results just as well as open source, and market realities sometimes reward incompetence in the same way that a good product fails to get traction.
Our current software world requires balance. Open source is a great balance to closed source products, but if every product available were open source, and there was no longer any closed source code out there, is it logical that we would see the same level of investment? Is all that money really going to come into fully open source products looking for other revenue streams, trying to make all their money by metaphorically performing concerts?
I love open source and I'm glad we have it and to be a part of it.
But I do not love reading that pay for play models are wrong and evil. Is it really wrong to build a distro and then try to sell the distribution through an app store? GPL doesn't prevent you from selling the product, it just prevents you from withholding the source of the product you sell. You can provide incentives to your customers and there are parts of a distribution that you don't have to make GPL, and you can sell that.
But what's more important to me is that: Software development is not free. Just like writing a book, writing music, making a movie, or building a house all take skill and labor, writing software takes labor. If you try to tell me that the only way for the house builder to get compensated is to charge to come fix problems after the house is built, two things will happen: 1) a lot fewer people will build houses and 2) they'll build shittier houses. Even if you provide all of the materials.
The same is true of software.