[horde] phpGroupWare + Horde

Rich Lafferty rich at horde.org
Thu Jan 25 21:21:40 PST 2001


On Fri, Jan 26, 2001 at 05:42:15AM +0100, Atif Ghaffar (aghaffar at developer.ch) wrote:
> Dan Kuykendall wrote:
> > Yes, frames evil, tables good. 
> 
> I dont get it.
> Can someone explain just why frames are evil?

I don't think you can take any statement of the form "<interface
element> is evil" seriously. However, "frames considered harmful"
is probably more realistic.

> We use frames in everyday apps.

Web applications are a *very* different paradigm from "native"
applications. You can predict what a native application's interface
is going to render as. You can't do that on the Web. If you put 
up arbitrary divisions between areas of pages, things break in
unpredictable ways.

And it's not the case that *every* use of frames is harmful; if
there's any area on the Web in which frames *can* be useful, it's in
applications where you've got a very well-defined target group, in
which the browser is acting as the '90s equivalent of a 3270-class
terminal, where you know that the point of having the browser open
is to use the application and nothing more.

> I use frames with 
> * Acrobat reader (to show me the outline in a frame)

This example is the most valid of the ones you give, but still, it can
*guarantee* the number of *pixels* that the sidebar displays, and it
happens to have an interface which lends itself to having something
static in one area of the screen and something very not static in 
another area of the screen, and it allows users to disable them with a
click without changing the way the application works.

> * emacs (so I can code in one frame and execute in the other)
> * VT (I use splitvt to have multiple frames on a terminal)

Both of these are empty windows you fill with text; hardly comparable
to something that has more user-interface elements than just a
scrollbar.

Also, both of those examples use a split "frame" window as a special
cases of "open up another window", except that actually *opening*
another window gives the user the option to *put* the window where
they want it instead of forcing it to be attached to another element,
or minimize it, or push it to the back, or push everything else to the
back. 

> * web (frames on the web for more or less the same reasons)

Which reasons?

> Why are they evil?

Because they're kludgy and ugly and inelegant and unpredictable.
Because the Web browser isn't the application, it's the terminal the
application's appearing in. Because you can't make the sort of
assumptions that frames require you to make. Because they're an
unnecessary complication that can be avoided. Because they force
screen real estate to be used for things when the user may not want
that to be done. Because the "Back" button might break, might not, and
you've no idea whether or not it did. Because it means that a single
"page" requires more http requests. Because so many people misused
them in the first three or so years that they existed that users adopt
negative opinions upon encountering them, used well or otherwise. 
Because there are more elegant ways of doing what they do
that don't steal screen real estate from the user or force the user to
position his windows in one particular way.

If I had to say "Frames are _____", I'd probably say "tacky" or
"gauche" or "passé" or "impolite" or "unaccommodating" or "obtrusive",
though.

More generally, frames break the KISS principle. 

  -Rich

-- 
------------------------------ Rich Lafferty ---------------------------
 Sysadmin/Programmer, Instructional and Information Technology Services
   Concordia University, Montreal, QC                 (514) 848-7625
------------------------- rich at alcor.concordia.ca ----------------------





More information about the horde mailing list