Ever since I took a Pascal class in the early 80's I've liked the idea of a "main" loop that says what's happening in human-readable form:

But Pascal has "nested functions", somemthing that PHP lacks. Thus, you end up passing a bunch of parameters up, down, and all around. It often creates more change-points upon maintenance. Nested functions makes refactoring into routines easier because you don't have to keep making and managing parameter or "global" lists (they are really Regional, not Global, BTW.) The down-side to Pascal is that it requires physical nesting instead of referenced nesting or dynamic nesting, and is picky about the sequence of function definition.

But, form-centric web programming is inherantly messy and sucks because businesses keep wanting GUI-like functionality (Dephi,VB,PB) from brochure-oriented HTML browsers. Thus, either you try to emulate a GUI ([link|http://geocities.com/tablizer/webstif.htm|http://geocities.com...lizer/webstif.htm]), wait for a biz-form oriented protocol to catch on (like SCGUI), or live with the clunkiness of web apps.