Introducing awfulness.js
blog.tommorris.org
blog.tommorris.org
As for the features themselves, I agree that slapping things together is a usability nightmare. This is also new/unexplored territory for the most part though, and it will take time for usability standards to catch up. Right now, most people on the bandwagon are just copying facebook/twitter and not thinking about how this affects their users.
Let's face it, the web is moving in this direction, and while it's great to sarcastically poke fun at people who are blindly following the masses (I'm all for this), constructive criticism would be a bit more helpful.
Yes, infinite scroll sucks, but non web nerds seem to really like it. I'd say implement it for feeds and other time-based data, but not for listing images/products/etc...or better yet, find a way to implement it via pushState.
Overall a funny post with great points. I don't think anyone is going to throw away their JS app because of it. I'm currently writing an app that NEEDS to use pushState because we have a music player that exists across page "loads." Ok, we could pop open a new window like Myspace does, but talk about usability annoyance...
The problem was, people had to use creative thinking and a bit of duct tape to make it all work. There were battles over valid code vs "whatever, it works", and eventually everyone just sort of accepted that standards won't keep up with innovation. That's about where we are today (browsers are getting better at supporting draft-level innovations, which is a hell of an indication of what they think of this stuff).
Page loads are wasteful, often reloading and redrawing 90% of the same content just so you can see page 2, and the whole window flashes and spins until its done.
Anchors are used for compatibility, and when used correctly, are done so for the very handy fact that the server doesn't need to care about what comes after the "hashbang".
Yes, bad error handling is bad. But, do you remember spending 20 min filling out a form only to have the next page after submit show an error, "sorry, the server could not handle your request", and hitting the back button showed a nice blank form? That's why we do it differently today.
Pagination is a terrible UI. "<< < 1 2 3 ... 7,600 > >>" is not only useless unless you want the first or last page, it also takes multiple reload and redraws to get anywhere in between (try getting to page 3,475, or even trying to comprehend what is on that page by the time you get there).
Client-heavy apps are actually embracing the beauty of hypertext; they don't require you to download and install new mobile apps, because they work in the browser you already have.
I think you're romanticizing the simple web and damning web applications based on the assumption that they are all poorly developed. The relevant argument I see is that web application developers should pay more attention to the non-developer, end user experience.
I think we're making good progress with "awfulness.js" sites.
Oh, and how many people remember writing responses in a text editor and copying it over to the browser window, so that the back button didn't eat your entire post on a forum when something went wonky with the connection? I don't remember Twitter or Facebook ever losing a submission. Maybe I don't use them enough, but asynchronous submit is a great step forward, and I prefer infinite scroll to many of the paging implementations I have lived with over the years.
When everyone does it ever so slightly differently, you are lulled into a false sense of security.
I don't mind software sucking, so long as it sucks in a generally consistent way.
And why oh why are people still writing Javascript that uses hashbangs? Educate yourself, use pushState.
(And the new Google Groups is arguably the worst of Google's redesigns. It takes a measurable 2-3 seconds when hitting the [<-] arrow to go back from a thread to the group, not to mention it's the worst examples of both of these issuses).
Do I still get paginated links as well with this?
Similarly, with history.pushState and history.replaceState, why use hashtags instead of actual URLs?
As for the hashtag, it is a worthwhile thought and you could probably go either way on that one. If you think of the original purpose of the hashtag it was to jump to a specific anchor on the page.