To get the ball rolling, see "The Problem: Misusing Dynamic Binding when Static Binding would do" in the left margin of http://virtualschool.edu/wap and flame away. --BradCox
What is your reaction to using the MLS preprocessor to convert long strings to java strings at compile time? The usual comment I get is that this violates the separation of presentation from code, a reaction that I've never understood. After all, JWAP does separate them... just to separate methods (statically bound) instead of to separate (dynamically bound) files.
My reaction is that MLS makes life easier, since the capability exists in other languages, e.g perl and ruby.
MLS based on what it does itself cannot violate seperation of presentation from code. Its the programmers/web-designers who do that :-) See http://www.rubygarden.com/ruby?DisputeBetweenHTML_PersonAndCoder
Brad, have you seen this article: http://www.paulgraham.com/lib/paulgraham/bbnexcerpts.txt ? These folks are also turning against the prevaling model of web app programming.
In order to minimize the overhead of IIS/ASP/VBScript, I put as much of the host-side code as possible into Activex libraries. The client-side processing is done in JavaScript. My resulting architecture makes the HTML + JavaScript page into a sort of object which is "conceived" (in the biological sense) in a Factory class but comes to life on/in a browser.
Once "instantiated" in the browser environment, it does the usual JavaScript editing things when the user "sends", then, of course, relays "input" as a collection of strings. The creation and interpretation processes are all carefully wrapped in objects at the server end.
Now an application can be written with relatively little thought about HTML or JavaScript because all of the creation and execution is encapsulated and handled by libraries of objects with "nice" interfaces.
During the process of building this system, I OFTEN thought of HTML as a kind of assembly language -- but then what does that make JavaScript? In a sense, a page is a lot like a classical COBOL program in which the HTML is the "data division" and the JavaScript is the "procedure division".
In a sense my software is a "compiler" producing HTML, with a "macro capability" which produces JavaScript. In another sense, it is just an especially complex Facade.
Having worked in many kinds of software for over 30 years, I find web pages fascinating just because they incorporate so many ways of doing things. -- AlMeyers