<?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/"
		>
<channel>
	<title>Comments on: Don&#8217;t bring C to a string fight</title>
	<atom:link href="http://www.trazoi.com/2009/08/05/dont-bring-c-to-a-string-fight/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.trazoi.com/2009/08/05/dont-bring-c-to-a-string-fight/</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Wed, 10 Feb 2010 20:04:46 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Trazoi &#187; Accursed OS specific errors</title>
		<link>http://www.trazoi.com/2009/08/05/dont-bring-c-to-a-string-fight/comment-page-1/#comment-48</link>
		<dc:creator>Trazoi &#187; Accursed OS specific errors</dc:creator>
		<pubDate>Tue, 11 Aug 2009 10:37:06 +0000</pubDate>
		<guid isPermaLink="false">http://www.trazoi.com/?p=106#comment-48</guid>
		<description>[...] I spent most of today&#8217;s programming inadvertently proving Andrew Russell&#8217;s points against C/C++ (see the comments to Don&#8217;t bring C to a string fight). [...]</description>
		<content:encoded><![CDATA[<p>[...] I spent most of today&#8217;s programming inadvertently proving Andrew Russell&#8217;s points against C/C++ (see the comments to Don&#8217;t bring C to a string fight). [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Shaw</title>
		<link>http://www.trazoi.com/2009/08/05/dont-bring-c-to-a-string-fight/comment-page-1/#comment-46</link>
		<dc:creator>David Shaw</dc:creator>
		<pubDate>Sun, 09 Aug 2009 22:30:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.trazoi.com/?p=106#comment-46</guid>
		<description>I did a bit of research, and the general advice for using C# on a Mac is &quot;Get Parallels and run Windows and Visual Studio&quot;. That&#039;s kind of defeating the reason why I develop on a Mac. :)

And C# has wxWidgets too? That library seems like it&#039;s been ported to every language.</description>
		<content:encoded><![CDATA[<p>I did a bit of research, and the general advice for using C# on a Mac is &#8220;Get Parallels and run Windows and Visual Studio&#8221;. That&#8217;s kind of defeating the reason why I develop on a Mac. <img src='http://www.trazoi.com/wp-php/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>And C# has wxWidgets too? That library seems like it&#8217;s been ported to every language.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andrew Russell</title>
		<link>http://www.trazoi.com/2009/08/05/dont-bring-c-to-a-string-fight/comment-page-1/#comment-45</link>
		<dc:creator>Andrew Russell</dc:creator>
		<pubDate>Sun, 09 Aug 2009 12:29:47 +0000</pubDate>
		<guid isPermaLink="false">http://www.trazoi.com/?p=106#comment-45</guid>
		<description>Well - I must admit that I&#039;ve never actually tried to use it cross-platform. So I&#039;m not really sure if the tools are up to the standard of Visual Studio (but then - not much else is either). But the language itself - and the libraries with little exception - are obviously OS neutral.

Mono actually has a bit of a step-up on regular .NET for Windows. The installation for .NET 3.5 is slow to the point of unusable for games - however 2.0 comes with Vista, so I just use that. Whereas Mono you can package the runtime itself (or a subset) to meet your needs.

(Aside: If you do need a cross-platform UI, and you need to go native, then my recommendation is wxWidgets.)</description>
		<content:encoded><![CDATA[<p>Well &#8211; I must admit that I&#8217;ve never actually tried to use it cross-platform. So I&#8217;m not really sure if the tools are up to the standard of Visual Studio (but then &#8211; not much else is either). But the language itself &#8211; and the libraries with little exception &#8211; are obviously OS neutral.</p>
<p>Mono actually has a bit of a step-up on regular .NET for Windows. The installation for .NET 3.5 is slow to the point of unusable for games &#8211; however 2.0 comes with Vista, so I just use that. Whereas Mono you can package the runtime itself (or a subset) to meet your needs.</p>
<p>(Aside: If you do need a cross-platform UI, and you need to go native, then my recommendation is wxWidgets.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Shaw</title>
		<link>http://www.trazoi.com/2009/08/05/dont-bring-c-to-a-string-fight/comment-page-1/#comment-44</link>
		<dc:creator>David Shaw</dc:creator>
		<pubDate>Sun, 09 Aug 2009 01:25:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.trazoi.com/?p=106#comment-44</guid>
		<description>True, but &quot;Java done right&quot; still sounds very Java-like. ;)

I also admit I&#039;m a bit uncertain as to the cross-platform friendliness of C#. I develop on Macs, and these days I aim for cross-platform between Mac and Windows from the get go. I admit it isn&#039;t straight-forward in C or C++ - libraries help, but there&#039;s a bit of hacking - and I&#039;m sure Mono might make that easier. But there&#039;s still a strong impression I get that C# is a Microsoft OS language; it&#039;s good for .NET in Windows and Xbox, but not so great a choice for Macs or Linux. I don&#039;t know if that impression is unwarranted these days, but I do know there&#039;s a very strong assumption you&#039;re primarily aiming for Windows, using .NET and working in Microsoft Visual C#. That can be a thorn when you&#039;re just starting out.

Eventually I&#039;ll need some GUI tools. I&#039;ll be using another language for those, as I&#039;d be crazy to write my tools in C. I was thinking of writing the tools in Python, but I might use that as a method for learning C#; or at least, a way of trialling it against Python. I recently trialled some cross-platform wiki software which included Tomboy Notes, a Mono app, so I know it can work. More Mac native than WikidPad (written in Python), too (although I prefer WikidPad for functionality reasons).</description>
		<content:encoded><![CDATA[<p>True, but &#8220;Java done right&#8221; still sounds very Java-like. <img src='http://www.trazoi.com/wp-php/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>I also admit I&#8217;m a bit uncertain as to the cross-platform friendliness of C#. I develop on Macs, and these days I aim for cross-platform between Mac and Windows from the get go. I admit it isn&#8217;t straight-forward in C or C++ &#8211; libraries help, but there&#8217;s a bit of hacking &#8211; and I&#8217;m sure Mono might make that easier. But there&#8217;s still a strong impression I get that C# is a Microsoft OS language; it&#8217;s good for .NET in Windows and Xbox, but not so great a choice for Macs or Linux. I don&#8217;t know if that impression is unwarranted these days, but I do know there&#8217;s a very strong assumption you&#8217;re primarily aiming for Windows, using .NET and working in Microsoft Visual C#. That can be a thorn when you&#8217;re just starting out.</p>
<p>Eventually I&#8217;ll need some GUI tools. I&#8217;ll be using another language for those, as I&#8217;d be crazy to write my tools in C. I was thinking of writing the tools in Python, but I might use that as a method for learning C#; or at least, a way of trialling it against Python. I recently trialled some cross-platform wiki software which included Tomboy Notes, a Mono app, so I know it can work. More Mac native than WikidPad (written in Python), too (although I prefer WikidPad for functionality reasons).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andrew Russell</title>
		<link>http://www.trazoi.com/2009/08/05/dont-bring-c-to-a-string-fight/comment-page-1/#comment-43</link>
		<dc:creator>Andrew Russell</dc:creator>
		<pubDate>Sun, 09 Aug 2009 01:03:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.trazoi.com/?p=106#comment-43</guid>
		<description>I wouldn&#039;t worry about it being like Java. When people call C# &quot;Java done right&quot;, they&#039;re not kidding.

Speaking of &quot;C-with-higher-language&quot; - C# can interop with C very capably, if that&#039;s what floats your boat :P</description>
		<content:encoded><![CDATA[<p>I wouldn&#8217;t worry about it being like Java. When people call C# &#8220;Java done right&#8221;, they&#8217;re not kidding.</p>
<p>Speaking of &#8220;C-with-higher-language&#8221; &#8211; C# can interop with C very capably, if that&#8217;s what floats your boat <img src='http://www.trazoi.com/wp-php/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Shaw</title>
		<link>http://www.trazoi.com/2009/08/05/dont-bring-c-to-a-string-fight/comment-page-1/#comment-42</link>
		<dc:creator>David Shaw</dc:creator>
		<pubDate>Sat, 08 Aug 2009 23:06:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.trazoi.com/?p=106#comment-42</guid>
		<description>I haven&#039;t yet properly considred C# - where properly consider involves  writing a small program with it. When I decide it&#039;s time to trial a new language I&#039;ve ended up picking other languages like Python. I know a lot of people swear by C#, but when I read overviews and sample programs it just feels a bit too much like Java to me. I never liked Java&#039;s rigid OO framework and its tendency for programming to feel like just a series of system library calls. (Although admittedly I&#039;ve only written a bare half dozen semi-serious apps with Java too.)

I&#039;m reviving C as my down-to-the-wire language mostly because, after a couple of years of working with higher level langauges, I&#039;ve realised that I actually like C. It&#039;s got a simplicity about it that I find helps when thinking through algorithms. For data types C only really has integers and floats; memory pointers are treated as integer addresses. You can get a feel for what the code is doing at any point of time. Of course, there&#039;s a bit of nostalgia here too; C is the first app quality language I learnt (after BASIC variants), I&#039;ve used it a fair bit in apps and games, and it&#039;s probably the langauge I&#039;d say I&#039;m best at.

The big (&lt;em&gt;big&lt;/em&gt;) downsides is that C doesn&#039;t do any housekeeping for you by default, so you&#039;ve got to put in error checks and be very careful about memory. And strings are a royal pain. ;)

While I&#039;m keeping C# in mind as an alternative, I&#039;m not going to switch languages until I&#039;ve done a proper test of this approach. If everything clicks into place, I&#039;m hoping a C-with-higher-language approachis good for me to work on experimental algorithm ideas. If however everything falls into a heap and the combination proves unworkable, I&#039;ll switch to something managed and scale back the algorithm ambition somewhat.</description>
		<content:encoded><![CDATA[<p>I haven&#8217;t yet properly considred C# &#8211; where properly consider involves  writing a small program with it. When I decide it&#8217;s time to trial a new language I&#8217;ve ended up picking other languages like Python. I know a lot of people swear by C#, but when I read overviews and sample programs it just feels a bit too much like Java to me. I never liked Java&#8217;s rigid OO framework and its tendency for programming to feel like just a series of system library calls. (Although admittedly I&#8217;ve only written a bare half dozen semi-serious apps with Java too.)</p>
<p>I&#8217;m reviving C as my down-to-the-wire language mostly because, after a couple of years of working with higher level langauges, I&#8217;ve realised that I actually like C. It&#8217;s got a simplicity about it that I find helps when thinking through algorithms. For data types C only really has integers and floats; memory pointers are treated as integer addresses. You can get a feel for what the code is doing at any point of time. Of course, there&#8217;s a bit of nostalgia here too; C is the first app quality language I learnt (after BASIC variants), I&#8217;ve used it a fair bit in apps and games, and it&#8217;s probably the langauge I&#8217;d say I&#8217;m best at.</p>
<p>The big (<em>big</em>) downsides is that C doesn&#8217;t do any housekeeping for you by default, so you&#8217;ve got to put in error checks and be very careful about memory. And strings are a royal pain. <img src='http://www.trazoi.com/wp-php/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>While I&#8217;m keeping C# in mind as an alternative, I&#8217;m not going to switch languages until I&#8217;ve done a proper test of this approach. If everything clicks into place, I&#8217;m hoping a C-with-higher-language approachis good for me to work on experimental algorithm ideas. If however everything falls into a heap and the combination proves unworkable, I&#8217;ll switch to something managed and scale back the algorithm ambition somewhat.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andrew Russell</title>
		<link>http://www.trazoi.com/2009/08/05/dont-bring-c-to-a-string-fight/comment-page-1/#comment-41</link>
		<dc:creator>Andrew Russell</dc:creator>
		<pubDate>Sat, 08 Aug 2009 08:09:39 +0000</pubDate>
		<guid isPermaLink="false">http://www.trazoi.com/?p=106#comment-41</guid>
		<description>Have I ever mentioned how terrific C# is? (aside: so is XNA)

There&#039;s no excuse for non-Microsoft platforms - Mono is just as solid. And there&#039;s no excuses about bytecode/JIT either: http://arstechnica.com/open-source/news/2009/01/open-source-mono-framework-brings-c-to-iphone-and-wii.ars


C++ is a productivity time-sink due to all the extra stuff you have to worry about. But that doesn&#039;t mean C is any better. Where you don&#039;t have to worry about templates and so on, you now find yourself worrying about strings and re-implementing yet more of what a modern standard library should contain.

And scripting in Lua or Python is just a hack to overcome the limitations of C/C++. With a sensible language in the first place, you won&#039;t need to bother. (AppDomains are useful if you actually care about 3rd party modding.)


Anyway - if you really, really must use C - it&#039;s worth remembering that C and C++ are interoperable for a reason. And C++ is multi-paridgm - you don&#039;t have to be all academic about orienting objects - leave that for the library developers.

There is no sense in giving up namespaces and std::string just to have the compiler stop you writing classes!</description>
		<content:encoded><![CDATA[<p>Have I ever mentioned how terrific C# is? (aside: so is XNA)</p>
<p>There&#8217;s no excuse for non-Microsoft platforms &#8211; Mono is just as solid. And there&#8217;s no excuses about bytecode/JIT either: <a href="http://arstechnica.com/open-source/news/2009/01/open-source-mono-framework-brings-c-to-iphone-and-wii.ars" rel="nofollow">http://arstechnica.com/open-source/news/2009/01/open-source-mono-framework-brings-c-to-iphone-and-wii.ars</a></p>
<p>C++ is a productivity time-sink due to all the extra stuff you have to worry about. But that doesn&#8217;t mean C is any better. Where you don&#8217;t have to worry about templates and so on, you now find yourself worrying about strings and re-implementing yet more of what a modern standard library should contain.</p>
<p>And scripting in Lua or Python is just a hack to overcome the limitations of C/C++. With a sensible language in the first place, you won&#8217;t need to bother. (AppDomains are useful if you actually care about 3rd party modding.)</p>
<p>Anyway &#8211; if you really, really must use C &#8211; it&#8217;s worth remembering that C and C++ are interoperable for a reason. And C++ is multi-paridgm &#8211; you don&#8217;t have to be all academic about orienting objects &#8211; leave that for the library developers.</p>
<p>There is no sense in giving up namespaces and std::string just to have the compiler stop you writing classes!</p>
]]></content:encoded>
	</item>
</channel>
</rss>
