<?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: Manage code yourself</title>
	<atom:link href="http://rastergrid.com/blog/2010/01/manage-code-yourself/feed/" rel="self" type="application/rss+xml" />
	<link>http://rastergrid.com/blog/2010/01/manage-code-yourself/</link>
	<description>A technical blog from Daniel Rákos (aka aqnuep)</description>
	<lastBuildDate>Sat, 28 Jan 2012 01:53:30 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: Daniel Rákos</title>
		<link>http://rastergrid.com/blog/2010/01/manage-code-yourself/comment-page-1/#comment-45</link>
		<dc:creator>Daniel Rákos</dc:creator>
		<pubDate>Wed, 10 Feb 2010 18:04:54 +0000</pubDate>
		<guid isPermaLink="false">http://rastergrid.com/blog/?p=10#comment-45</guid>
		<description>I totally agree with you, and I also think that the performance comparison would end up like you expect it.

However, even if we know that the order is the one you&#039;ve mentioned from point of view of performance, it would be nice to see exact numbers so one can choose that for a particular use case which language is the best, taking into account the efficiency and the obvious flexibility differences.</description>
		<content:encoded><![CDATA[<p>I totally agree with you, and I also think that the performance comparison would end up like you expect it.</p>
<p>However, even if we know that the order is the one you&#8217;ve mentioned from point of view of performance, it would be nice to see exact numbers so one can choose that for a particular use case which language is the best, taking into account the efficiency and the obvious flexibility differences.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: MaNiAc</title>
		<link>http://rastergrid.com/blog/2010/01/manage-code-yourself/comment-page-1/#comment-39</link>
		<dc:creator>MaNiAc</dc:creator>
		<pubDate>Wed, 10 Feb 2010 08:55:34 +0000</pubDate>
		<guid isPermaLink="false">http://rastergrid.com/blog/?p=10#comment-39</guid>
		<description>I haven&#039;t said that C# is as fast as C++ - it&#039;ll never be on the same hardware i think. :) I just wanted to say that for the average Joe coder the performance cut is almost negligible with hardware performance going upwards...

Best practice at the moment as i see - especially for game development - is mixing the two as Paulo has written it already. E.g. code your rendering engine and your AI library in C++ and the rest in C#. This is good especially that with C# you can do funky things like providing scripting interface which also uses C# as its script language. (So long, Lua!)

So in my opinion don&#039;t bother comparing performances, many tried before but i&#039;ve yet to see any useful comparison. Most probably you&#039;ll end up with something like this:

C++ &gt; .NET &gt; Java

The point is: the area where these technologies shine is different for each one. From my point of view:

C++ - high performance, semi-multiplatform (hello conditional compilation)
.NET - efficient development and prototyping, excellent tools
Java - truly multiplatform with a big freaking community :)</description>
		<content:encoded><![CDATA[<p>I haven&#8217;t said that C# is as fast as C++ &#8211; it&#8217;ll never be on the same hardware i think. <img src='http://rastergrid.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  I just wanted to say that for the average Joe coder the performance cut is almost negligible with hardware performance going upwards&#8230;</p>
<p>Best practice at the moment as i see &#8211; especially for game development &#8211; is mixing the two as Paulo has written it already. E.g. code your rendering engine and your AI library in C++ and the rest in C#. This is good especially that with C# you can do funky things like providing scripting interface which also uses C# as its script language. (So long, Lua!)</p>
<p>So in my opinion don&#8217;t bother comparing performances, many tried before but i&#8217;ve yet to see any useful comparison. Most probably you&#8217;ll end up with something like this:</p>
<p>C++ &gt; .NET &gt; Java</p>
<p>The point is: the area where these technologies shine is different for each one. From my point of view:</p>
<p>C++ &#8211; high performance, semi-multiplatform (hello conditional compilation)<br />
.NET &#8211; efficient development and prototyping, excellent tools<br />
Java &#8211; truly multiplatform with a big freaking community <img src='http://rastergrid.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel Rákos</title>
		<link>http://rastergrid.com/blog/2010/01/manage-code-yourself/comment-page-1/#comment-24</link>
		<dc:creator>Daniel Rákos</dc:creator>
		<pubDate>Tue, 09 Feb 2010 14:21:37 +0000</pubDate>
		<guid isPermaLink="false">http://rastergrid.com/blog/?p=10#comment-24</guid>
		<description>Okay, I don&#039;t want to get further with this argument until I have a closer look on .NET technologies, as already said several times I was primarily tried to blame Java and I simply assumed that .NET is not different from it.

However, if you are so convinced that C# is fast enough then I&#039;ll have to check it out.

I promise that I will do some research and come up with an article where I will compare the performance of C++, Java and C# in some common use case scenarios providing actual measurements.

Btw, I would be happy to see that C# is far more fast than Java because at least that would mean that only the guys at Sun made it go in the difficult and messy way.</description>
		<content:encoded><![CDATA[<p>Okay, I don&#8217;t want to get further with this argument until I have a closer look on .NET technologies, as already said several times I was primarily tried to blame Java and I simply assumed that .NET is not different from it.</p>
<p>However, if you are so convinced that C# is fast enough then I&#8217;ll have to check it out.</p>
<p>I promise that I will do some research and come up with an article where I will compare the performance of C++, Java and C# in some common use case scenarios providing actual measurements.</p>
<p>Btw, I would be happy to see that C# is far more fast than Java because at least that would mean that only the guys at Sun made it go in the difficult and messy way.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: MaNiAc</title>
		<link>http://rastergrid.com/blog/2010/01/manage-code-yourself/comment-page-1/#comment-23</link>
		<dc:creator>MaNiAc</dc:creator>
		<pubDate>Tue, 09 Feb 2010 13:59:16 +0000</pubDate>
		<guid isPermaLink="false">http://rastergrid.com/blog/?p=10#comment-23</guid>
		<description>In my opinion Java and .NET are a whole different story. Considering current usage areas of Java, i tend to believe that its primary target sooner or later will be Java EE which emphasises modularity, maintainability and reusability way over performance, while J2SE will be there for small-scale stuff like tools, etc where performance is also secondary.

.NET? Not sure where MS tries to go with that one... But i believe that they ultimately want to have .NET as &quot;the&quot; primary way of development for PC/XBox/RandomHandheldGadgetDevice. :)

Btw with hardware performance going crazy these days, the performance cut between for example C++ and C# is less an issue with each passing moment. If you want to argue with this, consider decision makers in huge companies: they rather buy more horsepower (hardware) once, instead of employing an extra number of experienced (and thus, expensive) programmers because the sourcecode is harder to maintain due to low-level parts.</description>
		<content:encoded><![CDATA[<p>In my opinion Java and .NET are a whole different story. Considering current usage areas of Java, i tend to believe that its primary target sooner or later will be Java EE which emphasises modularity, maintainability and reusability way over performance, while J2SE will be there for small-scale stuff like tools, etc where performance is also secondary.</p>
<p>.NET? Not sure where MS tries to go with that one&#8230; But i believe that they ultimately want to have .NET as &#8220;the&#8221; primary way of development for PC/XBox/RandomHandheldGadgetDevice. <img src='http://rastergrid.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Btw with hardware performance going crazy these days, the performance cut between for example C++ and C# is less an issue with each passing moment. If you want to argue with this, consider decision makers in huge companies: they rather buy more horsepower (hardware) once, instead of employing an extra number of experienced (and thus, expensive) programmers because the sourcecode is harder to maintain due to low-level parts.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel Rákos</title>
		<link>http://rastergrid.com/blog/2010/01/manage-code-yourself/comment-page-1/#comment-6</link>
		<dc:creator>Daniel Rákos</dc:creator>
		<pubDate>Thu, 21 Jan 2010 12:39:35 +0000</pubDate>
		<guid isPermaLink="false">http://rastergrid.com/blog/?p=10#comment-6</guid>
		<description>I wouldn&#039;t call the situations the same, maybe with the exception of assembly contra C, PL/I, Algol. E.g. C++ haven&#039;t introduced too much overhead compared to C. Actually it&#039;s almost nothing.

The fact why the need for e.g. C had to replace assembly as writing big projects in assembly is very hard and it&#039;s hard to maintain. However, I don&#039;t see that huge difference between C++ and Java as an example. C++ suits well also for enterprise applications, especially because the huge user base of C/C++ and the many different libraries that are available for them.

Maybe I&#039;ll have to get more experience with .NET as I&#039;m not really competent in that topic, but I mentioned it also in the article. My bad experiences are mostly related to Java.

Anyway, I would try to do some research and performance measurements to compare the performance of Java and C# for example, because maybe I&#039;m totally wrong and my concerns are totally irrelevant for .NET.</description>
		<content:encoded><![CDATA[<p>I wouldn&#8217;t call the situations the same, maybe with the exception of assembly contra C, PL/I, Algol. E.g. C++ haven&#8217;t introduced too much overhead compared to C. Actually it&#8217;s almost nothing.</p>
<p>The fact why the need for e.g. C had to replace assembly as writing big projects in assembly is very hard and it&#8217;s hard to maintain. However, I don&#8217;t see that huge difference between C++ and Java as an example. C++ suits well also for enterprise applications, especially because the huge user base of C/C++ and the many different libraries that are available for them.</p>
<p>Maybe I&#8217;ll have to get more experience with .NET as I&#8217;m not really competent in that topic, but I mentioned it also in the article. My bad experiences are mostly related to Java.</p>
<p>Anyway, I would try to do some research and performance measurements to compare the performance of Java and C# for example, because maybe I&#8217;m totally wrong and my concerns are totally irrelevant for .NET.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Paulo Pinto</title>
		<link>http://rastergrid.com/blog/2010/01/manage-code-yourself/comment-page-1/#comment-5</link>
		<dc:creator>Paulo Pinto</dc:creator>
		<pubDate>Thu, 21 Jan 2010 09:09:38 +0000</pubDate>
		<guid isPermaLink="false">http://rastergrid.com/blog/?p=10#comment-5</guid>
		<description>Nice to know that you are aware of such issues.

You know that you are repeating history, right?

Around 20 years ago, the programming magazines, ArpaNet and BBS were full of similar articles, but another languages.

Just replace C++ by C, and managed languages by C++ or Pascal. Oh the amount of flames discussing the performance issues of using a class or a virtual method call, or even array bounds checking. :)

And if you go even a few yeas back, you can replace native by Assembly and managed by C, PL/I, Algol.

And there are many native languages that offer the same amount of flexibility as Java or .Net and are not interpreted on the fly as you say.

Research a bit about D, Oberon, Modula-3, Eiffel, just to name a few.

And how the .Net JIT works as well, because contrary to usual JVM implementations, there is no interpretation phase in the CLR.

So have these issues in mind on your next topic about this issue.

I may be a very humble hobby graphics programmer, but I know my way around compiler development. :)</description>
		<content:encoded><![CDATA[<p>Nice to know that you are aware of such issues.</p>
<p>You know that you are repeating history, right?</p>
<p>Around 20 years ago, the programming magazines, ArpaNet and BBS were full of similar articles, but another languages.</p>
<p>Just replace C++ by C, and managed languages by C++ or Pascal. Oh the amount of flames discussing the performance issues of using a class or a virtual method call, or even array bounds checking. <img src='http://rastergrid.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>And if you go even a few yeas back, you can replace native by Assembly and managed by C, PL/I, Algol.</p>
<p>And there are many native languages that offer the same amount of flexibility as Java or .Net and are not interpreted on the fly as you say.</p>
<p>Research a bit about D, Oberon, Modula-3, Eiffel, just to name a few.</p>
<p>And how the .Net JIT works as well, because contrary to usual JVM implementations, there is no interpretation phase in the CLR.</p>
<p>So have these issues in mind on your next topic about this issue.</p>
<p>I may be a very humble hobby graphics programmer, but I know my way around compiler development. <img src='http://rastergrid.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel Rákos</title>
		<link>http://rastergrid.com/blog/2010/01/manage-code-yourself/comment-page-1/#comment-4</link>
		<dc:creator>Daniel Rákos</dc:creator>
		<pubDate>Wed, 20 Jan 2010 09:29:58 +0000</pubDate>
		<guid isPermaLink="false">http://rastergrid.com/blog/?p=10#comment-4</guid>
		<description>I agree that the Java and .NET specific languages are compiled but in a JIT manner. Also the GNU compiler collection provides a Java compiler that actually produces native code.

However, as you also mentioned, the performance sensitive parts are still written in more efficient languages.
The slowdown inherently present in Java applications is coming from two sources, to be more accurate:
First, the fact that it is still interpreted on the fly, even if some code parts get actually compiled.
Second, the language features and library facilities provided by the corresponding Java or .NET based technology are actually not designed to be the most efficient but they rather designed for flexibility.

Yes, game developers &lt;strong&gt;do&lt;/strong&gt; use these languages but primarily to implement game logic, but this is not necessarily part of the core game engine.

I knew that this post won&#039;t be my most liked one but I totally accept your opinion and somewhat I agree with you and really thanks for the comment. As I mentioned it in the article several times, what I&#039;ve presented here is much more my private opinion rather than a scientific proof why not to use managed code languages.

By the way, I plan to talk more about the topic and next time I will try to come up with actual use cases to have some performance comparison and I will talk about when the trade off between performance and flexibility makes you choose whether to use native languages or managed code.</description>
		<content:encoded><![CDATA[<p>I agree that the Java and .NET specific languages are compiled but in a JIT manner. Also the GNU compiler collection provides a Java compiler that actually produces native code.</p>
<p>However, as you also mentioned, the performance sensitive parts are still written in more efficient languages.<br />
The slowdown inherently present in Java applications is coming from two sources, to be more accurate:<br />
First, the fact that it is still interpreted on the fly, even if some code parts get actually compiled.<br />
Second, the language features and library facilities provided by the corresponding Java or .NET based technology are actually not designed to be the most efficient but they rather designed for flexibility.</p>
<p>Yes, game developers <strong>do</strong> use these languages but primarily to implement game logic, but this is not necessarily part of the core game engine.</p>
<p>I knew that this post won&#8217;t be my most liked one but I totally accept your opinion and somewhat I agree with you and really thanks for the comment. As I mentioned it in the article several times, what I&#8217;ve presented here is much more my private opinion rather than a scientific proof why not to use managed code languages.</p>
<p>By the way, I plan to talk more about the topic and next time I will try to come up with actual use cases to have some performance comparison and I will talk about when the trade off between performance and flexibility makes you choose whether to use native languages or managed code.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Paulo Pinto</title>
		<link>http://rastergrid.com/blog/2010/01/manage-code-yourself/comment-page-1/#comment-3</link>
		<dc:creator>Paulo Pinto</dc:creator>
		<pubDate>Wed, 20 Jan 2010 08:31:34 +0000</pubDate>
		<guid isPermaLink="false">http://rastergrid.com/blog/?p=10#comment-3</guid>
		<description>I also have done C++ programming for quite a few years, but nowadays I spend most of my time with managed languages. 

And I am old enough to remember reading similar rants with languages that you maybe never used and are now dead.

If you had paid attention on your compiler design classes, you would know that Java and .Net on their current offering, are *compiled* languages.

Many game companies are now developing hibrid games where only the performance sensitive part is written in C/C++/Assembly, with most of the game being scripting in a &quot;managed&quot; language.

Just to name a few examples:

http://www.handy-games.com
http://www.gameloft.co.uk/
http://www.kongregate.com/
http://na.blackberry.com/eng/developers/
http://www.android.com/
http://creators.xna.com/en-GB
http://www.torquepowered.com/products/torquex-3d/
http://www.nordgame.com/
http://www.runescape.com/
http://www.banghowdy.com/
http://www.wowwiki.com/Lua
http://developer.nvidia.com/object/fx_composer_home.html
http://www.sodiumone.com/
http://en.wikipedia.org/wiki/Civilization_IV#Python
http://unity3d.com/unity/features/scripting

So yeah, you might not like managed languages, but many people in the games industry are getting their salary with managed languages.

You are entitled to your opinion but not everyone needs to be writing the next Crysis.</description>
		<content:encoded><![CDATA[<p>I also have done C++ programming for quite a few years, but nowadays I spend most of my time with managed languages. </p>
<p>And I am old enough to remember reading similar rants with languages that you maybe never used and are now dead.</p>
<p>If you had paid attention on your compiler design classes, you would know that Java and .Net on their current offering, are *compiled* languages.</p>
<p>Many game companies are now developing hibrid games where only the performance sensitive part is written in C/C++/Assembly, with most of the game being scripting in a &#8220;managed&#8221; language.</p>
<p>Just to name a few examples:</p>
<p><a href="http://www.handy-games.com" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/www.handy-games.com?referer=');">http://www.handy-games.com</a><br />
<a href="http://www.gameloft.co.uk/" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/www.gameloft.co.uk/?referer=');">http://www.gameloft.co.uk/</a><br />
<a href="http://www.kongregate.com/" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/www.kongregate.com/?referer=');">http://www.kongregate.com/</a><br />
<a href="http://na.blackberry.com/eng/developers/" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/na.blackberry.com/eng/developers/?referer=');">http://na.blackberry.com/eng/developers/</a><br />
<a href="http://www.android.com/" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/www.android.com/?referer=');">http://www.android.com/</a><br />
<a href="http://creators.xna.com/en-GB" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/creators.xna.com/en-GB?referer=');">http://creators.xna.com/en-GB</a><br />
<a href="http://www.torquepowered.com/products/torquex-3d/" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/www.torquepowered.com/products/torquex-3d/?referer=');">http://www.torquepowered.com/products/torquex-3d/</a><br />
<a href="http://www.nordgame.com/" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/www.nordgame.com/?referer=');">http://www.nordgame.com/</a><br />
<a href="http://www.runescape.com/" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/www.runescape.com/?referer=');">http://www.runescape.com/</a><br />
<a href="http://www.banghowdy.com/" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/www.banghowdy.com/?referer=');">http://www.banghowdy.com/</a><br />
<a href="http://www.wowwiki.com/Lua" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/www.wowwiki.com/Lua?referer=');">http://www.wowwiki.com/Lua</a><br />
<a href="http://developer.nvidia.com/object/fx_composer_home.html" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/developer.nvidia.com/object/fx_composer_home.html?referer=');">http://developer.nvidia.com/object/fx_composer_home.html</a><br />
<a href="http://www.sodiumone.com/" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/www.sodiumone.com/?referer=');">http://www.sodiumone.com/</a><br />
<a href="http://en.wikipedia.org/wiki/Civilization_IV#Python" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Civilization_IV_Python?referer=');">http://en.wikipedia.org/wiki/Civilization_IV#Python</a><br />
<a href="http://unity3d.com/unity/features/scripting" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/unity3d.com/unity/features/scripting?referer=');">http://unity3d.com/unity/features/scripting</a></p>
<p>So yeah, you might not like managed languages, but many people in the games industry are getting their salary with managed languages.</p>
<p>You are entitled to your opinion but not everyone needs to be writing the next Crysis.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

