<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: Most web frameworks are broken</title>
	<atom:link href="http://rethrick.wordpress.com/2008/07/13/most-web-frameworks-are-broken/feed/" rel="self" type="application/rss+xml" />
	<link>http://rethrick.wordpress.com/2008/07/13/most-web-frameworks-are-broken/</link>
	<description>stuff</description>
	<lastBuildDate>Sat, 26 Jul 2008 06:39:09 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Antony Stubbs</title>
		<link>http://rethrick.wordpress.com/2008/07/13/most-web-frameworks-are-broken/#comment-33</link>
		<dc:creator>Antony Stubbs</dc:creator>
		<pubDate>Sat, 26 Jul 2008 06:12:03 +0000</pubDate>
		<guid isPermaLink="false">http://rethrick.wordpress.com/?p=11#comment-33</guid>
		<description>+1 for Wicket. 

Although you still have to get your binding names correct, the framework fails hard and fast if they are mismatched (you can&#039;t bind to a backing object that doesn&#039;t exist). Secondly, there&#039;s an eclipse plugin that will check all your bindings during development anyway. Great!</description>
		<content:encoded><![CDATA[<p>+1 for Wicket. </p>
<p>Although you still have to get your binding names correct, the framework fails hard and fast if they are mismatched (you can&#8217;t bind to a backing object that doesn&#8217;t exist). Secondly, there&#8217;s an eclipse plugin that will check all your bindings during development anyway. Great!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stephen Friedrich</title>
		<link>http://rethrick.wordpress.com/2008/07/13/most-web-frameworks-are-broken/#comment-30</link>
		<dc:creator>Stephen Friedrich</dc:creator>
		<pubDate>Thu, 17 Jul 2008 15:26:12 +0000</pubDate>
		<guid isPermaLink="false">http://rethrick.wordpress.com/?p=11#comment-30</guid>
		<description>Well, part of the problem is an IDE that is not up to the task.
For example both IntelliJ IDEA and Red Hat Developer Studio statically check EL expressions.

I agree though that views and backing beans are too tightly coupled in principal.</description>
		<content:encoded><![CDATA[<p>Well, part of the problem is an IDE that is not up to the task.<br />
For example both IntelliJ IDEA and Red Hat Developer Studio statically check EL expressions.</p>
<p>I agree though that views and backing beans are too tightly coupled in principal.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: James E. Ervin</title>
		<link>http://rethrick.wordpress.com/2008/07/13/most-web-frameworks-are-broken/#comment-29</link>
		<dc:creator>James E. Ervin</dc:creator>
		<pubDate>Tue, 15 Jul 2008 16:29:47 +0000</pubDate>
		<guid isPermaLink="false">http://rethrick.wordpress.com/?p=11#comment-29</guid>
		<description>I think this article highlights an idea I have been pursuing.  The idea of separating programming languages and their associated contexts into two categories, implicit and explicit.  I realized when I started on the idea the point I was really trying to get across was that I want to see things made more explicit in that even though I like terse languages (easy on the hands and wrists), I want tooling that in effect makes the language/platform explicit.  You want tooling either in the compiler or IDE to be able to at least warn you of potential trouble as much as possible.  This to me is the great divide between using so called dynamic versus statically typed languages at the moment.  I know dynamic advocates will argue that you need a stronger set of unit tests, but really do you want to have to depend on people writing a bunch of tests when you could have a compiler or IDE tool give them the feedback they need automatically?  My ADD afflicted mind and I prefer that the computer do as many automatic checks as possible, since it is likely I will forget, or be to lazy, to do them.

Mr Spiewak had a great blog entry on this: 
http://www.codecommit.com/blog/ruby/pipe-dream-static-analysis-for-ruby

Incidentally, I think Daniel inadvertently makes the best synopsis of the argument between using dynamic and statically typed languages in that blog entry that I have ever read.</description>
		<content:encoded><![CDATA[<p>I think this article highlights an idea I have been pursuing.  The idea of separating programming languages and their associated contexts into two categories, implicit and explicit.  I realized when I started on the idea the point I was really trying to get across was that I want to see things made more explicit in that even though I like terse languages (easy on the hands and wrists), I want tooling that in effect makes the language/platform explicit.  You want tooling either in the compiler or IDE to be able to at least warn you of potential trouble as much as possible.  This to me is the great divide between using so called dynamic versus statically typed languages at the moment.  I know dynamic advocates will argue that you need a stronger set of unit tests, but really do you want to have to depend on people writing a bunch of tests when you could have a compiler or IDE tool give them the feedback they need automatically?  My ADD afflicted mind and I prefer that the computer do as many automatic checks as possible, since it is likely I will forget, or be to lazy, to do them.</p>
<p>Mr Spiewak had a great blog entry on this:<br />
<a href="http://www.codecommit.com/blog/ruby/pipe-dream-static-analysis-for-ruby" rel="nofollow">http://www.codecommit.com/blog/ruby/pipe-dream-static-analysis-for-ruby</a></p>
<p>Incidentally, I think Daniel inadvertently makes the best synopsis of the argument between using dynamic and statically typed languages in that blog entry that I have ever read.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bachew</title>
		<link>http://rethrick.wordpress.com/2008/07/13/most-web-frameworks-are-broken/#comment-26</link>
		<dc:creator>Bachew</dc:creator>
		<pubDate>Mon, 14 Jul 2008 09:08:39 +0000</pubDate>
		<guid isPermaLink="false">http://rethrick.wordpress.com/?p=11#comment-26</guid>
		<description>Absolutely agree! That is why web frameworks like Wicket exist. But everyone likes standard, so give them JSF. In fact, the whole Java community seem to like hardcoded string so much that they have lost they OOP nature.</description>
		<content:encoded><![CDATA[<p>Absolutely agree! That is why web frameworks like Wicket exist. But everyone likes standard, so give them JSF. In fact, the whole Java community seem to like hardcoded string so much that they have lost they OOP nature.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jose M. Arranz</title>
		<link>http://rethrick.wordpress.com/2008/07/13/most-web-frameworks-are-broken/#comment-25</link>
		<dc:creator>Jose M. Arranz</dc:creator>
		<pubDate>Mon, 14 Jul 2008 07:30:50 +0000</pubDate>
		<guid isPermaLink="false">http://rethrick.wordpress.com/?p=11#comment-25</guid>
		<description>I can&#039;t agree more, this is the typical problem of &quot;executable views&quot; or &quot;pull views&quot; (the view pulls data), in the old JSP approach Java code was hard coded and the compiler was very useful to detect coding bugs. Now most of the templating engines interpret the view (the view logic uses interpreted languages) and there is no way to detect errors in a compiler phase. 

The alternative is using non-executable views or web frameworks with &quot;push views&quot; (the application pushes any data to the view). Frameworks with &quot;push views&quot; reduce the view logic in the view, in some way the view rendering is &quot;driven&quot; by Java code, one immediate benefit is a cleaner view/view logic separation.

Terence Parr talks about this:
http://www.cs.usfca.edu/~parrt/papers/mvc.templates.pdf

There are no very much examples of web frameworks with push views:

- StringTemplate: a proof of concept of Terence Parr ideas.
  http://www.stringtemplate.org
- GWT : this is an extreme example because there is no template, view is built programmatically.
  http://code.google.com/webtoolkit/
 - Wicket: the template is almost pure HTML, most of the logic is defined in Java
  http://wicket.apache.org
- ItsNat: my preferred, because I&#039;m the author :)  In ItsNat the view logic is pure Java using W3C DOM Java APIs and the templates is absolute pure HTML (or SVG). 
  htt://www.itsnat.org</description>
		<content:encoded><![CDATA[<p>I can&#8217;t agree more, this is the typical problem of &#8220;executable views&#8221; or &#8220;pull views&#8221; (the view pulls data), in the old JSP approach Java code was hard coded and the compiler was very useful to detect coding bugs. Now most of the templating engines interpret the view (the view logic uses interpreted languages) and there is no way to detect errors in a compiler phase. </p>
<p>The alternative is using non-executable views or web frameworks with &#8220;push views&#8221; (the application pushes any data to the view). Frameworks with &#8220;push views&#8221; reduce the view logic in the view, in some way the view rendering is &#8220;driven&#8221; by Java code, one immediate benefit is a cleaner view/view logic separation.</p>
<p>Terence Parr talks about this:<br />
<a href="http://www.cs.usfca.edu/~parrt/papers/mvc.templates.pdf" rel="nofollow">http://www.cs.usfca.edu/~parrt/papers/mvc.templates.pdf</a></p>
<p>There are no very much examples of web frameworks with push views:</p>
<p>- StringTemplate: a proof of concept of Terence Parr ideas.<br />
  <a href="http://www.stringtemplate.org" rel="nofollow">http://www.stringtemplate.org</a><br />
- GWT : this is an extreme example because there is no template, view is built programmatically.<br />
  <a href="http://code.google.com/webtoolkit/" rel="nofollow">http://code.google.com/webtoolkit/</a><br />
 &#8211; Wicket: the template is almost pure HTML, most of the logic is defined in Java<br />
  <a href="http://wicket.apache.org" rel="nofollow">http://wicket.apache.org</a><br />
- ItsNat: my preferred, because I&#8217;m the author <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   In ItsNat the view logic is pure Java using W3C DOM Java APIs and the templates is absolute pure HTML (or SVG).<br />
  htt://www.itsnat.org</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike Brock</title>
		<link>http://rethrick.wordpress.com/2008/07/13/most-web-frameworks-are-broken/#comment-22</link>
		<dc:creator>Mike Brock</dc:creator>
		<pubDate>Sun, 13 Jul 2008 19:16:37 +0000</pubDate>
		<guid isPermaLink="false">http://rethrick.wordpress.com/?p=11#comment-22</guid>
		<description>&quot;If cost is a String that holds “24.50″, and the computeGst() method returned a double, it is very possible that your web framework will still compute the result! This is because many of them perform implicit type conversion:&quot;

I&#039;d like to note, that even in weakly-typed mode, MVEL does not suffer from this problem unlike OGNL.  MVEL *never* invokes a target method for type conversion purposes. OGNL 2.7 does though.  :)</description>
		<content:encoded><![CDATA[<p>&#8220;If cost is a String that holds “24.50″, and the computeGst() method returned a double, it is very possible that your web framework will still compute the result! This is because many of them perform implicit type conversion:&#8221;</p>
<p>I&#8217;d like to note, that even in weakly-typed mode, MVEL does not suffer from this problem unlike OGNL.  MVEL *never* invokes a target method for type conversion purposes. OGNL 2.7 does though.  <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
</channel>
</rss>
