<?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: C++ in Coders at Work</title>
	<atom:link href="http://gigamonkeys.wordpress.com/2009/10/16/coders-c-plus-plus/feed/" rel="self" type="application/rss+xml" />
	<link>http://gigamonkeys.wordpress.com/2009/10/16/coders-c-plus-plus/</link>
	<description></description>
	<lastBuildDate>Tue, 21 May 2013 19:39:03 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: jancajthaml</title>
		<link>http://gigamonkeys.wordpress.com/2009/10/16/coders-c-plus-plus/#comment-297</link>
		<dc:creator><![CDATA[jancajthaml]]></dc:creator>
		<pubDate>Sat, 27 Apr 2013 16:22:30 +0000</pubDate>
		<guid isPermaLink="false">http://gigamonkeys.wordpress.com/?p=162#comment-297</guid>
		<description><![CDATA[point for you :)]]></description>
		<content:encoded><![CDATA[<p>point for you <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jancajthaml</title>
		<link>http://gigamonkeys.wordpress.com/2009/10/16/coders-c-plus-plus/#comment-295</link>
		<dc:creator><![CDATA[jancajthaml]]></dc:creator>
		<pubDate>Wed, 24 Apr 2013 21:28:05 +0000</pubDate>
		<guid isPermaLink="false">http://gigamonkeys.wordpress.com/?p=162#comment-295</guid>
		<description><![CDATA[One comment.
C++ is platform/chipset dependent (if you know multithreading or quantum programming) its really slow for atomic operations and its really unstable (lot of debugging lot of patching etc.)

Java is platform independent (dependend on JVM) its as fast as you can write (you can embed assembly native link for atomic operations) its is robust if you build it robust.

I know from ADA,Ruby,Perl,COBOL,C/C++/C#,Java,Objective C so from my work experiences Java MAKES YOU WRITE GOOD CODE IN FIRST PLACE so you will build good architecture from bottom-up. C/C++ makes you use external libraries and rewrite your code for specific platform (chipset) so its more time and work expensive.

I would highly recommend everyone who is hating on Java or C/C++ to try to write really good and clean code in both and then decide objectively which is better.

And don&#039;t try to use argument that &quot;C++ has pointers and destructors and phantom references and transient/volatile attributes etc.&quot; because Java have them too, you just were too lazy to notice.

Sure you can write shitty code like a pig import every JDK1.1 library from 90&#039;s and leave all the optimalisation on Java Heap, but then please don&#039;t be angry on Java but be angry to yourself because you are shitty coder and you didn&#039;t try.

I have written ARM chipset protocols for bank CISCO routers on top of Java and I would NEVER DO THAT IN C/C++ because of fixed bus and unsigned short hack. That is the magic of JVM --&gt; You are working with virtual instances and even when something goes wrong you can rely of multithreading and soft-reset single instance not whole application.

Thats just some words to defend Java and C/C++ .... its not about language itself, its about fucking habits of coders who were raised/trained on that language.

And I admit sometime when I see someones code I just want tu punch them for irresponsibility.]]></description>
		<content:encoded><![CDATA[<p>One comment.<br />
C++ is platform/chipset dependent (if you know multithreading or quantum programming) its really slow for atomic operations and its really unstable (lot of debugging lot of patching etc.)</p>
<p>Java is platform independent (dependend on JVM) its as fast as you can write (you can embed assembly native link for atomic operations) its is robust if you build it robust.</p>
<p>I know from ADA,Ruby,Perl,COBOL,C/C++/C#,Java,Objective C so from my work experiences Java MAKES YOU WRITE GOOD CODE IN FIRST PLACE so you will build good architecture from bottom-up. C/C++ makes you use external libraries and rewrite your code for specific platform (chipset) so its more time and work expensive.</p>
<p>I would highly recommend everyone who is hating on Java or C/C++ to try to write really good and clean code in both and then decide objectively which is better.</p>
<p>And don&#8217;t try to use argument that &#8220;C++ has pointers and destructors and phantom references and transient/volatile attributes etc.&#8221; because Java have them too, you just were too lazy to notice.</p>
<p>Sure you can write shitty code like a pig import every JDK1.1 library from 90&#8242;s and leave all the optimalisation on Java Heap, but then please don&#8217;t be angry on Java but be angry to yourself because you are shitty coder and you didn&#8217;t try.</p>
<p>I have written ARM chipset protocols for bank CISCO routers on top of Java and I would NEVER DO THAT IN C/C++ because of fixed bus and unsigned short hack. That is the magic of JVM &#8211;&gt; You are working with virtual instances and even when something goes wrong you can rely of multithreading and soft-reset single instance not whole application.</p>
<p>Thats just some words to defend Java and C/C++ &#8230;. its not about language itself, its about fucking habits of coders who were raised/trained on that language.</p>
<p>And I admit sometime when I see someones code I just want tu punch them for irresponsibility.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jancajthaml</title>
		<link>http://gigamonkeys.wordpress.com/2009/10/16/coders-c-plus-plus/#comment-294</link>
		<dc:creator><![CDATA[jancajthaml]]></dc:creator>
		<pubDate>Wed, 24 Apr 2013 21:16:53 +0000</pubDate>
		<guid isPermaLink="false">http://gigamonkeys.wordpress.com/?p=162#comment-294</guid>
		<description><![CDATA[You develop CMS systems in J2EE of I don&#039;t kno wolfram alpha core in Java (don&#039;t mistake Java for Aplet) of you develop ATM machine on ARM chipset? C++ is dead and its not sustainable for larger projects.]]></description>
		<content:encoded><![CDATA[<p>You develop CMS systems in J2EE of I don&#8217;t kno wolfram alpha core in Java (don&#8217;t mistake Java for Aplet) of you develop ATM machine on ARM chipset? C++ is dead and its not sustainable for larger projects.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Not Impressed</title>
		<link>http://gigamonkeys.wordpress.com/2009/10/16/coders-c-plus-plus/#comment-288</link>
		<dc:creator><![CDATA[Not Impressed]]></dc:creator>
		<pubDate>Thu, 07 Mar 2013 16:37:46 +0000</pubDate>
		<guid isPermaLink="false">http://gigamonkeys.wordpress.com/?p=162#comment-288</guid>
		<description><![CDATA[I entered computing in the late 1980&#039;s, which was probably a &quot;golden-period&quot; for learning to program. It was the first time that a programmer could have an entire machine to himself/herself, with very fast edit/compile/link/execute/debug cycles. Had I started a few years earlier, I would have been using punch cards. A few years later, and I would have been overwhelmed by the Internet revolution.

I know that there are a lot of people who are reading this post would simply like for C++ to die. I am going to explain why those people feel that way, IMO, after pointing out a few mundane facts about C++.

1. In C++, the Standard Library is technically not part of the language, whereas in languages like JAVA, the library is inseparable from the language. IMO, this is the biggest &quot;drawback&quot; in C++. I feel that the people who made STL were not given sufficient time to &quot;find the classes&quot; in C++. In fact, there are highly-useful container classes that I use every day that simply do not exist in STL. At the very least, the set of primitives should have been made complete. Again, I do not think this is the fault of the creators of STL. It takes time to have enough insight and perspective to &quot;find the classes&quot;. Even more, once those classes are found, one needs a huge amount of self-restraint to not get carried away with fantastic notion - I am talking about the separation of algorithms and objects here. 

2. Languages like JAVA/C#/Python/etc. are not really portable. Supporters of these non-C/C++ languages hijacked the interpretation of &quot;portable&quot; (no pun intended). By definition, and by precedent, portability meant that a language could be compiled and executed for pretty much any machine: past, present, and future. This is not true for the non C/C++ languages. Those languages often only run on one machine - the virtual machine in which they execute. Ironically, those virtual machines are often written in a truly-portable language, like C or C++. There are machines from the 1970&#039;s that will run C/C++, but will not run Java. There are machines that will exist after 2020 that will run C++, but not Ruby.

4. C++ is not &quot;just another programming language&quot;. It is impossible to be an excellent C++ programmer without being a good software engineer. And it is impossible to be an excellent software engineer without understanding computer architecture. Therefore, claiming to be an expert in C++ implies good knowledge of computer architecture. Claiming to be an expert in, say, Ruby, implies no such thing. Evidence of this fact can be seen in recent software-engineering job postings. The recruiter will often write: &quot;Wanted C++/Ruby/Perl/Python programmer.&quot; What is happening here is that the hiring manager actually wants a Ruby or Perl or Python programmer (since the company actually never uses), but they add &quot;C++&quot;, because they know the value of someone who has deep understanding of computer engineering, and that they are more likely to get a candidate with that skill ~if~ the candidate has deep understanding of C++.

5. In any field of engineering, there are primitives that the engineer must use to build a system. For example, a 15-meter-tall robot will be built of large primitives like steel tubes; medium-sized primitives like hoses, gears, and clamps; and small primitives like resistors, capacitors, and digital accelerometers. A tenet of good engineering is that the toolbox of primitives be (a) complete (b) well-distributed. The second part (b) is particularly important. It means that, if part of your robot needs a 50kg pneumatic tube, so be it: If another part requires a photo-transistor that is the size of a pea, then you have that also. The entire panorama of primitives is optimal when the engineer is able to go &quot;maximally macro&quot; and &quot;minimally micro&quot; and also everything in between. That is a power of C++. C++ allows the engineer to go maximally-macro with data structures that might be over 100MB each and yet still be assigned and copied as if they were scalars. It allows the engineer to go minimally-micro by fiddling with the bits of a memory-mapped I/O register on 8-core CPU that requires software bus-mastering. And it allows hitting every necessity in between. Not even C allows generalized programmer-defined assignment of data structures.

What do all these facts mean? Power. The power of C++ is unprecedented. It allows a single engineer to create massive applications alone. It allows reachability to the entire system space of computer programming. There is no limit to what can be achieved. Worst-case scenario where C++ is so foreign to the task at hand is that a run-time interpreter can be hosted by a program written in C++. The opposite is not true. Ruby cannot be made to fiddle with DMA registers without help from C++-like code. In some ways,This frightens and/or irritates some people. Many people would rather we all be &quot;more or less in the same boat&quot; when it comes to what can be achieved with our toolboxes. They would rather we all face the same limitations, so as to level the playing field. You can always identify such people easily - they are the ones that want C++ to die, the use of it affects them or not. They would also prefer that, if there is a way to do something, like send a file over the Internet using HTTP, that it be done in a uniform, consistent manager, where everyone does it the same way, even if that way is sub-optimal. In other words, they prefer that the library of the language be part of the language proper. And finally, let&#039;s face it: different brains are wired differently. If I had to play &quot;Mary Had A Little Lamb&quot; on a guitar, at the risk of death, I&#039;d be dead. I have no artistic ability whatsoever, and I am OK with that. This is probably the biggest reason of all. There is a certain uneasiness that comes from knowing your neighbor has mental faculties that allows him to do something that you cannot, something that is currently highly regarded and highly rewarded.]]></description>
		<content:encoded><![CDATA[<p>I entered computing in the late 1980&#8242;s, which was probably a &#8220;golden-period&#8221; for learning to program. It was the first time that a programmer could have an entire machine to himself/herself, with very fast edit/compile/link/execute/debug cycles. Had I started a few years earlier, I would have been using punch cards. A few years later, and I would have been overwhelmed by the Internet revolution.</p>
<p>I know that there are a lot of people who are reading this post would simply like for C++ to die. I am going to explain why those people feel that way, IMO, after pointing out a few mundane facts about C++.</p>
<p>1. In C++, the Standard Library is technically not part of the language, whereas in languages like JAVA, the library is inseparable from the language. IMO, this is the biggest &#8220;drawback&#8221; in C++. I feel that the people who made STL were not given sufficient time to &#8220;find the classes&#8221; in C++. In fact, there are highly-useful container classes that I use every day that simply do not exist in STL. At the very least, the set of primitives should have been made complete. Again, I do not think this is the fault of the creators of STL. It takes time to have enough insight and perspective to &#8220;find the classes&#8221;. Even more, once those classes are found, one needs a huge amount of self-restraint to not get carried away with fantastic notion &#8211; I am talking about the separation of algorithms and objects here. </p>
<p>2. Languages like JAVA/C#/Python/etc. are not really portable. Supporters of these non-C/C++ languages hijacked the interpretation of &#8220;portable&#8221; (no pun intended). By definition, and by precedent, portability meant that a language could be compiled and executed for pretty much any machine: past, present, and future. This is not true for the non C/C++ languages. Those languages often only run on one machine &#8211; the virtual machine in which they execute. Ironically, those virtual machines are often written in a truly-portable language, like C or C++. There are machines from the 1970&#8242;s that will run C/C++, but will not run Java. There are machines that will exist after 2020 that will run C++, but not Ruby.</p>
<p>4. C++ is not &#8220;just another programming language&#8221;. It is impossible to be an excellent C++ programmer without being a good software engineer. And it is impossible to be an excellent software engineer without understanding computer architecture. Therefore, claiming to be an expert in C++ implies good knowledge of computer architecture. Claiming to be an expert in, say, Ruby, implies no such thing. Evidence of this fact can be seen in recent software-engineering job postings. The recruiter will often write: &#8220;Wanted C++/Ruby/Perl/Python programmer.&#8221; What is happening here is that the hiring manager actually wants a Ruby or Perl or Python programmer (since the company actually never uses), but they add &#8220;C++&#8221;, because they know the value of someone who has deep understanding of computer engineering, and that they are more likely to get a candidate with that skill ~if~ the candidate has deep understanding of C++.</p>
<p>5. In any field of engineering, there are primitives that the engineer must use to build a system. For example, a 15-meter-tall robot will be built of large primitives like steel tubes; medium-sized primitives like hoses, gears, and clamps; and small primitives like resistors, capacitors, and digital accelerometers. A tenet of good engineering is that the toolbox of primitives be (a) complete (b) well-distributed. The second part (b) is particularly important. It means that, if part of your robot needs a 50kg pneumatic tube, so be it: If another part requires a photo-transistor that is the size of a pea, then you have that also. The entire panorama of primitives is optimal when the engineer is able to go &#8220;maximally macro&#8221; and &#8220;minimally micro&#8221; and also everything in between. That is a power of C++. C++ allows the engineer to go maximally-macro with data structures that might be over 100MB each and yet still be assigned and copied as if they were scalars. It allows the engineer to go minimally-micro by fiddling with the bits of a memory-mapped I/O register on 8-core CPU that requires software bus-mastering. And it allows hitting every necessity in between. Not even C allows generalized programmer-defined assignment of data structures.</p>
<p>What do all these facts mean? Power. The power of C++ is unprecedented. It allows a single engineer to create massive applications alone. It allows reachability to the entire system space of computer programming. There is no limit to what can be achieved. Worst-case scenario where C++ is so foreign to the task at hand is that a run-time interpreter can be hosted by a program written in C++. The opposite is not true. Ruby cannot be made to fiddle with DMA registers without help from C++-like code. In some ways,This frightens and/or irritates some people. Many people would rather we all be &#8220;more or less in the same boat&#8221; when it comes to what can be achieved with our toolboxes. They would rather we all face the same limitations, so as to level the playing field. You can always identify such people easily &#8211; they are the ones that want C++ to die, the use of it affects them or not. They would also prefer that, if there is a way to do something, like send a file over the Internet using HTTP, that it be done in a uniform, consistent manager, where everyone does it the same way, even if that way is sub-optimal. In other words, they prefer that the library of the language be part of the language proper. And finally, let&#8217;s face it: different brains are wired differently. If I had to play &#8220;Mary Had A Little Lamb&#8221; on a guitar, at the risk of death, I&#8217;d be dead. I have no artistic ability whatsoever, and I am OK with that. This is probably the biggest reason of all. There is a certain uneasiness that comes from knowing your neighbor has mental faculties that allows him to do something that you cannot, something that is currently highly regarded and highly rewarded.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: From Android to iOS: Coding &#124; EP Studios</title>
		<link>http://gigamonkeys.wordpress.com/2009/10/16/coders-c-plus-plus/#comment-282</link>
		<dc:creator><![CDATA[From Android to iOS: Coding &#124; EP Studios]]></dc:creator>
		<pubDate>Tue, 08 Jan 2013 14:16:51 +0000</pubDate>
		<guid isPermaLink="false">http://gigamonkeys.wordpress.com/?p=162#comment-282</guid>
		<description><![CDATA[[...] in some ways more elegant approach to adding objects to C than that of C++, which has become almost too complex to use.  And thankfully when I took up Objective C the language had introduced ARC (automatic reference [...]]]></description>
		<content:encoded><![CDATA[<p>[...] in some ways more elegant approach to adding objects to C than that of C++, which has become almost too complex to use.  And thankfully when I took up Objective C the language had introduced ARC (automatic reference [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Craig</title>
		<link>http://gigamonkeys.wordpress.com/2009/10/16/coders-c-plus-plus/#comment-280</link>
		<dc:creator><![CDATA[Craig]]></dc:creator>
		<pubDate>Wed, 26 Dec 2012 18:55:17 +0000</pubDate>
		<guid isPermaLink="false">http://gigamonkeys.wordpress.com/?p=162#comment-280</guid>
		<description><![CDATA[Yeah, those guys have all made great software and most are either very well paid or rich. Who are you? Have you got a lot of money are are you just sticking your chest out in a pathetic and desperate attempt to impress?]]></description>
		<content:encoded><![CDATA[<p>Yeah, those guys have all made great software and most are either very well paid or rich. Who are you? Have you got a lot of money are are you just sticking your chest out in a pathetic and desperate attempt to impress?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Craig</title>
		<link>http://gigamonkeys.wordpress.com/2009/10/16/coders-c-plus-plus/#comment-279</link>
		<dc:creator><![CDATA[Craig]]></dc:creator>
		<pubDate>Wed, 26 Dec 2012 18:52:29 +0000</pubDate>
		<guid isPermaLink="false">http://gigamonkeys.wordpress.com/?p=162#comment-279</guid>
		<description><![CDATA[Tell that to the industry luminaries and geniuses he was quoting. Wait, who are you again?]]></description>
		<content:encoded><![CDATA[<p>Tell that to the industry luminaries and geniuses he was quoting. Wait, who are you again?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Oleg Alekseev</title>
		<link>http://gigamonkeys.wordpress.com/2009/10/16/coders-c-plus-plus/#comment-272</link>
		<dc:creator><![CDATA[Oleg Alekseev]]></dc:creator>
		<pubDate>Thu, 11 Oct 2012 07:51:04 +0000</pubDate>
		<guid isPermaLink="false">http://gigamonkeys.wordpress.com/?p=162#comment-272</guid>
		<description><![CDATA[//amended the text
After reading the book it was postponed to the negative attitude of coders with С+ +
All this is merged into the post &quot;C + + in Coders at Work&quot;
The only ones who who defended the C language was Ken Thompson and little Donald Knuth]]></description>
		<content:encoded><![CDATA[<p>//amended the text<br />
After reading the book it was postponed to the negative attitude of coders with С+ +<br />
All this is merged into the post &#8220;C + + in Coders at Work&#8221;<br />
The only ones who who defended the C language was Ken Thompson and little Donald Knuth</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Oleg Alekseev</title>
		<link>http://gigamonkeys.wordpress.com/2009/10/16/coders-c-plus-plus/#comment-271</link>
		<dc:creator><![CDATA[Oleg Alekseev]]></dc:creator>
		<pubDate>Thu, 11 Oct 2012 07:47:11 +0000</pubDate>
		<guid isPermaLink="false">http://gigamonkeys.wordpress.com/?p=162#comment-271</guid>
		<description><![CDATA[Was postponed to the negative attitude of encoders with + +
All this is merged into the post &quot;C + + in Coders at Work&quot;
The only one who defended the C language was Ken Thompson and little Donald Knuth.]]></description>
		<content:encoded><![CDATA[<p>Was postponed to the negative attitude of encoders with + +<br />
All this is merged into the post &#8220;C + + in Coders at Work&#8221;<br />
The only one who defended the C language was Ken Thompson and little Donald Knuth.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: aidenn0Jason</title>
		<link>http://gigamonkeys.wordpress.com/2009/10/16/coders-c-plus-plus/#comment-261</link>
		<dc:creator><![CDATA[aidenn0Jason]]></dc:creator>
		<pubDate>Fri, 27 Apr 2012 22:37:23 +0000</pubDate>
		<guid isPermaLink="false">http://gigamonkeys.wordpress.com/?p=162#comment-261</guid>
		<description><![CDATA[I know I&#039;m commenting on an ancient post, but as someone who works in the embedded industry, I see a lot of C and C++.  My opinion is that C++ and C really do take the same approach for feature design:

For any given feature, what is the easiest way to specify it so that the compiler writers don&#039;t have to do too much work.

Now C is much more usable than C++ only because it has so many fewer features.

In both languages you can very easily reason about the generated assembly for non-optimizing compilers, but C++ has many features that are painfully slow without more advanced optimizations, whereas the same is not true about C (though the scope of allowed optimizations are one place where people get tripped up with C).]]></description>
		<content:encoded><![CDATA[<p>I know I&#8217;m commenting on an ancient post, but as someone who works in the embedded industry, I see a lot of C and C++.  My opinion is that C++ and C really do take the same approach for feature design:</p>
<p>For any given feature, what is the easiest way to specify it so that the compiler writers don&#8217;t have to do too much work.</p>
<p>Now C is much more usable than C++ only because it has so many fewer features.</p>
<p>In both languages you can very easily reason about the generated assembly for non-optimizing compilers, but C++ has many features that are painfully slow without more advanced optimizations, whereas the same is not true about C (though the scope of allowed optimizations are one place where people get tripped up with C).</p>
]]></content:encoded>
	</item>
</channel>
</rss>
