Friday, January 28, 2011

The Definition of Open?

Today's columnist is Jason Côté from Freeform Solutions. He writes:

On December 8, 2010, Andy Rubin, Google's Vice President of Engineering (and co-founder of Android prior to Google's acquisition of it in 2005), tweeted: “There are over 300,000 Android phones activated each day.” This was the first time Google's claim for Android surpassed Apple's for the iPhone.
Having upgraded to the Samsung Galaxy S Captivate only days earlier, I played a very small part in this growing trend; Samsung has already sold 10 million Galaxy S smartphones. As an advocate for free and open source software, I am inclined to support any Android-based device on principle, even though my first Android phone, the HTC Dream (or G1 as marketed in the US), was certainly not as polished as the iPhone available at the time.
Two months earlier, the same Andy Rubin offered the following definition of open via twitter: “mkdir android ; cd android ; repo init -u git:// ; repo sync ; make”. A few simple keystrokes and I have the entire Android source code at my fingertips. This definition is great in theory, but what is the reality?
For me, reality is that my Samsung phone is running Android 2.1, currently the second most popular version. Android 2.2 is currently the most popular in use, and is now available for some carriers in Canada and the US, but not others. The latest release of Android is 2.3, and Android 3.0 is expected to be released “soon.” When 3.0 is released, my phone will be a full three versions behind the state of the art.
So, while the codebase is open, it seems that software patches and operating system updates are not guaranteed to be made available... or work when they are; my HTC phone was stranded with Android 1.5, with no chance for upgrade. Even worse, after a required software update to re-enable 911 service, the phone never worked reliably again, although there was much finger pointing between Rogers and HTC about these issues. So much for all bugs being shallow.
I also recently bought Samsung's Galaxy S Tab (tablet). I thought it would be the same as my Samsung smartphone. However, the tablet is running on Android 2.2, one version ahead of my phone... yet some applications have been added or removed, and others modified to work with the larger screen size. On top of this, Google has insisted that Android 2.x is not ready for tablets, and most manufacturers are waiting for Android 3.0. As with my previous mobile phone, a similar uncertainty already exists as to whether future versions of Android can, and will, be available for my new tablet.
The installed version is only one consideration. Google offers a “pure” Android experience on phones it markets itself. There are no less than ten variants of the Galaxy S smartphone in Canada and the US alone, one available for each major carrier. Some of the hardware differences are necessary to support the various cellular network technologies deployed, but many other changes are simply for marketing purposes, to allow each carrier to “differentiate their product offering.” Each carrier can customize the device, including by adding their own applications.
All this “differentiation” is not always a good thing. While my tablet is fully capable of making cellular phone calls, and has a front facing camera for video conferencing, the phone functionality has been disabled. Yet, “cell standby” is regularly among the top uses of my tablet's battery. Do I personally modify my tablet to enable the features or operating system I want to use? It is open, right?
In the case of mobile devices, these business issues, and hardware issues, compound the question of openness. But it's not all wine and roses in the pure software world either. In our daily work with nonprofits, just like the Google versus Apple question, we are sometimes asked what is the “right” content management system (CMS) to use. Idealware produces an annual report comparing open source content management systems, including four popular systems in use in the nonprofit sector: Drupal, Joomla, Plone, and Wordpress. We usually pick Drupal. Even with a broad mandate to support the use of IT by nonprofits, Freeform Solutions cannot be an expert in everything, just like cellular carriers cannot offer all versions of Android.
We generally prefer any open source CMS over a proprietary one, if only so that we can modify it to meet the unique needs that nonprofit organizations often have. We limit such modifications as much as we can, though, since software development is expensive. But, we like having options and choices, and we enjoy the opportunity to build on the effort of others, and then share our efforts in support of developing the community.
But while we rarely face hardware issues and only a few marketing “differentiation” issues – choosing which Drupal distribution, for example ― we have produced, and maintain, many sites in Drupal 5 and 6. Drupal 7 was recently released and Drupal 5 is no longer supported. Jumping two versions is never simple, so what do we recommend for our Drupal 5 websites? What if the organization that owns the site cannot afford the upgrade work? Do we leave clients stranded with an obsolete version that may have security or other unresolved issues?
And regardless of these kinds of versioning issues, if Drupal misbehaves, our clients are often pointing at us, like my post-911-upgrade situation between Rogers and HTC, even though we are neither the carrier nor the manufacturer in this example. Regardless, we often feel responsible for addressing these issues, so we usually do whatever we can.
By embracing “open,” there are many benefits that come your way, but clearly there are also many hurdles if you expect to reap all those benefits. On the flip side, there are clearly benefits to Apple doing everything it can to limit options and choices in favour of creating a predictable, repeatable experience for users across numerous hardware devices. Steve Jobs believes the real issue is not open versus closed at all, but fragmentation versus integration; he thinks that Android is fragmented and becoming ever more so. Perhaps the diversity of hardware platforms makes a version of the forking problem inevitable.
In our case, every website we produce is different, and each modification we make might take the underlying software in a different direction. Nonetheless, I prefer the complex and diverse ecosystem of Android – and open source; it is much like the nonprofit sector, where diversity is most often a strength.

No comments: