<?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 (+5 VB.Net)</title>
	<atom:link href="http://joshmouch.wordpress.com/2007/02/16/syntax-5-vbnet/feed/" rel="self" type="application/rss+xml" />
	<link>http://joshmouch.wordpress.com/2007/02/16/syntax-5-vbnet/</link>
	<description>Love to Code</description>
	<lastBuildDate>Fri, 13 Nov 2009 12:00:59 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: dskrm bevtx</title>
		<link>http://joshmouch.wordpress.com/2007/02/16/syntax-5-vbnet/#comment-715</link>
		<dc:creator>dskrm bevtx</dc:creator>
		<pubDate>Thu, 11 Sep 2008 14:56:57 +0000</pubDate>
		<guid isPermaLink="false">http://joshmouch.wordpress.com/2007/02/16/syntax-5-vbnet/#comment-715</guid>
		<description>cxgoaf earmu zcmg hgwnj bdmzgyuxa ivzhu nuys</description>
		<content:encoded><![CDATA[<p>cxgoaf earmu zcmg hgwnj bdmzgyuxa ivzhu nuys</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: hobbit</title>
		<link>http://joshmouch.wordpress.com/2007/02/16/syntax-5-vbnet/#comment-425</link>
		<dc:creator>hobbit</dc:creator>
		<pubDate>Wed, 10 Oct 2007 02:41:58 +0000</pubDate>
		<guid isPermaLink="false">http://joshmouch.wordpress.com/2007/02/16/syntax-5-vbnet/#comment-425</guid>
		<description>You might want to check your c# examples before posting them.  Your strange switch example wouldn&#039;t compile in any version of the c# language.</description>
		<content:encoded><![CDATA[<p>You might want to check your c# examples before posting them.  Your strange switch example wouldn&#8217;t compile in any version of the c# language.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ken Granderson</title>
		<link>http://joshmouch.wordpress.com/2007/02/16/syntax-5-vbnet/#comment-129</link>
		<dc:creator>Ken Granderson</dc:creator>
		<pubDate>Fri, 13 Jul 2007 08:50:13 +0000</pubDate>
		<guid isPermaLink="false">http://joshmouch.wordpress.com/2007/02/16/syntax-5-vbnet/#comment-129</guid>
		<description>While I agree that VB.Net has better keywords than C#, I disagree with your exceptions.

For the record, I started doing Windows programming in C in 1990, then moved to C++ and Visual Basic by 1994, and have not looked back since.  From the late 70&#039;s, I learned and forgot about a dozen languages, including APL, which is the most incomprehensible language I have ever seen due to its liberal use of symbols, which is also the basis of most of my issues with C-style syntax.

My issue with the C-style syntax is that I believe that is is based on an outdated need to use the bare minimum storage possible for the code, and thus uses punctuation symbols in its syntax, which requires human beings to do a lot of symbol parsing in order to read C-style code.

VB&#039;s syntax recognizes that storage is more widely available and IDEs are smarter than they used to be, and thus can adopt a more verbose syntax that is (IMO) significantly easier for humans to read than C-style syntax.

Specifically regarding your exceptions:

#1: The keywords &#039;Sub&#039; and &#039;Function&#039; immediately inform me whether the method returns a value of not, rather than requiring me to remember that there is no such data type as a &#039;void.&#039;  Obvious visual cues like this save me brain CPU cycles better spent understanding the meaning of the code.  

Rather than &#039;use the same word/character to do 20 different things,&#039; &#039;Sub&#039; infers one type of method use, while &#039;Function&#039; infers another.

Also, VB uses explicit keywords to let you know that a block of code is a Sub/Function/etc, while C-style languages force you to use your brain as a code parser to distinguish between subs, functions, properties, etc. 

This makes it much easier to scan blocks of code that you did not write and more quickly understand what different blocks of code do, as well as makes it much easier to search for different types of code if you do not have VS available.

#2: &#039;AndAlso&#039; and &#039;OrElse&#039; are necessary to preserve legacy &#039;And&#039; and &#039;Or&#039; functionality.  I would say that this was a deficiency with the legacy VB language, which always evaluated both arguments before performing the logical operation.  I am sure that someone&#039;s old code would break if the functionality of &#039;And&#039; and &#039;Or&#039; were to change.

While I am not particularly fond of the terms &#039;AndAlso&#039; and &#039;OrElse,&#039; I do not have any better suggestions, so I accept them.  

I also appreciate &#039;IsNot,&#039; which finally obsoletes the counter-intuitive &#039;Not Is&#039; syntax that I found to be VB&#039;s most clumsy syntactical construct.

#3: Finally, I would be willing to wager a week&#039;s pay that I can visually find the start and end of nested VB blocks than any C# programmer can find the start and end of nested C# blocks, precisely because Whatever/End Whatever is precise and infinitely easier to spot with the human eye than curly braces, which look the same regardless of the type of code block they are defining, and look a lot like parentheses when you have been up too late.

Rather than use the curly brace &#039;to do 20 different things,&#039; Ifs are terminated with End Ifs, Whiles with End Whiles, and so on.  Again, the VB language makes the job of interpreting the code one step easier, which gives me more neurons for problem-solving rather than code parsing.

My basic feeling about the syntax differences is that C-style syntax forces you to spend too much time parsing code (oh, the fact that the property does not have a setter means that it is read only), while VB puts the meaning right in front of you (&#039;ReadOnly Property&#039;). 

Thus, IMO VB makes it harder to write undecipherable code, while C-style syntax almost encourages it via its use of symbols and more generic syntax constructs. 

While a terse syntax made sense 30 years ago, thanks to advances in storage and CPU power and the powerful IDEs that they have spawned, I find no redeeming value in continuing to perpetuate syntax based on an outdated set of requirements, when a more current philosophy of &#039;make the syntax as inutitive as possible and build keystroke saving shortcuts into the IDE&#039; generates (IMO) significantly easier to read and more maintainable code.</description>
		<content:encoded><![CDATA[<p>While I agree that VB.Net has better keywords than C#, I disagree with your exceptions.</p>
<p>For the record, I started doing Windows programming in C in 1990, then moved to C++ and Visual Basic by 1994, and have not looked back since.  From the late 70&#8217;s, I learned and forgot about a dozen languages, including APL, which is the most incomprehensible language I have ever seen due to its liberal use of symbols, which is also the basis of most of my issues with C-style syntax.</p>
<p>My issue with the C-style syntax is that I believe that is is based on an outdated need to use the bare minimum storage possible for the code, and thus uses punctuation symbols in its syntax, which requires human beings to do a lot of symbol parsing in order to read C-style code.</p>
<p>VB&#8217;s syntax recognizes that storage is more widely available and IDEs are smarter than they used to be, and thus can adopt a more verbose syntax that is (IMO) significantly easier for humans to read than C-style syntax.</p>
<p>Specifically regarding your exceptions:</p>
<p>#1: The keywords &#8216;Sub&#8217; and &#8216;Function&#8217; immediately inform me whether the method returns a value of not, rather than requiring me to remember that there is no such data type as a &#8216;void.&#8217;  Obvious visual cues like this save me brain CPU cycles better spent understanding the meaning of the code.  </p>
<p>Rather than &#8216;use the same word/character to do 20 different things,&#8217; &#8216;Sub&#8217; infers one type of method use, while &#8216;Function&#8217; infers another.</p>
<p>Also, VB uses explicit keywords to let you know that a block of code is a Sub/Function/etc, while C-style languages force you to use your brain as a code parser to distinguish between subs, functions, properties, etc. </p>
<p>This makes it much easier to scan blocks of code that you did not write and more quickly understand what different blocks of code do, as well as makes it much easier to search for different types of code if you do not have VS available.</p>
<p>#2: &#8216;AndAlso&#8217; and &#8216;OrElse&#8217; are necessary to preserve legacy &#8216;And&#8217; and &#8216;Or&#8217; functionality.  I would say that this was a deficiency with the legacy VB language, which always evaluated both arguments before performing the logical operation.  I am sure that someone&#8217;s old code would break if the functionality of &#8216;And&#8217; and &#8216;Or&#8217; were to change.</p>
<p>While I am not particularly fond of the terms &#8216;AndAlso&#8217; and &#8216;OrElse,&#8217; I do not have any better suggestions, so I accept them.  </p>
<p>I also appreciate &#8216;IsNot,&#8217; which finally obsoletes the counter-intuitive &#8216;Not Is&#8217; syntax that I found to be VB&#8217;s most clumsy syntactical construct.</p>
<p>#3: Finally, I would be willing to wager a week&#8217;s pay that I can visually find the start and end of nested VB blocks than any C# programmer can find the start and end of nested C# blocks, precisely because Whatever/End Whatever is precise and infinitely easier to spot with the human eye than curly braces, which look the same regardless of the type of code block they are defining, and look a lot like parentheses when you have been up too late.</p>
<p>Rather than use the curly brace &#8216;to do 20 different things,&#8217; Ifs are terminated with End Ifs, Whiles with End Whiles, and so on.  Again, the VB language makes the job of interpreting the code one step easier, which gives me more neurons for problem-solving rather than code parsing.</p>
<p>My basic feeling about the syntax differences is that C-style syntax forces you to spend too much time parsing code (oh, the fact that the property does not have a setter means that it is read only), while VB puts the meaning right in front of you (&#8216;ReadOnly Property&#8217;). </p>
<p>Thus, IMO VB makes it harder to write undecipherable code, while C-style syntax almost encourages it via its use of symbols and more generic syntax constructs. </p>
<p>While a terse syntax made sense 30 years ago, thanks to advances in storage and CPU power and the powerful IDEs that they have spawned, I find no redeeming value in continuing to perpetuate syntax based on an outdated set of requirements, when a more current philosophy of &#8216;make the syntax as inutitive as possible and build keystroke saving shortcuts into the IDE&#8217; generates (IMO) significantly easier to read and more maintainable code.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
