Curt Hagenlocher
Tue, 29 May 2001 17:58:50 -0700
> Could someone please review the following discourse presented > by a PhD ? > > http://virtualschool.edu/wap/html/problem.html > > Highly critical of JSP and MVC in general. The author appears to be Brad Cox -- someone a little more significant in computing history than just "a PhD". The article in question is really more of a rant on Web development. His main point seems to be that web application development isn't sufficiently abstracted from the nuts and bolts of underlying technologies. It needs to be thought of in a way more like traditional development. The entire piece has four points, which can be boiled down as follows, with commentary. 1. Web applications are not files There is no way to perform compile-time checking on links, which are always dynamically loaded at runtime. This is a good point. The only way to find bad links in most web application development environments is to build the app, run it, and start clicking. A higher-level abstraction that checks links at build time would definitely be useful. 2. Fields are not Strings Encapsulating field-level type information is important. Treating all fields as strings prevents this approach. Another good point. Struts can actually address this issue by embedding variables of types other than String in an ActionForm. The "get" method would still have to accept a String -- unavoidable given the nature of HTTP -- but could then perform the conversion and store any error state for later referral by the validate() method. 3. Strings might have more than one line JSP really sucks. Oh, and you should be able to generate Java from JSP beforehand. No one has come up with an ideal approach to mixing HTML or text with code. I don't think that his WAP example is any better than JSP, especially when internationalization enters the picture. 4. Configurations are not files Not everything needs to be in XML. The information in a file like web.xml is quite static and is specified by the application designer. Replacing it with Java code would allow for more options in defaults and error- handling. The "dynamic loading" issue is also closely related. An error in the "servlet-class" value would only be discovered at runtime. Point 1 is critical of every Web development environment of which I have knowledge. Point 2 is solvable in a framework like Struts, even though it's not supported directly. Point 3 is the only point specifically directed against JSP. Point 4 is critical of the entire Servlet spec. I don't see anything critical of MVC. Is anyone familiar enough with ASP.NET to know if Web Controls solve Point 2? What about the SAP Web Control framework that will be presented at JavaOne next week? -- Curt Hagenlocher [EMAIL PROTECTED]