You're not imagining the phenomenon, and it's not likely to be the fault of your computer or browser. The technical design of Web sites is changing as people jump on the "Web 2.0" bandwagon, and because all those shiny new features are powered by JavaScript, script is becoming a larger percentage of a site's overall "footprint". This produces a double slowdown in perceived download time, because the source text has to be transmitted, which can be very large; and then the source has to be interpreted in the browser. What you often see is a long download as indicated in the status bar, followed by another delay with the hourglass cursor showing as the script is parsed.
At the same time, you're correct to single out video and Flash players; I find that they're often abused, and I've had to talk clients out of the gratuitous Flash presentation they wanted just because. An example of a site that's taken Flash to an insane extreme is eBay, which recently redesigned their front page as a matrix of Flash presentations, like a wall o'TVs in an appliance store. I literally saw that coming, since back in 2005 I was at eBay on a contract gig, and attended the presentation in which the Head Creative (yes, he really called himself that, middle-aged, balding, grey pony tail and ear-ring, a refugee from Madison Avenue) presented his dream vision of just that wall o'Flash. The idea gagged me at the time, and I tried to argue against it, but what would a mere contractor know?
But back to JavaScript, because that's my specialty and sometimes my obsession. I credit eBay with inspiring many epiphanies, most notably the one that JavaScript is not in fact an OOP language, and that all those textbook attempts to honor the dogma by emulating OOP only contribute to the bloat. Attempts to emulate OOP in JS actually make a coder's life more difficult, counterintuitive to OOP dogma, because an interpreter does not optimize things like class inheritence the way an OOP compiler will, so that "inheritence" in JS results in pulling most of the "class hierarchy" into every object.
(See what you get for posting a question on GeekSpeak? I might've given a comprehensible answer on Community, but here I have a license to geek.)
So I've spent the last couple of years translating what I think of as the eBay lessons into practice. My current generation of Web site tech, which the Zone will soon share, is written in a compact non-OOP style ("real JavaScript") that lets me guarantee that every site, no matter how complex, loads with under 200K of JavaScript (i.e., fast). Sure, Web 2.0 tech like AJAX lets me sort of cheat, by downloading more JS later in the form of what we once called "overlays", but that's a legitimate way to solve the engineering problem of structuring site resource download for maximum perceived responsiveness. At the end of the day, I'm creating an experience, and because experience happens along the dimension of time, I need to structure time intelligently.
As for the Web in general, I'm afraid it'll only get worse, for a while longer anyway, before there's sufficient backlash to force the big sites to reexamine how they write JavaScript. The emphasis most everywhere is on rapid design and deployment over investing engineering time to optimize the code (getting there first matters more than getting there well), and that obsessive bottom-line focus drives the use of a lot of prepackaged JavaScript that suffers from the OOP delusion and is horribly bloated.
When you start complaining to the bloated sites, would you pass on my name? I have a package of "Web 2.1" JavaScript ready to go when they've had enough pain. Thanks!
Geek Speak » in reply to Bloat-websites
Web site bloat
