John Gruber has posted a lengthy review of the new Twitter client for iOS that was released yesterday. Just as the new Gmail disappointed a lot of longtime Gmail users, the new Twitter client has disappointed a lot of longtime Twitter users. How big are the changes? Here’s how Gruber describes them:
This is more than an update. It’s a serious rethinking of the entire concept of Twitter.
I’m sure the goal of the new redesign is to make Twitter more engaging to new users and to people who’ve signed up for Twitter in the past but have never really gotten into the flow of things. Rather than working to make things better for the people who are already addicted to Twitter, they’re experimenting with new ways to create more addicts. My gut feeling is that the experiment will be a failure this time around, mainly because the interface is rather muddled in the ways that John describes, but I would expect Twitter to continue to experiment in this direction over time.
The other reason for the redesign is that Twitter wants to make more money. That seems to be the reason the Discover tab has been added — not everything on it is stuff that someone is paying Twitter to show you, but that’s the part of it that matters to Twitter. I don’t begrudge them that, either. It’s clearly a case, though, where Twitter is trading off usability for cash. This goes to a point that Maciej Ceglowski made earlier this week, which is that free services have their own set of costs. The one he focuses on is that the risk of a free service being acquired and disappearing along with your data is high. The other, though, is that when a service is funded through advertising or sponsored content, making money and making the product better for end users are in a constant state of tension.
Twitter once had a thriving ecosystem of third party clients that made the constant tweaks Twitter makes to its Web site mostly irrelevant. You could use your favorite client and ignore Twitter’s user interface mishaps. Unfortunately, Twitter seems to be committed to killing off the third party application market. If Twitter were only worried about its first set of concerns — making Twitter more engaging for new users and old users who aren’t taking advantage of the service — then they’d have no reason to shut out third party clients. New users could try out Twitter as designed by Twitter, and the rest of us could use the clients that make sense to us. A diverse client base makes it more likely that power users will stick around — even if the default interface doesn’t work, they can probably find one that will.
The other side, though, is that third-party client developers don’t really care about shoving sponsored content at users. Indeed, the ability to hide or deemphasize sponsored content could be a killer feature for a third-party client. So inside Twitter, a user switching from an official appa third-party app represents lost revenue.
I’d argue that Twitter should support third-party clients anyway. Twitter, like all social sites, derives nearly all of its value from a network effect. Nobody would use Twitter if other people couldn’t read their tweets. For Twitter, it’s better for a user to abandon the official Twitter client for a third-party client than it is for a user to abandon Twitter for Facebook or Google+. A robust ecosystem of third-party clients is a strong competitive advantage for Twitter against other social sites.
Secondly, the intramural competition helps Twitter. When the official apps are losing market share to third-party alternatives, it’s a good indication that they need to put more work into improving their official apps. Third-party apps provide free R&D for Twitter. They can always incorporate the best ideas from third-party apps into the official apps. And finally, developers of third-party apps provide a solid base of talent from which Twitter can recruit.
Twitter’s two key advantages relative to other social sites have always been that it is simpler than the others, and that it is a platform rather than just a Web site. Unfortunately, Twitter seems committed to erasing both of those advantages. The service continues to gain complexity, and Twitter’s management seems bent on reducing the flexibility of Twitter as a platform. I think both are big mistakes, but it’s not too late to rectify either of them.
Rethinking log messages
Paul Querna has written an interesting post arguing that developers should rethink how they handle logging — using a robust, machine-readable format (like JSON) rather than human-readable strings that are formatted so that each log entry is a single line long.
The big change is not in how you create log messages but rather in how you consume them. Right now, when a user notices an error, I tend to immediately log into the server and start looking for the log messages associated with the transaction in question using grep or my favorite pager.
Were I to log everything in a machine-readable format, it would make sense to have a more robust tool to parse the logs. Finding or building such a tool is doable, but it becomes yet another project. You need management to sign off on it, the systems administrators to agree to the infrastructure change, and someone to actually choose, test, and deploy the new tool for dealing with logs. Then you have to teach everyone who’s used to finding things in the old logs how to find things in the new logs.
That’s how things that seem like a great idea find a way to never become reality.