<?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: Syntax Matters</title>
	<atom:link href="http://guidewiredevelopment.wordpress.com/2008/04/29/syntax-matters/feed/" rel="self" type="application/rss+xml" />
	<link>http://guidewiredevelopment.wordpress.com/2008/04/29/syntax-matters/</link>
	<description>A group blog from the Developers at Guidewire Software (www.guidewire.com)</description>
	<lastBuildDate>Sat, 14 Nov 2009 06:58:25 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Kamy Lamm</title>
		<link>http://guidewiredevelopment.wordpress.com/2008/04/29/syntax-matters/#comment-267</link>
		<dc:creator>Kamy Lamm</dc:creator>
		<pubDate>Fri, 22 Aug 2008 10:50:36 +0000</pubDate>
		<guid isPermaLink="false">http://guidewiredevelopment.wordpress.com/?p=38#comment-267</guid>
		<description>good discussion on java, and the people who have given comments really sounds good. So many good things has shared by the experience people........... really good work.........</description>
		<content:encoded><![CDATA[<p>good discussion on java, and the people who have given comments really sounds good. So many good things has shared by the experience people&#8230;&#8230;&#8230;.. really good work&#8230;&#8230;&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Why &#8220;Less Code&#8221; Matters &#171; Invisible Blocks</title>
		<link>http://guidewiredevelopment.wordpress.com/2008/04/29/syntax-matters/#comment-224</link>
		<dc:creator>Why &#8220;Less Code&#8221; Matters &#171; Invisible Blocks</dc:creator>
		<pubDate>Tue, 24 Jun 2008 02:22:43 +0000</pubDate>
		<guid isPermaLink="false">http://guidewiredevelopment.wordpress.com/?p=38#comment-224</guid>
		<description>[...] - Alan Keefer, Syntax Matters [...]</description>
		<content:encoded><![CDATA[<p>[...] &#8211; Alan Keefer, Syntax Matters [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brian Hurt</title>
		<link>http://guidewiredevelopment.wordpress.com/2008/04/29/syntax-matters/#comment-171</link>
		<dc:creator>Brian Hurt</dc:creator>
		<pubDate>Fri, 02 May 2008 00:02:10 +0000</pubDate>
		<guid isPermaLink="false">http://guidewiredevelopment.wordpress.com/?p=38#comment-171</guid>
		<description>&lt;BLOCKQUOTE&gt;Perhaps this isn’t true of the development community in general, but my experience with the Java community is that people don’t appreciate that syntax makes a difference: I’ve had numerous debates on various forums about why Java should have closures, for example, and the pushback always takes the form of “you can already do that in Java, so we don’t need closures.”&lt;/BLOCKQUOTE&gt;

To what extent do the people offering pushback actually know more than one language?  And &quot;I programmed in X for two weeks back in college&quot; doesn&#039;t count it.  Nor does &quot;I know both Java and C#!&quot; (which reminds me of the joke from the Blues Brothers- &quot;We play both kinds of music here- country and western!&quot;).

Java and C++ are especially bad with this- with the rise of schools that taught Java or C++ as first programming languages, it&#039;s now possible for someone to have gotten a degree in CS, and have 5-10 years of professional development experience, and &lt;EM&gt;never learned a second language&lt;/EM&gt;.

At which point, Robert&#039;s comment really doesn&#039;t hold.  If you only have one point of view, you have no depth perception- and if you only know one language, you have no ability to judge the advantage or disadvantage of adding a given feature to the lanuage (or the advantage or disadvantage of other languages).</description>
		<content:encoded><![CDATA[<blockquote><p>Perhaps this isn’t true of the development community in general, but my experience with the Java community is that people don’t appreciate that syntax makes a difference: I’ve had numerous debates on various forums about why Java should have closures, for example, and the pushback always takes the form of “you can already do that in Java, so we don’t need closures.”</p></blockquote>
<p>To what extent do the people offering pushback actually know more than one language?  And &#8220;I programmed in X for two weeks back in college&#8221; doesn&#8217;t count it.  Nor does &#8220;I know both Java and C#!&#8221; (which reminds me of the joke from the Blues Brothers- &#8220;We play both kinds of music here- country and western!&#8221;).</p>
<p>Java and C++ are especially bad with this- with the rise of schools that taught Java or C++ as first programming languages, it&#8217;s now possible for someone to have gotten a degree in CS, and have 5-10 years of professional development experience, and <em>never learned a second language</em>.</p>
<p>At which point, Robert&#8217;s comment really doesn&#8217;t hold.  If you only have one point of view, you have no depth perception- and if you only know one language, you have no ability to judge the advantage or disadvantage of adding a given feature to the lanuage (or the advantage or disadvantage of other languages).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: links for 2008-05-01 -- Chip&#8217;s Quips</title>
		<link>http://guidewiredevelopment.wordpress.com/2008/04/29/syntax-matters/#comment-167</link>
		<dc:creator>links for 2008-05-01 -- Chip&#8217;s Quips</dc:creator>
		<pubDate>Thu, 01 May 2008 08:39:41 +0000</pubDate>
		<guid isPermaLink="false">http://guidewiredevelopment.wordpress.com/?p=38#comment-167</guid>
		<description>[...] Syntax Matters « Development at Guidewire If it didn&#8217;t, we&#8217;d still all be using assembly language. Thanks, Reg. (tags: programming syntax complexity coding readability) [...]</description>
		<content:encoded><![CDATA[<p>[...] Syntax Matters « Development at Guidewire If it didn&#8217;t, we&#8217;d still all be using assembly language. Thanks, Reg. (tags: programming syntax complexity coding readability) [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alan Keefer</title>
		<link>http://guidewiredevelopment.wordpress.com/2008/04/29/syntax-matters/#comment-162</link>
		<dc:creator>Alan Keefer</dc:creator>
		<pubDate>Thu, 01 May 2008 06:22:10 +0000</pubDate>
		<guid isPermaLink="false">http://guidewiredevelopment.wordpress.com/?p=38#comment-162</guid>
		<description>@Robert:

Perhaps this isn&#039;t true of the development community in general, but my experience with the Java community is that people don&#039;t appreciate that syntax makes a difference:  I&#039;ve had numerous debates on various forums about why Java should have closures, for example, and the pushback always takes the form of &quot;you can already do that in Java, so we don&#039;t need closures.&quot;  So I was just trying to emphasize that saying &quot;we can already do X&quot; is not in itself a good reason for rejecting better ways to do X.  Developers in general are often far too defensive about their tools, languages, and techniques, and there&#039;s a large lost opportunity for improvement as a result.

It is interesting that the arguments start to sound the same; everyone&#039;s trying to get to the same place as far as more expressive, less-verbose, harder to screw up, more maintainable code, people just disagree on how exactly to get there.  And inevitably people gravitate towards the tools they&#039;re most familiar with (including me), which makes it difficult to truly be objective about what tradeoffs we&#039;re really making when we choose static or dynamic typing.  GScript&#039;s type system pushes it much closer to the Java camp than to the Ocaml camp, which at least is an improvement thanks to type inference and lets us do certain kinds of metaprogramming, but the Ocaml type system really seems like more of the &quot;right thing.&quot;  I appreciate the effort to point out to people that static typing doesn&#039;t have to suck, though; far too often people assume &quot;static typing&quot; implies something in the C/Java mold along with all their limitations.</description>
		<content:encoded><![CDATA[<p>@Robert:</p>
<p>Perhaps this isn&#8217;t true of the development community in general, but my experience with the Java community is that people don&#8217;t appreciate that syntax makes a difference:  I&#8217;ve had numerous debates on various forums about why Java should have closures, for example, and the pushback always takes the form of &#8220;you can already do that in Java, so we don&#8217;t need closures.&#8221;  So I was just trying to emphasize that saying &#8220;we can already do X&#8221; is not in itself a good reason for rejecting better ways to do X.  Developers in general are often far too defensive about their tools, languages, and techniques, and there&#8217;s a large lost opportunity for improvement as a result.</p>
<p>It is interesting that the arguments start to sound the same; everyone&#8217;s trying to get to the same place as far as more expressive, less-verbose, harder to screw up, more maintainable code, people just disagree on how exactly to get there.  And inevitably people gravitate towards the tools they&#8217;re most familiar with (including me), which makes it difficult to truly be objective about what tradeoffs we&#8217;re really making when we choose static or dynamic typing.  GScript&#8217;s type system pushes it much closer to the Java camp than to the Ocaml camp, which at least is an improvement thanks to type inference and lets us do certain kinds of metaprogramming, but the Ocaml type system really seems like more of the &#8220;right thing.&#8221;  I appreciate the effort to point out to people that static typing doesn&#8217;t have to suck, though; far too often people assume &#8220;static typing&#8221; implies something in the C/Java mold along with all their limitations.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert Fischer</title>
		<link>http://guidewiredevelopment.wordpress.com/2008/04/29/syntax-matters/#comment-161</link>
		<dc:creator>Robert Fischer</dc:creator>
		<pubDate>Thu, 01 May 2008 05:04:41 +0000</pubDate>
		<guid isPermaLink="false">http://guidewiredevelopment.wordpress.com/?p=38#comment-161</guid>
		<description>(Got here by way of Raganwald&#039;s link feed.)

I&#039;m kinda with Thomas: yeah, syntax is a big deal, and I&#039;m not sure there are people out there who deny that.  Maybe there are people out there who deny the importance of syntax and other language design considerations, but I don&#039;t really see them.  Basically, if you know more than one language, it&#039;s hard to not recognize the differences between them: there&#039;s a practical impact that&#039;s pretty obvious pretty fast.  As my co-blogger, Brian Hurt, puts it: &quot;It’s not what a programming language make possible, it’s what a programming language make easy which determines what patterns are common and what patterns aren’t.&quot;[1] 

One really interesting thing did jump out with me from this post, though, and it apparently piqued Raganwald, too:
“Less code takes longer to write, but the real benefits are around maintenance: less code means less of a chance of bugs, less to keep in your head, less for someone else (or yourself 6 months later) to read through and learn, less to test, and less to modify when you change the rest of the system.”

Just s/less code/type checked code/g and this sounds &lt;em&gt;exactly&lt;/em&gt; like my argumentation for static typing, particularly given the more compact syntax of implied static typing languages like Ocaml [2].  It&#039;s really funny.

[1] http://enfranchisedmind.com/blog/2007/07/10/the-hole-in-the-middle-pattern 
[2] http://enfranchisedmind.com/blog/2008/04/14/useful-things-about-static-typing/</description>
		<content:encoded><![CDATA[<p>(Got here by way of Raganwald&#8217;s link feed.)</p>
<p>I&#8217;m kinda with Thomas: yeah, syntax is a big deal, and I&#8217;m not sure there are people out there who deny that.  Maybe there are people out there who deny the importance of syntax and other language design considerations, but I don&#8217;t really see them.  Basically, if you know more than one language, it&#8217;s hard to not recognize the differences between them: there&#8217;s a practical impact that&#8217;s pretty obvious pretty fast.  As my co-blogger, Brian Hurt, puts it: &#8220;It’s not what a programming language make possible, it’s what a programming language make easy which determines what patterns are common and what patterns aren’t.&#8221;[1] </p>
<p>One really interesting thing did jump out with me from this post, though, and it apparently piqued Raganwald, too:<br />
“Less code takes longer to write, but the real benefits are around maintenance: less code means less of a chance of bugs, less to keep in your head, less for someone else (or yourself 6 months later) to read through and learn, less to test, and less to modify when you change the rest of the system.”</p>
<p>Just s/less code/type checked code/g and this sounds <em>exactly</em> like my argumentation for static typing, particularly given the more compact syntax of implied static typing languages like Ocaml [2].  It&#8217;s really funny.</p>
<p>[1] <a href="http://enfranchisedmind.com/blog/2007/07/10/the-hole-in-the-middle-pattern" rel="nofollow">http://enfranchisedmind.com/blog/2007/07/10/the-hole-in-the-middle-pattern</a><br />
[2] <a href="http://enfranchisedmind.com/blog/2008/04/14/useful-things-about-static-typing/" rel="nofollow">http://enfranchisedmind.com/blog/2008/04/14/useful-things-about-static-typing/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stuart Halloway</title>
		<link>http://guidewiredevelopment.wordpress.com/2008/04/29/syntax-matters/#comment-160</link>
		<dc:creator>Stuart Halloway</dc:creator>
		<pubDate>Thu, 01 May 2008 03:31:03 +0000</pubDate>
		<guid isPermaLink="false">http://guidewiredevelopment.wordpress.com/?p=38#comment-160</guid>
		<description>NIcely done! I would like to nominate a fifth main reason: rich consistency (http://blog.thinkrelevance.com/2008/5/1/rich-consistency)</description>
		<content:encoded><![CDATA[<p>NIcely done! I would like to nominate a fifth main reason: rich consistency (<a href="http://blog.thinkrelevance.com/2008/5/1/rich-consistency" rel="nofollow">http://blog.thinkrelevance.com/2008/5/1/rich-consistency</a>)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alan Keefer</title>
		<link>http://guidewiredevelopment.wordpress.com/2008/04/29/syntax-matters/#comment-155</link>
		<dc:creator>Alan Keefer</dc:creator>
		<pubDate>Wed, 30 Apr 2008 17:51:23 +0000</pubDate>
		<guid isPermaLink="false">http://guidewiredevelopment.wordpress.com/?p=38#comment-155</guid>
		<description>@nv1962:

I think that&#039;s a great analogy, and I think you put it much more succinctly than I did in distinguishing between syntax mattering and syntax being imperative.

@Daniel:

That&#039;s a great point about expressiveness.  I was trying to make a point like that with the &quot;map&quot; example:  in GScript, Ruby, or Python there&#039;s one canonical way to do it, whereas a language like Java has too many options that, as you say, give you the ability to either screw it up or at least make it confusing to the reader.  Likewise, I&#039;m sure there are even more ways to code that in x86 assembler.

I also like the analyze this using the concept of &quot;chunking&quot; of short-term memory, whereby most can keep (I believe) 7 +/- 2 &quot;chunks&quot; in their head at one time, so the key to keeping more in your head is to have those chunks contain more information (whole words instead of individual letters, for example).  Something like &quot;map&quot; is a pre-made chunk, whereas the Java for loop is about 3 or 4 different chunks, so it becomes harder to keep the whole program in your head.  That&#039;s naturally also an argument for decomposition, which is also key, but languages that encourage you to write in higher-level chunks will naturally lead to programs that are easier to get your head around.

You can also think of chunks in terms of things like chess openings; becoming a grand-master chess player is very much about having pre-built chunks to draw from stored in long-term memory.  Higher-level languages give you those pre-built chunks that you can store in your mental backpack and pull out more easily when necessary (either when reading or writing), while less-expressive languages make that harder to do.</description>
		<content:encoded><![CDATA[<p>@nv1962:</p>
<p>I think that&#8217;s a great analogy, and I think you put it much more succinctly than I did in distinguishing between syntax mattering and syntax being imperative.</p>
<p>@Daniel:</p>
<p>That&#8217;s a great point about expressiveness.  I was trying to make a point like that with the &#8220;map&#8221; example:  in GScript, Ruby, or Python there&#8217;s one canonical way to do it, whereas a language like Java has too many options that, as you say, give you the ability to either screw it up or at least make it confusing to the reader.  Likewise, I&#8217;m sure there are even more ways to code that in x86 assembler.</p>
<p>I also like the analyze this using the concept of &#8220;chunking&#8221; of short-term memory, whereby most can keep (I believe) 7 +/- 2 &#8220;chunks&#8221; in their head at one time, so the key to keeping more in your head is to have those chunks contain more information (whole words instead of individual letters, for example).  Something like &#8220;map&#8221; is a pre-made chunk, whereas the Java for loop is about 3 or 4 different chunks, so it becomes harder to keep the whole program in your head.  That&#8217;s naturally also an argument for decomposition, which is also key, but languages that encourage you to write in higher-level chunks will naturally lead to programs that are easier to get your head around.</p>
<p>You can also think of chunks in terms of things like chess openings; becoming a grand-master chess player is very much about having pre-built chunks to draw from stored in long-term memory.  Higher-level languages give you those pre-built chunks that you can store in your mental backpack and pull out more easily when necessary (either when reading or writing), while less-expressive languages make that harder to do.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel Bernier</title>
		<link>http://guidewiredevelopment.wordpress.com/2008/04/29/syntax-matters/#comment-154</link>
		<dc:creator>Daniel Bernier</dc:creator>
		<pubDate>Wed, 30 Apr 2008 12:03:19 +0000</pubDate>
		<guid isPermaLink="false">http://guidewiredevelopment.wordpress.com/?p=38#comment-154</guid>
		<description>&quot;...being able to do task X with 50 lines of code is preferable to needing 500 lines of code to do task X. Less code takes longer to write, but the real benefits are around maintenance: less code means less of a chance of bugs, less to keep in your head, less for someone else (or yourself 6 months later) to read through and learn, less to test, and less to modify when you change the rest of the system.&quot;

Here&#039;s the really nasty bit about this:  if I write in 500 lines of Blub what you write in (say) 50 lines of Lisp, it&#039;s 

When we say things like &quot;these 500 lines of java would be 50 lines of ruby, or 20 of lisp,&quot; it sounds like it&#039;s trivial to translate the other way, to turn 50 ruby lines into 500 java lines, like they&#039;re equivalent.  But of course, it&#039;s not: explain a 50-line ruby snip to 10 blub programmers, and you&#039;ll get 10 very different 500-line blub programs.

Each line of code, each token, is a decision point, something to consider, and that&#039;s where less-expressive languages hurt us: they put more decisions in our way, they give us more chances to screw up.</description>
		<content:encoded><![CDATA[<p>&#8220;&#8230;being able to do task X with 50 lines of code is preferable to needing 500 lines of code to do task X. Less code takes longer to write, but the real benefits are around maintenance: less code means less of a chance of bugs, less to keep in your head, less for someone else (or yourself 6 months later) to read through and learn, less to test, and less to modify when you change the rest of the system.&#8221;</p>
<p>Here&#8217;s the really nasty bit about this:  if I write in 500 lines of Blub what you write in (say) 50 lines of Lisp, it&#8217;s </p>
<p>When we say things like &#8220;these 500 lines of java would be 50 lines of ruby, or 20 of lisp,&#8221; it sounds like it&#8217;s trivial to translate the other way, to turn 50 ruby lines into 500 java lines, like they&#8217;re equivalent.  But of course, it&#8217;s not: explain a 50-line ruby snip to 10 blub programmers, and you&#8217;ll get 10 very different 500-line blub programs.</p>
<p>Each line of code, each token, is a decision point, something to consider, and that&#8217;s where less-expressive languages hurt us: they put more decisions in our way, they give us more chances to screw up.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: cozumelkid</title>
		<link>http://guidewiredevelopment.wordpress.com/2008/04/29/syntax-matters/#comment-152</link>
		<dc:creator>cozumelkid</dc:creator>
		<pubDate>Wed, 30 Apr 2008 03:36:15 +0000</pubDate>
		<guid isPermaLink="false">http://guidewiredevelopment.wordpress.com/?p=38#comment-152</guid>
		<description>This may not be right on the syntax subject, but it may be interesting.  In the 1980&#039;s I had a job, with the State of Oklahoma, where we deployed an AS400 to take manage 40,000 accounts.  There were 9 secretaries under me.  Some of the secretaries would input OKC, some input, O.K.C., some input Okla. City, some would input OK City, some input Oklahoma City, and some would mix up the Oo, Kk, Cc&#039;s.  Everything went fine until one day I had to find some one in Oklahoma City.  A compliance letter went out.  The next day that person was in my office trying to figure out why his license fee was not properly recorded.  I saw the problem immediately, and called a meeting of the secretaries, invited the person in question so he would know we were on the job, the secretaries saw him as a real person, and we began to go back through the whole database the next day because the person who was hired to manage the AS400 didn&#039;t know how to write a routine in RPG for the fix.  Later I called in the experts, and from then on it didn&#039;t make much difference what the input was because it was all standardized with Oklahoma City.  By the way, that was the real name of the place, not OKC.</description>
		<content:encoded><![CDATA[<p>This may not be right on the syntax subject, but it may be interesting.  In the 1980&#8217;s I had a job, with the State of Oklahoma, where we deployed an AS400 to take manage 40,000 accounts.  There were 9 secretaries under me.  Some of the secretaries would input OKC, some input, O.K.C., some input Okla. City, some would input OK City, some input Oklahoma City, and some would mix up the Oo, Kk, Cc&#8217;s.  Everything went fine until one day I had to find some one in Oklahoma City.  A compliance letter went out.  The next day that person was in my office trying to figure out why his license fee was not properly recorded.  I saw the problem immediately, and called a meeting of the secretaries, invited the person in question so he would know we were on the job, the secretaries saw him as a real person, and we began to go back through the whole database the next day because the person who was hired to manage the AS400 didn&#8217;t know how to write a routine in RPG for the fix.  Later I called in the experts, and from then on it didn&#8217;t make much difference what the input was because it was all standardized with Oklahoma City.  By the way, that was the real name of the place, not OKC.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
