The Coming Twitter Monoculture and Why It Is a Mistake

The other day Ryan Sarver pushed a note on behalf of Twitter to the Twitter Development Talk Google group. The missive goes on to outline the reasons that Twitter wishes to limit third party clients from participating in the Twitter ecosystem. My kneejerk reaction, like most early Twitter adopters, is that this is a short sighted, premature money grab. It also is a further breach of trust amongst the developers who have worked to expand the reach of Twitter since the very beginning. Obviously all of those are true, but I am more concerned about a few things that I feel are getting lost in the mix. From my perspective it is pretty clear that the sort of service that Twitter provides presents a high value to society. Whether with or without Twitter, the ability to personally broadcast messages to the public is a feature that a growing group of people do not want to do without and are better off having. 

Before we go any further I am compelled to draw your attention to a bit of head tilting hypocricy. You know, my Ma grew up in and eventually escaped from Communist Russia, aka. The Swirling Pool of Dreck. Her stories and the fact that because she escaped I am a freedom loving American (not that Americans have a lock on loving freedom) have endowed me with a finely tuned bullshit/authoritarian radar. When I read things like 

"We’ve grown from 48 million to 140 million tweets a day"


"According to our data, 90% of active Twitter users use official Twitter apps on a monthly basis"

juxtaposed with 

"our user research shows that consumers continue to be confused by the different ways that a fractured landscape of third-party Twitter clients display tweets and let users interact with core Twitter functions

resulting in

"If you are an existing developer of client apps, you can continue to serve your user base, but we will be holding you to high standards to ensure you do not violate users’ privacy, that you provide consistency in the user experience, and that you rigorously adhere to all areas of our Terms of Service."

my bullshit warning starts dinging. Well, like, which one is it? Are you wildly successful or are your users having trouble figuring out how to tweet. And who are these "consumers" who can't figure this stuff out? My father has a hard time with email but you don't see me bitching at GMail to fix their "client app." 

In toto, with one fell swoop this latest policy proclamation has, for all intents and purposes, killed off innovation in the client space, aka. pwned. What if AT&T said that if you wanted to make phone calls you needed to use their phones the way they want you to use them. Oh wait, they tried that. Had AT&T prevailed perhaps we would forever be saddled with the rotary phone of yore. Now, Twitter is no AT&T and 140 character tweets are no phone calls. Yet. Twitter is fast becoming an important part of modern day communication. As it stands, governments are using twitter to communicate with citizens. I can tell you that 311nyc and nycasp are quite valuable to me. It was the legion of third party developers that created the compelling and broad reaching applications that enabled people to "dial in" to this new medium. Which future flavor of third party applications will Twitter deem "core" to their business? Does Twitter have a lock on innovation? By definition, the vast majority of the smartest, most innovative people in the world do not work for Twitter. Killing the communal comity as Twitter has is, in my humble opinion, an exchange of relevance for irreverence. 

All this which-client-should-I-use nonsense aside, lets get to the meat of my beef with Twitter. The most glarring affront to this nascent method of communication that this policy declaration has enabled is that Twitter itself now becomes a monoculture ever more easily censored, metered and controlled. As we have seen repeatedly, those in power wish to limit communication. One of the most impressive long lasting technological achievments that Twitter popularized is the concept of third party proxying or rebroadcasting of data. This is not a new concept but I think the way that Twitter employed it is one of the largest uses of the method in an end user application. Instead of having to directly interact with one could use an intermediary to interact with the same data. In order for a beligerent government to censor Twitter they would need to block Twitter and all third party access points into the system. Obviously, it is far more difficult to block all third parties than it is to block a single provider. And I think it has been the case that Twitter has proven to be incredibly resilient in the face of direct opposition precisely because of their convivence with third party developers. Further, I think it is this exact method of proxying, rebroadcasting and relaying data that will play a major role in circumventing censorship in the future.

At the end of the day, Twitter doesn't need to do anything other than what is best for themselves. I submit that this move is ultimately not in their best interest. I know it has stoked the ire of many in the technology space (raises hand). Many of whom have the knowhow to do something about it. And a few who may have the brass to put together a compeling alternative. If Twitter wants to be bigger, have more users, be more influential and interwoven into peoples lives they will inevitably need to give up more control and be more open or face competition or worse, perhaps government regulation? But in the end, Twitters' lasting impression on civilization will be that it validated the model of the service they pioneered. It is my opinion that if Twitter continues to close ranks, become more closed than open, we will see compeling alternatives that will ultimately displace Twitter as the only game in town when it comes to broadcasting short missives.

This has been a Public Service Announcement. Carry on.

My I-also-think-Apple-is-sauced post

I've been following the total shit storm blowing all over the web re: the new iPhone OS 4 ToS and the dreaded clause 3.3.1 from my favorite perch at HN. Been mulling a post since this whole thing started and all of a sudden posterous gives me a reason to do it. Everyone who knows me knows that I am totally into Apple and their products. Unfortunately, I love their Products but hate their Policies. For those not in the know lets take a look at the latest wrinkle in the Emperor's finest robe:

3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs. Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).

Oy, where to begin... Ok, lets start with some programming 101. Virtually everything that you and I do on a modern computer is written in a language the computer does not understand. Programmers write programs in many, many, many, many different languages. Almost too many to count. Simply, what happens next is that these programs are translated into machine code that the physical computer actually knows what to do with. Further, programmers are know to program in one language to translate into another and so on for a long time now. The fact that Apple has unanimously decided to usurp the practice of programming for it's product is, simply, outrageous. On its face this ToS change is ridiculous, counter productive and a step backwards for the discipline. Also, I plainly do not believe it is enforceable at a technical level.

Most everybody who has even a passing interest in the iPhone knows that the only way to get a program onto an iPhone is via the prescribed anointed channel - The App Store. What is less known is that there are other ways to get illicit (from Apple's perspective) software on the iPhone by means of - what boils down to - exploiting software vulnerabilities in the iPhone OS.  Apple succeeded in creating a closed ecosystem and justified it under the guise of securing their product on behalf of the users (Oh, the children! Save the children!). And now Apple is taking another step on the other side of the device by dictating more stringent terms to their developer community. Even before this latest encumberment, there was a lively discussion revolving around the seemingly capricious position Apple was taking by acting as judge, jury and executioner for all who wanted to deploy on iPhone OS. With this latest step I am here to tell you that Apple has officially crossed the line. 

Lets talk in practicalities. Like everyone else, programmers have areas that they excel in. In particular programmers gravitate towards different languages for one reason or another and make their home in one or more language. By limiting which languages are acceptable, Apple is forcing those who want to program for the iPhone to become proficient in one of their anointed languages. According to these new rules, third party tools which allow a programmer to program in another fashion and produce output which will work on the iPhone OS are verboten. Unfortunately for Apple the world is a lot smaller than it was in the 1980's and 1990's. Word spreads, the few people who actually read ToS's tweet their findings from their android mobiles. Perhaps most corrosively, cultures evolve. The developer community today is not the same as decades past. Today's best and brightest are milling about the Google Code, Bitbucket and Github water coolers. Coding has moved from a solitary pursuit to a social engagement. Coders and hackers and programmers are actively seeking each other out and discussing the latest and greatest events of the day in real-time, all the time. This move seriously threatens to undermine Apple's credibility in this community. The very same community that can make or break the iPhone OS in all it's hardware manifestations.

At the end of the day, this rule change is not only bad for programmers, bad for consumers but most importantly it sets a terrible precedent for the future of programming. Where is the freedom to innovate when all directives come from a central command? Recent history has already shown us how IBM and Microsoft abused their position to their long term detriment and how a command economy can fail. My related comment on one of the HN threads regarding this issue had an interesting historical reply. Turns out AT&T tried a similar thing back when they ruled the roost. Imagine that you had to use one of AT&T's phone to make a phone call? Absurd? Not so. Ironic then that Steve and Woz got their start hacking hardware to scam long distance phone calls from AT&T! Meet the new boss, same as the old boss. I really want to see Apple win in the marketplace. They have been for a while now and I would like to see it continue - but at what price? I'll reserve judgement till iPhone OS 4 actually ships but developers have to agree to the terms now. I, for one, say that if things stay the way they are it is too high a price to pay and I'll just shift my stack and double down on Google.