On Mon, Sep 30, 2002 at 11:11:42PM +0100, Nicholas Clark wrote: > > I don't believe that web pages that have scripts > in them are good. > > Unless I can run the scripts in a sandbox environment. Which, to the best of > my knowledge I can't, and even then the presence of scripts in web pages > prevents me from programatically validating web pages.
[I can't believe I'm about to defend this point of view, but there we are...] I was thinking about this just this morning, and I realised that scripting languages are pretty much essential on the client-side, if you're serious about producing something which is even vaguely usable as a real application. Hold on. I saw that jaw drop, in certain quarters. Let me explain. AFAIK, HTML is being used (wrongly, but there we are...) for two separate things: document markup and lowest-common denominator UI. The former, it's pretty shit at, except for text + a few pretty pictures. The latter, it's really, really shit at. It gets worse. If you care about correctness, adherence to standards, and just good old not having to error-correct every single thing you do, then You Must Use POST For Almost Everything.[1] Without a scripting language available on the client side, the only way to trigger a POST action from your UI is by a button push. Take a couple of minutes to think about how even a fairly simple call-centre application would look if every action had a <form> and associated gubbins to go with it. Or a webmail application. Or a stock ticker. Or .... If all you want the web to be is a vast collection of same-y looking documents, then you can just about get by without clientside scripting, providing you're prepared to put up with curmudgeonly navigation. I'd like a bit more. Of course there are problems, not least of which is "wtf does a braille browser do with javascript", but then, I never said it wasn't shit. It's just what we got. Ben [1] There are, of course, security (eg X-site scripting, cookie stealing, etc) implications about GET as well, but I don't want to get into those here.