<?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: Giving a heading light</title>
	<atom:link href="http://windwings.wordpress.com/2009/11/15/giving-a-heading-light/feed/" rel="self" type="application/rss+xml" />
	<link>http://windwings.wordpress.com/2009/11/15/giving-a-heading-light/</link>
	<description>...On the Wings of the Software Wind</description>
	<lastBuildDate>Wed, 08 Sep 2010 12:09:56 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: Iva</title>
		<link>http://windwings.wordpress.com/2009/11/15/giving-a-heading-light/comment-page-1/#comment-2109</link>
		<dc:creator>Iva</dc:creator>
		<pubDate>Mon, 08 Mar 2010 09:52:03 +0000</pubDate>
		<guid isPermaLink="false">http://wings-of-wind.com/?p=524#comment-2109</guid>
		<description>This is the reason I read wings-of-wind.com. Unbelievable post.</description>
		<content:encoded><![CDATA[<p>This is the reason I read wings-of-wind.com. Unbelievable post.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Community pulse: New ways to enhance Delphi &#171; Wings of Wind Software</title>
		<link>http://windwings.wordpress.com/2009/11/15/giving-a-heading-light/comment-page-1/#comment-1789</link>
		<dc:creator>Community pulse: New ways to enhance Delphi &#171; Wings of Wind Software</dc:creator>
		<pubDate>Fri, 04 Dec 2009 18:11:59 +0000</pubDate>
		<guid isPermaLink="false">http://wings-of-wind.com/?p=524#comment-1789</guid>
		<description>[...] to do give feedback on this, the vast majority of you proved it many times, including in the last poll which we made. The results are depicted in our classical pie on the [...]</description>
		<content:encoded><![CDATA[<p>[...] to do give feedback on this, the vast majority of you proved it many times, including in the last poll which we made. The results are depicted in our classical pie on the [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rudy Velthuis</title>
		<link>http://windwings.wordpress.com/2009/11/15/giving-a-heading-light/comment-page-1/#comment-1776</link>
		<dc:creator>Rudy Velthuis</dc:creator>
		<pubDate>Fri, 20 Nov 2009 01:45:11 +0000</pubDate>
		<guid isPermaLink="false">http://wings-of-wind.com/?p=524#comment-1776</guid>
		<description>Ok, currently Concat does not do that &quot;in place&quot; anymore. I have no idea whether it is slower or not. Fact is that Add() is a wrong name. += is IMO just as wrong. 

A better name would be Append(), I guess:

  Append(OrigStr, TailStr);

Note that for complex string manipulation, you can better use TStringBuilder, which already has an Append method.</description>
		<content:encoded><![CDATA[<p>Ok, currently Concat does not do that &#8220;in place&#8221; anymore. I have no idea whether it is slower or not. Fact is that Add() is a wrong name. += is IMO just as wrong. </p>
<p>A better name would be Append(), I guess:</p>
<p>  Append(OrigStr, TailStr);</p>
<p>Note that for complex string manipulation, you can better use TStringBuilder, which already has an Append method.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Wings of Wind</title>
		<link>http://windwings.wordpress.com/2009/11/15/giving-a-heading-light/comment-page-1/#comment-1773</link>
		<dc:creator>Wings of Wind</dc:creator>
		<pubDate>Thu, 19 Nov 2009 06:42:24 +0000</pubDate>
		<guid isPermaLink="false">http://wings-of-wind.com/?p=524#comment-1773</guid>
		<description>The += operator means that the original string is modified &#039;in place&#039;. Str1 += Str2 whereas Concat is totally equivalent with + (just slower). And yes, perhaps, the function name isn&#039;t the best one but I didn&#039;t found a better one to be also short and descriptive. But if you have a better idea...</description>
		<content:encoded><![CDATA[<p>The += operator means that the original string is modified &#8216;in place&#8217;. Str1 += Str2 whereas Concat is totally equivalent with + (just slower). And yes, perhaps, the function name isn&#8217;t the best one but I didn&#8217;t found a better one to be also short and descriptive. But if you have a better idea&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rudy Velthuis</title>
		<link>http://windwings.wordpress.com/2009/11/15/giving-a-heading-light/comment-page-1/#comment-1769</link>
		<dc:creator>Rudy Velthuis</dc:creator>
		<pubDate>Wed, 18 Nov 2009 23:59:36 +0000</pubDate>
		<guid isPermaLink="false">http://wings-of-wind.com/?p=524#comment-1769</guid>
		<description>There is a function like that already: Concat().

Add() for strings is nonsense, since you are not adding them, you are concatenating them.</description>
		<content:encoded><![CDATA[<p>There is a function like that already: Concat().</p>
<p>Add() for strings is nonsense, since you are not adding them, you are concatenating them.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Wings of Wind</title>
		<link>http://windwings.wordpress.com/2009/11/15/giving-a-heading-light/comment-page-1/#comment-1765</link>
		<dc:creator>Wings of Wind</dc:creator>
		<pubDate>Mon, 16 Nov 2009 09:34:51 +0000</pubDate>
		<guid isPermaLink="false">http://wings-of-wind.com/?p=524#comment-1765</guid>
		<description>While the idea can be applied (see my other reply to Jay) I think that in this case, &lt;em&gt;Inc&lt;/em&gt; means &lt;em&gt;&#039;increment&#039;&lt;/em&gt; so isn&#039;t quite self documenting. Also, &lt;code&gt;Inc&lt;/code&gt; and &lt;code&gt;Dec&lt;/code&gt; exists because it generates (at least in the past) much more efficient code than + and - . I don&#039;t know nowadays. Normally, the compiler should optimize this.</description>
		<content:encoded><![CDATA[<p>While the idea can be applied (see my other reply to Jay) I think that in this case, <em>Inc</em> means <em>&#8216;increment&#8217;</em> so isn&#8217;t quite self documenting. Also, <code>Inc</code> and <code>Dec</code> exists because it generates (at least in the past) much more efficient code than + and &#8211; . I don&#8217;t know nowadays. Normally, the compiler should optimize this.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Wings of Wind</title>
		<link>http://windwings.wordpress.com/2009/11/15/giving-a-heading-light/comment-page-1/#comment-1764</link>
		<dc:creator>Wings of Wind</dc:creator>
		<pubDate>Mon, 16 Nov 2009 09:30:29 +0000</pubDate>
		<guid isPermaLink="false">http://wings-of-wind.com/?p=524#comment-1764</guid>
		<description>So, you want something like...

[sourcecode language=&quot;Delphi&quot;]
procedure Add(var aStr: string; const aBStr: string);
begin
  aStr:=aStr+aBStr;
end;
[/sourcecode]

Of course you can enhance this by adding:
- overloaded versions ...and/or
- a variant version ...and/or
- a generic version ...and/or
- an array version (ie. a version to concatenate a variable number of strings: &lt;code&gt;function Add(var aStr: string; aPieces: array of string): string;&lt;/code&gt;
- make it a function to return the concatenated string. 

Perhaps the last one needs a little explanation:

[sourcecode language=&quot;Delphi&quot;]
function Add(var aStr: string; const aBStr: string): string;
begin
  aStr:=aStr+aBStr;
  Result:=aStr;
end;
[/sourcecode]

And to use it...

[sourcecode language=&quot;Delphi&quot;]
  foo:=&#039;Testing&#039;;
  bar:=Add(foo, &#039; Delphi&#039;);
  if foo = bar then
    ShowMessage(&#039;Everything is ok!&#039;);
[/sourcecode]</description>
		<content:encoded><![CDATA[<p>So, you want something like&#8230;</p>
<pre class="brush: delphi;">
procedure Add(var aStr: string; const aBStr: string);
begin
  aStr:=aStr+aBStr;
end;
</pre>
<p>Of course you can enhance this by adding:<br />
- overloaded versions &#8230;and/or<br />
- a variant version &#8230;and/or<br />
- a generic version &#8230;and/or<br />
- an array version (ie. a version to concatenate a variable number of strings: <code>function Add(var aStr: string; aPieces: array of string): string;</code><br />
- make it a function to return the concatenated string. </p>
<p>Perhaps the last one needs a little explanation:</p>
<pre class="brush: delphi;">
function Add(var aStr: string; const aBStr: string): string;
begin
  aStr:=aStr+aBStr;
  Result:=aStr;
end;
</pre>
<p>And to use it&#8230;</p>
<pre class="brush: delphi;">
  foo:='Testing';
  bar:=Add(foo, ' Delphi');
  if foo = bar then
    ShowMessage('Everything is ok!');
</pre>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anders Isaksson</title>
		<link>http://windwings.wordpress.com/2009/11/15/giving-a-heading-light/comment-page-1/#comment-1763</link>
		<dc:creator>Anders Isaksson</dc:creator>
		<pubDate>Mon, 16 Nov 2009 09:25:16 +0000</pubDate>
		<guid isPermaLink="false">http://wings-of-wind.com/?p=524#comment-1763</guid>
		<description>If your example is about strings it seems very counterintuitive to use the increment operator to concatenate strings - disregarding the fact that repeatedly concatenating strings is neither fast nor memory efficient.

Why save 0.7 seconds writing a line when it may cost hours for the people (among them, you) reading it (and some unspecified time for those *using* the program)? No, spend the extra second and save for the future!

If your example is about integers, the Inc(...) procedure is already there, has been there from the very beginning, and *is* the Pascal way of saying +=.</description>
		<content:encoded><![CDATA[<p>If your example is about strings it seems very counterintuitive to use the increment operator to concatenate strings &#8211; disregarding the fact that repeatedly concatenating strings is neither fast nor memory efficient.</p>
<p>Why save 0.7 seconds writing a line when it may cost hours for the people (among them, you) reading it (and some unspecified time for those *using* the program)? No, spend the extra second and save for the future!</p>
<p>If your example is about integers, the Inc(&#8230;) procedure is already there, has been there from the very beginning, and *is* the Pascal way of saying +=.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Felipe Piña</title>
		<link>http://windwings.wordpress.com/2009/11/15/giving-a-heading-light/comment-page-1/#comment-1762</link>
		<dc:creator>Felipe Piña</dc:creator>
		<pubDate>Mon, 16 Nov 2009 03:46:33 +0000</pubDate>
		<guid isPermaLink="false">http://wings-of-wind.com/?p=524#comment-1762</guid>
		<description>I was thinking also on some kind of standarisation for component creation, something like an Embarcadero certified best practices for component interface, what i mean is the usability between Raize components ans TMS software components, the first one are very straight foward and user friendly, the last one, it is not.</description>
		<content:encoded><![CDATA[<p>I was thinking also on some kind of standarisation for component creation, something like an Embarcadero certified best practices for component interface, what i mean is the usability between Raize components ans TMS software components, the first one are very straight foward and user friendly, the last one, it is not.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dimitrij</title>
		<link>http://windwings.wordpress.com/2009/11/15/giving-a-heading-light/comment-page-1/#comment-1761</link>
		<dc:creator>Dimitrij</dc:creator>
		<pubDate>Sun, 15 Nov 2009 20:42:17 +0000</pubDate>
		<guid isPermaLink="false">http://wings-of-wind.com/?p=524#comment-1761</guid>
		<description>&quot;Well, that’s a whole interesting discussion by itself. FreePascal gives the option to accept C++-like operators, and for some people that thing is really important.&quot;

Didn&#039;t know that. FreePascal guys rock! :)</description>
		<content:encoded><![CDATA[<p>&#8220;Well, that’s a whole interesting discussion by itself. FreePascal gives the option to accept C++-like operators, and for some people that thing is really important.&#8221;</p>
<p>Didn&#8217;t know that. FreePascal guys rock! <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Javier Santo Domingo</title>
		<link>http://windwings.wordpress.com/2009/11/15/giving-a-heading-light/comment-page-1/#comment-1760</link>
		<dc:creator>Javier Santo Domingo</dc:creator>
		<pubDate>Sun, 15 Nov 2009 19:24:43 +0000</pubDate>
		<guid isPermaLink="false">http://wings-of-wind.com/?p=524#comment-1760</guid>
		<description>Well, that&#039;s a whole interesting discussion by itself. FreePascal gives the option to accept C++-like operators, and for some people that thing is really important.
Operators has a big impact in programmer&#039;s migration path between languages. If you go to a language where you have already known operators, then you will fell more comfortable. That only thing just makes you feel the learning curve is easier.
This is somewhat controversial anyway, since our &quot;pascal-sense&quot; does not allow many of us to use that operators in pascal code. It&#039;s an heresy for our &quot;pascal-orthodoxy&quot;. But there is that double-slash comment introduced in Delphi so many versions ago, which has become almost the default for comments.
It&#039;s not a MUST, but I like to have the chance of using those operators when I want, they let you write easier code under some circumstances, but for some people can be more than a like-to-have. I think it&#039;s more than a language flexibility feature, it&#039;s an interesting way to make the capture of new pogrammers for the platform easier, speacially migrating from the different dialects of the C language. Of course that if you look at this subject only under that perspetive it&#039;s just syntax sugar for marketing porpuses, yes, but there is something more, it&#039;s also a thing that makes powerful the language itself, and we all want to code in the most powerful language possible.</description>
		<content:encoded><![CDATA[<p>Well, that&#8217;s a whole interesting discussion by itself. FreePascal gives the option to accept C++-like operators, and for some people that thing is really important.<br />
Operators has a big impact in programmer&#8217;s migration path between languages. If you go to a language where you have already known operators, then you will fell more comfortable. That only thing just makes you feel the learning curve is easier.<br />
This is somewhat controversial anyway, since our &#8220;pascal-sense&#8221; does not allow many of us to use that operators in pascal code. It&#8217;s an heresy for our &#8220;pascal-orthodoxy&#8221;. But there is that double-slash comment introduced in Delphi so many versions ago, which has become almost the default for comments.<br />
It&#8217;s not a MUST, but I like to have the chance of using those operators when I want, they let you write easier code under some circumstances, but for some people can be more than a like-to-have. I think it&#8217;s more than a language flexibility feature, it&#8217;s an interesting way to make the capture of new pogrammers for the platform easier, speacially migrating from the different dialects of the C language. Of course that if you look at this subject only under that perspetive it&#8217;s just syntax sugar for marketing porpuses, yes, but there is something more, it&#8217;s also a thing that makes powerful the language itself, and we all want to code in the most powerful language possible.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ritsaert Hornstra</title>
		<link>http://windwings.wordpress.com/2009/11/15/giving-a-heading-light/comment-page-1/#comment-1759</link>
		<dc:creator>Ritsaert Hornstra</dc:creator>
		<pubDate>Sun, 15 Nov 2009 19:17:40 +0000</pubDate>
		<guid isPermaLink="false">http://wings-of-wind.com/?p=524#comment-1759</guid>
		<description>You might use something like Inc( AStr, BStr ); then instead?</description>
		<content:encoded><![CDATA[<p>You might use something like Inc( AStr, BStr ); then instead?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jay Faubion</title>
		<link>http://windwings.wordpress.com/2009/11/15/giving-a-heading-light/comment-page-1/#comment-1758</link>
		<dc:creator>Jay Faubion</dc:creator>
		<pubDate>Sun, 15 Nov 2009 18:16:33 +0000</pubDate>
		<guid isPermaLink="false">http://wings-of-wind.com/?p=524#comment-1758</guid>
		<description>The only thing I took away from my foray into C# that I really liked was the += operator.

It&#039;s pretty nice being able to say 
    AStr += BStr;
instead of
  AStr := AStr + BStr;

That&#039;s my two cents.  Otherwise, I remain firmly in the Delphi camp.
I am a Microsoft Certified Developer but that was a tip of the hat to staying up with times and getting the credentials people want to see.</description>
		<content:encoded><![CDATA[<p>The only thing I took away from my foray into C# that I really liked was the += operator.</p>
<p>It&#8217;s pretty nice being able to say<br />
    AStr += BStr;<br />
instead of<br />
  AStr := AStr + BStr;</p>
<p>That&#8217;s my two cents.  Otherwise, I remain firmly in the Delphi camp.<br />
I am a Microsoft Certified Developer but that was a tip of the hat to staying up with times and getting the credentials people want to see.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
