Every HTML course (I've been on) has taken the position that frames are "evil".
Apparently the "elites" also consider tables to be "evil" these days.
This means that the only option for laying out a page is to use divs (they have to be controlled using css).
I spend almost all of my page creation time debugging divs (e.g. 90% - divs, 10% -
everything else).
I suspect that is why so many pages have their layouts controlled by js.
Since the page is part of my course exercises and it must successfully validate as HTML5, all styling must be done in css.
We can choose our own layout structure (it's not necessary for the page to have 4 columns).
If I use 4 columns instead of 2, all of the info (lists of links) will fit on one screen (no scrolling).
I agree that Flash and js are overused on most web pages.

Rollover buttons are a good example.
Why use js when it is easy to do it in css?
I also prefer "functional and non-glitzy", to "non-functional and glitzy".