Boxing Out: The Value of Free Software in an Appified World
Whether you'd like to admit it or not, the technology industry is undergoing a rapid paradigm shift from traditional desktop computing to mobile platforms that are growing increasingly restrictive. The embrace of an appified mobile web has made for a lucrative business model for numerous startups, but these platforms are, by design, problematic in regards to user freedom and privacy.
Before I get to my main point, I would like to highlight three different parables about the problems we already are facing with innovation in technology. While you could make the argument that software patents are really what's holding these things together, and you would be right, I feel that it's really much more problematic than that. Please note that I'm not saying that these services and organizations in and of themselves are evil. What I'm getting at is how some of their practices and policies are holding back innovation.
The Boxed-In Web
We all know a thing or two about walled gardens. Regardless of what type of app development you're doing, we can agree that open platforms have a lot more potential for third parties. Just look at how developers are getting excited about AppNet, just because they're providing a more open API to play with, which is at odds with what Twitter is doing. Twitter's restriction on an API seems to be a growing trend, as many people are beginning to flock away from great third-party clients due to less and less flexibility being supported in the API. Perfectly good clients have gotten their API tokens revoked, so it sholdn't really come as a surprise. However, AppNet and Twitter are technically both contributing to the same problem: they are centralized services, and while an open API is great, it doesn't exactly do much of anything for the Open Web, aside from having a new app to integrate with.
However, the real problem comes from the popularity of leveraging Facebook as a platform. Facebook, in comparison to Twitter, is actually stupidly easy to integrate with a web application, and does so at several different levels. Want a picture thumbnail to be the one Facebook catches when you share a link? Just give part of your article an OpenGraph Image tag, and a method to pass the uploaded image as the value. Of course, Facebook has gone even further into integrating with the rest of the web. See, Timeline wasn't just a redesign of a user's profile: it's a semantic web application in which API data is passed from one service back to Facebook. All a developer has to do is create an OG:action (played a song), apply it to some nouns (song_name, song_artist), and an originating service to come from (SoundDerp) and essentially, Timeline can tell everyone that "Sean is listening to Kids With Guns by Gorillaz on SoundDerp", and it all plays into Facebook's Timeline ecosystem. Apps leverage actions, and Facebook just to get to leverage a little bit more about you. Even as a basic authentication platform, it hooks into hundreds of thousands of sites out there. Ever seen a site with a "Log In With Facebook" button? At some level, it's a social web app.
Facebook provides a compelling reason for developers to stay on its own platform. The tools are, compared to what some other services offer, stupidly easy to use. And therein lies the problem: because Facebook offers such an easy route for developers to go, it's an enticing platform to get sucked into. Apps across the web have to conform to Facebook's own developer guidelines, at least where usage of the Facebook API is concerned. Who would want to develop for an alternative, unless it were for pushing forward a web that isn't tied to a central social power structure?
Because of the reliance that third-party developers and content distributors have on platforms such as Facebook and Twitter, we are increasingly finding ourselves in an appified web that crawls through user data at least one way or another. Relying on one central site essentially steers Facebook into an authority position. Think about it: Facebook already abuses its permission by censoring links from the web, and it has to conform to handing over your user data to the authorities of your local government. It might as well be one big spy network disguised as an opiate for the masses.
This Little App
I think it's a sad statement about society when you have to jailbreak your phone platform to truly get the functionality you need out of your own phone. One need only look at how Apple rules over the App store with an iron fist to gain an understanding of what a locked-down ecosystem means. Sure, you can make your app about anything, as long as it doesn't work around carrier contracts, provide too much comparable functionality to the default included app, isn't too expensive, only makes use of Apple's official tools, has a less-than-stellar interface, or a dozen other restrictions Just look at how this trend is further being carried out in guidelines for the Mac App Store. It's literally an instance in which the sale of applications that greatly enhance the functionality of the operating system is restricted. And sure, you can distribute your app without the Mac App store, but would a developer starting out get an opportunity for even 10% of the exposure that the Mac App Store provides? It's an app ecosystem where, once again, innovation is hampered by playing by one company's rules, at the risk of that developer losing a portion of their sales and income if they develop outside of Apple's restrictions. Sure, it's not a behaviour for all Mac apps by default at the moment, but with the culture Apple has put together with App distribution, it might as well be. Free Software apps have been historically rejected frpm Apple's distribution channels.
One of the best things to come out of the creation of iOS is not the vanilla stock experience itself, but the alternative App Store, Cydia. It's a hacker/developer playground in which special applications can be released and sold, without the overbearing rules handed down from Cupertino. You can modify iOS is a number of amazing ways using Cydia, and to a certain extent, run a device the way you want to run it. You want to tether your phone? Go for it. How about not being tied into iTunes for adding new music for your device? Or changing how your phone looks beyond a wallpaper? The sad thing is, you shouldn't have to hack away so heavily at your mobile OS, and as more developers shift over to purely being on the Mac App Store, it's not out of the realm of possibility to think that something similar could happen to the Mac desktop.
A Little Less Aliyun
Don't just think that because Google's the main opposition to Apple that it doesn't get away with the same thing from time to time. Google tends to hold a strangely firm grip over its supposedly open developer ecosystem from time to time as well. Just take a look at the recent hubbub about Alibaba's AliyunOS, a fork of Android. Here's the short version: Alibaba is a company that forked Android with their own interface, UI, and services, and they were going to launch a device in China using Acer as the hardware provider. Acer is part of the not-as-open-as-youd-think Open Handset Alliance, which is like an old boy's club for big Android manufacturers that want to prevent Android's fragmentation in the name of unity. Because of Acer's involvement with the OHA, Google can effectively kill any adoption of Alibaba's forked OS by forcing Acer to drop it. It doesn't matter if it's a better handset system; if Alibaba doesn't find a non-OHA manufactuerer or doesn't go the route of being like MIUI and run on jailbroken devices, it's not going to find a market to thrive in. Once again, innovation is strangled in the name of "following rules".
What lessons can we draw from these seemingly unrelated examples? Let's connect the dots: each problem highlights how different platforms have roped in developers to be dependant on a very overbearing set of rules and guidelines, each of which can affect a developer's income, based purely on these regulations. People couldn't ship or build the products they wanted to without bending over backwards for different restrictions. Google's recent issue with AliyunOS raises the question of how open Android really is as a user-facing platform, considering the vast amount of influence it has over the Open Handset Alliance. In each case, deviating from the central authority can knock an entire product off of the market.
At what point did we consider this to be acceptable? We are openly embracing systems that make it difficult for Free Software to thrive. Free Software is important because it's not just about the cost of the software, it's a statement that you don't have to be a part of those self-destructive walled gardens, that you don't have to sacrifice user privacy, and that you can study how things work at your leisure. There shouldn't be so many barriers to using the technology you bought the way you want to. Free Software is a great vehicle for learning how computers work, and much freely available code has evolved greatly over the last twenty years. As we enter into an era with even more apps, even more proprietary social platforms, and even more corporate battles to influence what system a person gets to use, it's quickly apparent that we need to embrace and cling to Free Software now more than ever before.