All of the comments here could be shortened to "It's cached so it doesn't matter" as if the main problem was "2 MB is too large hence loading is too slow".
But the problem here (according to the author and I tend to agree with him) is that one needs to load too much junk for too little actual content; whether the junk in question is cached or not.
Now, ideally, a tweet's 140 characters shouldn't weight 2 MB but Twitter users need tools to act upon those tweets: re-tweet, follow a link, etc. and those tools come with a cost.
A relatively high cost but one we can afford, with the help of caching.
If you give the browser a form, it's going to want a callback(JS); to make sure everything went through. When you give it the callback, it'll probably ask you for a image; pretty UIs are important. When you give a browser an image, it'll need to be styled(CSS). . . and so begins the theory of "If you give a browser a cookie".
Granted 2MB is pretty big, but the only people I see complaining are techies; valid complaints but do not effect Twitter's bottom line.
But the problem here (according to the author and I tend to agree with him) is that one needs to load too much junk for too little actual content; whether the junk in question is cached or not.
Now, ideally, a tweet's 140 characters shouldn't weight 2 MB but Twitter users need tools to act upon those tweets: re-tweet, follow a link, etc. and those tools come with a cost.
A relatively high cost but one we can afford, with the help of caching.