I think everyone would agree Twitter has lot of space to fill with improvements. One improvement Twitter started to take into account is their human resources and I give an A+ for their recent headhunting techies – like the latest. But, one step forward could get you to two steps back and I strongly recommend Twitter to read Vladimir Ilyich Lenin’s Collected Works, because that’s the future of Twitter if that’s all they’ll do – headhunting without head-using.
So here are some tips from a humble twitter service user.
1. It would be a good idea to let twitterers to use html templates on their profile design, similar to Google’s blogspot service. I know this would pose a security threat, but there are plenty of template engines out there Twitter could inspire from and allow only few elements to be used. Sanitizing user profiles should not be so hard, especially now that Twitter has some experience with all their previous XSS vulnerabilities.
At this point most of the twitterers are uploading huge desktop images and, though Twitter is using Amazon cloud computing services, it’s pretty annoying downloading a 100KB picture which has a blue background and some text in the foreground. So please, have in mind the iPhone data whores.
2. Every day I have dream, that I wake up and see some good twitter statistics. Then I do wake up and face reality, there is no way to know how many visitors you have, who’s your best referrer, how viral you really are. All external apps out there are trying hard to do Twitter’s jobs but they have limits, it’s impossible to do real stats based on guessing, no empiric algorithm could match the Twitter logs. I know this feature is computationally expensive, but many twitterers would pay for a golden account to have this feature. So, here’s one idea to monetize the service.
3. Every day I have a nightmare, that I wake up, open my laptop and see that blue, fat, fail whale or worse, to notice this. Then I wake up and actually see the blue whale. I understand why Twitter has been developed in disregards to scalability – who’d have thought it will get so fat so fast. But now it’s quite obvious Twitter must scale big time. I have nothing against Ruby on Rails to be a web framework, that’s cool, but to use a relational database to store all that data, data which is presumed to be real time processed and available.
The problem with Twitter is that is has been coded to be a web application although it has all the properties of a telecommunication system. These two terms, web and telecommunications don’t mix too well for developers and the combination of the two pose challenges.
But there is a solution:
- the erlang language which could be used to rewrite the engine (twitter could keep the RoR for the web application). Erlang is a concurrent programming language, designed by Ericcson for soft-real-time, fault-tolerant, distributed, non-stop, high availability applications. It features process signaling, locking and symmetric multiprocessing, features which ruby lacks.
- the mnesia database which is a distributed database developed in erlang and which is appropriate for continuous operations and exhibits soft real-time properties. It features relations, persistence, replication, atomic transactions, de-normalized, distributed, extremely fast real time searches and many features you can read here.
Rewriting the engine should not be a pain, although, I admit, exporting the already existing data is. But still dumping steroids on the present platform is not a solution, and Twitter should make the transition before it hits 100M users. It’s ok to outage 40M when Twitter would make the transition than outage 100M everyday with that fat whale.
And definitely there are more improvements Twitter could do, but that’s all hit my mind. Any other ideas?