It’s time to have a serious talk about #!.
If you’re a sharp-eyed Web user, it will not have escaped your attention that, for many Web sites (Twitter among them), the characters #! have started to appear in the address bar when visiting certain pages. Try it now. Go to my page on Twitter but check the URL I’m sending you to first – it should be “http://twitter.com/torgo”. Now – when you visit that link, check the address bar at the top of the page. Abracadabra, a mysterious #! (pronounced “hash bang” in geek-parlance, and we are firmly in geek territory here) has interposed itself between the twitter.com and the torgo bits of the URL. The appearance of #! is an artefact of a certain approach to Web application architecture. Many in the Web community have decried this approach (see more detail in Jeni Tennison’s blog entry), but to cut a long story short, the argument against using #! has been painted as largely academic by many Web application developers.
This morning, I woke up and found my (very) local paper, the Archer, had been slipped through my mail slot. Something drew my eye to a box at the bottom of the page. “The Archer is now on twitter,” it pronounces. “Follow us on http://twitter.com/#!/TheArcherN2.”
Ok, #!. Now, it’s personal.
I’m not pointing fingers at the good folks at the Archer, by the way. They just did what Twitter told them to do. In good faith, they copied and pasted the URL that appeared at the top of the page. But surely this result could not be what the people at Twitter intended. So, now everyone who sees this URL and types it in will be forced to type in three more characters than is strictly necessary. And can you imagine someone trying to tell that URL to someone else down a phone line or over the radio? It’s like “H, T, T, P, colon, slash, slash” all over again, except worse! (For one, “exclamation point” has 5 syllables.)
And by the way if the person trying to type in that URL happens to be a Mac user in the UK then they are going to be doubly confused because there is no # on the Mac UK-English keyboard layout:
From a Web architecture perspective: Jeni’s blog entry goes into great detail on the pros and cons of this approach to keeping application state. In the TAG, Ashok Malhotra is working on a document on Identifying Application State which discusses this issue in detail, discusses and some alternatives to #! and some approaches that Web site developers can employ if they want to use #! and not confuse Web users. If you’re a Web site developer, I urge you to read these.
But thinking of the bigger picture: when you build a Web site or application, you are not building it in a vacuum. Stuff you do, including what appears in the address bar, will have unintended consequences. People doing stuff like passing around URLs out-of-band is part of the Web. So think of the children already and get with the program!
(And to my good friends at the Archer: I love you, and you have done absolutely nothing wrong, but please the next time you print this blurb, print it as “http://twitter.com/TheArcherN2”. For me. OK? Thanks.)