<?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: Is C++ The Only Real Language?</title>
	<atom:link href="http://outofthetriangle.wordpress.com/2007/10/18/is-c-the-only-real-language/feed/" rel="self" type="application/rss+xml" />
	<link>http://outofthetriangle.wordpress.com/2007/10/18/is-c-the-only-real-language/</link>
	<description>Thoughts on software development management</description>
	<lastBuildDate>Sun, 30 Aug 2009 13:01:35 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: RIchard</title>
		<link>http://outofthetriangle.wordpress.com/2007/10/18/is-c-the-only-real-language/#comment-414</link>
		<dc:creator>RIchard</dc:creator>
		<pubDate>Sun, 01 Feb 2009 06:50:46 +0000</pubDate>
		<guid isPermaLink="false">http://outofthetriangle.wordpress.com/2007/10/18/is-c-the-only-real-language/#comment-414</guid>
		<description>The fact that you are trying to compare a compiled language vs. an interpreted or byte code compiled language says more about your knowledge of software engineering than it does anything about what is the &quot;one real language&quot;.</description>
		<content:encoded><![CDATA[<p>The fact that you are trying to compare a compiled language vs. an interpreted or byte code compiled language says more about your knowledge of software engineering than it does anything about what is the &#8220;one real language&#8221;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: alanw</title>
		<link>http://outofthetriangle.wordpress.com/2007/10/18/is-c-the-only-real-language/#comment-413</link>
		<dc:creator>alanw</dc:creator>
		<pubDate>Wed, 07 Jan 2009 18:32:42 +0000</pubDate>
		<guid isPermaLink="false">http://outofthetriangle.wordpress.com/2007/10/18/is-c-the-only-real-language/#comment-413</guid>
		<description>Great discussion!  I happened onto this as our company is in the throes of having two large engineering departments, one largely using Delphi, and one largely using C++, and the issues that come up between the pre-conceptions of both.

Alysha (and others) make some very good points that the particular standards depend upon your needs (isn&#039;t that the heart of engineering to begin with&gt;&gt; don&#039;t solve a problem you don&#039;t understand!)

However, I&#039;ll take issue with her on 
&gt;&gt;What’s wrong with them having their own
&gt;&gt;standards? I don’t even have to elaborate on
&gt;&gt;how silly that argument is.

True - it doesn&#039;t have to be ANSI!  But I think an important point, and one that makes #8 nearly the singular issue, is that you need a robust, consistent standards definition - and that really goes back to having a good, well-established and recognized standards body.  Anybody can check who&#039;s on the C++ standards committe, and nearly be blown away with the level of genious that sits there; and still the committee acts with quite a conservative deliberation about any new feature (or deprecation) it comes in contact with.  That robustness of definition is critical for professional quality code, IMHO!</description>
		<content:encoded><![CDATA[<p>Great discussion!  I happened onto this as our company is in the throes of having two large engineering departments, one largely using Delphi, and one largely using C++, and the issues that come up between the pre-conceptions of both.</p>
<p>Alysha (and others) make some very good points that the particular standards depend upon your needs (isn&#8217;t that the heart of engineering to begin with&gt;&gt; don&#8217;t solve a problem you don&#8217;t understand!)</p>
<p>However, I&#8217;ll take issue with her on<br />
&gt;&gt;What’s wrong with them having their own<br />
&gt;&gt;standards? I don’t even have to elaborate on<br />
&gt;&gt;how silly that argument is.</p>
<p>True &#8211; it doesn&#8217;t have to be ANSI!  But I think an important point, and one that makes #8 nearly the singular issue, is that you need a robust, consistent standards definition &#8211; and that really goes back to having a good, well-established and recognized standards body.  Anybody can check who&#8217;s on the C++ standards committe, and nearly be blown away with the level of genious that sits there; and still the committee acts with quite a conservative deliberation about any new feature (or deprecation) it comes in contact with.  That robustness of definition is critical for professional quality code, IMHO!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alysha</title>
		<link>http://outofthetriangle.wordpress.com/2007/10/18/is-c-the-only-real-language/#comment-401</link>
		<dc:creator>Alysha</dc:creator>
		<pubDate>Sun, 07 Dec 2008 20:44:01 +0000</pubDate>
		<guid isPermaLink="false">http://outofthetriangle.wordpress.com/2007/10/18/is-c-the-only-real-language/#comment-401</guid>
		<description>I think your definition, of what a programming language is, is flawed seriously.

1. Does the language compile?

What&#039;s wrong with interpreted languages? As long as the code can get the job done in it, then it&#039;s fine! Noticed that people normally use php scripts on the web instead of compiled CGI&#039;s...

2. Are a variety of IDEs and compilers from multiple vendors available for the language?

languages like delphi do have multiple IDEs (borland/codegear/lazarus project etc.) and anyone can make one if they so desired.

3. Does the language support multiple operating systems?

Reiterating what was stated earlier, Linux and Unix are different, they may look the same on the outside but they are different under the hood. Besides, anyone can transfer any language over to another OS. It&#039;s just a matter of compiling into another application structure (example: Windows PE to a Linux ELF)

4. Can the language create stand alone applications?

Back to 1., as long as the language can get the job done with minimal hassle it&#039;s fine.

5. Does the language support object orientation?

OOP came about with smalltalk but wasn&#039;t really used until C++. Are you saying that all languages before C++ weren&#039;t real languages? Is Assembly, not a real language? (since everything compiles / is converted down to it)

6. Is the language commonly used to write device drivers and other low level software?

Languages have strengths and weaknesses. Something like C++ would be great for device drivers, and Python would be a pain. But you can make a huge application waaaay faster in python than you can in C++, simply because python is simpler.  That&#039;s why it&#039;s good to know at least 2 languages, one for the low-level stuff, and another for simple RAD.

7. Does the language support pointers and direct memory allocation?

If the application you&#039;re working on doesn&#039;t require the use of pointers, do you really need to use a language with features that you probably won&#039;t even use?

8. Is there an ANSI standard for the language?

What&#039;s wrong with them having their own standards? I don&#039;t even have to elaborate on how silly that argument is.

9. Has the language ever been used to write an operating system?

Back to 6, and 7. I can take a month and write huge application in C++, or I can take a week and write it in python. Clearly, python saves time and lines of code, so as long as the project I&#039;m working on isn&#039;t an operating system or doesn&#039;t need to be extremely low-level, then i&#039;ll probably use python over c++. (I still love c++, no hard feelings, but there&#039;s a time and place for everything. PHP for websites, Python for small program, C++ for programs that really require a lot of power or need low-level access)

10. Does the language fit into the “if it’s possible it can be done” category?

Technically, anything can be done if you can bring modules/plugins into the language.</description>
		<content:encoded><![CDATA[<p>I think your definition, of what a programming language is, is flawed seriously.</p>
<p>1. Does the language compile?</p>
<p>What&#8217;s wrong with interpreted languages? As long as the code can get the job done in it, then it&#8217;s fine! Noticed that people normally use php scripts on the web instead of compiled CGI&#8217;s&#8230;</p>
<p>2. Are a variety of IDEs and compilers from multiple vendors available for the language?</p>
<p>languages like delphi do have multiple IDEs (borland/codegear/lazarus project etc.) and anyone can make one if they so desired.</p>
<p>3. Does the language support multiple operating systems?</p>
<p>Reiterating what was stated earlier, Linux and Unix are different, they may look the same on the outside but they are different under the hood. Besides, anyone can transfer any language over to another OS. It&#8217;s just a matter of compiling into another application structure (example: Windows PE to a Linux ELF)</p>
<p>4. Can the language create stand alone applications?</p>
<p>Back to 1., as long as the language can get the job done with minimal hassle it&#8217;s fine.</p>
<p>5. Does the language support object orientation?</p>
<p>OOP came about with smalltalk but wasn&#8217;t really used until C++. Are you saying that all languages before C++ weren&#8217;t real languages? Is Assembly, not a real language? (since everything compiles / is converted down to it)</p>
<p>6. Is the language commonly used to write device drivers and other low level software?</p>
<p>Languages have strengths and weaknesses. Something like C++ would be great for device drivers, and Python would be a pain. But you can make a huge application waaaay faster in python than you can in C++, simply because python is simpler.  That&#8217;s why it&#8217;s good to know at least 2 languages, one for the low-level stuff, and another for simple RAD.</p>
<p>7. Does the language support pointers and direct memory allocation?</p>
<p>If the application you&#8217;re working on doesn&#8217;t require the use of pointers, do you really need to use a language with features that you probably won&#8217;t even use?</p>
<p>8. Is there an ANSI standard for the language?</p>
<p>What&#8217;s wrong with them having their own standards? I don&#8217;t even have to elaborate on how silly that argument is.</p>
<p>9. Has the language ever been used to write an operating system?</p>
<p>Back to 6, and 7. I can take a month and write huge application in C++, or I can take a week and write it in python. Clearly, python saves time and lines of code, so as long as the project I&#8217;m working on isn&#8217;t an operating system or doesn&#8217;t need to be extremely low-level, then i&#8217;ll probably use python over c++. (I still love c++, no hard feelings, but there&#8217;s a time and place for everything. PHP for websites, Python for small program, C++ for programs that really require a lot of power or need low-level access)</p>
<p>10. Does the language fit into the “if it’s possible it can be done” category?</p>
<p>Technically, anything can be done if you can bring modules/plugins into the language.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: daz</title>
		<link>http://outofthetriangle.wordpress.com/2007/10/18/is-c-the-only-real-language/#comment-373</link>
		<dc:creator>daz</dc:creator>
		<pubDate>Mon, 10 Nov 2008 11:51:32 +0000</pubDate>
		<guid isPermaLink="false">http://outofthetriangle.wordpress.com/2007/10/18/is-c-the-only-real-language/#comment-373</guid>
		<description>I&#039;d like to inject the distinction between &#039;language&#039; and implementation (of) with regards to programming performed by humans. The only question I think you need to ask with regards to language is &quot;is it turing complete?&quot;, then perhaps an ordering of the languages by efficiency of use by humans. I THINK that this will be very subjective as a mathematician would probably make more powerful use of a functional language than a &#039;lay&#039; programmer would an imperative one.

But...c++/assember are my island companions.
Linguistically though I find Java more powerful with explicit closures and now that it has templates (which are one of the most useful features of c++) the compiler itself should be turing complete!</description>
		<content:encoded><![CDATA[<p>I&#8217;d like to inject the distinction between &#8216;language&#8217; and implementation (of) with regards to programming performed by humans. The only question I think you need to ask with regards to language is &#8220;is it turing complete?&#8221;, then perhaps an ordering of the languages by efficiency of use by humans. I THINK that this will be very subjective as a mathematician would probably make more powerful use of a functional language than a &#8216;lay&#8217; programmer would an imperative one.</p>
<p>But&#8230;c++/assember are my island companions.<br />
Linguistically though I find Java more powerful with explicit closures and now that it has templates (which are one of the most useful features of c++) the compiler itself should be turing complete!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rob</title>
		<link>http://outofthetriangle.wordpress.com/2007/10/18/is-c-the-only-real-language/#comment-343</link>
		<dc:creator>Rob</dc:creator>
		<pubDate>Mon, 06 Oct 2008 13:28:01 +0000</pubDate>
		<guid isPermaLink="false">http://outofthetriangle.wordpress.com/2007/10/18/is-c-the-only-real-language/#comment-343</guid>
		<description>I&#039;ll partially agree that knowing C++ is a prerequisite to being a programmer, but that is more because it teaches you the low-level stuff, and C does that on its own. Oh, and pointers are nasty. Any good C++ book will tell you to avoid them at all costs and use const references or a boost smart pointer instead.

I wouldn&#039;t say C++ is the only prerequisite to being a good programmer. You said in one of your comments that procedural and object-oriented styles of programming are radically different. No, they&#039;re not. OO is good, but radically different? Hardly. Go learn a functional language like Haskell or Scheme (MIT has a good book here, this IMO is a must-read for any coder: http://mitpress.mit.edu/sicp/full-text/book/book.html), or a logic language like Prolog, or a concurrent functional language like Erlang. If you think OO is thinking outside of the box, you haven&#039;t gone very far.

One thing to keep in mind is that languages often complement one another. You COULD do everything in C++, but that&#039;d take much longer than it would if you used some C++ foundations and used something like Ruby or Python to fill in the gaps where execution speed is not a bottleneck (game developers do this with Lua). As you pointed out, web app languages would not run without MySQL or Apache or whatever else you have there written in C++, but you get shit done a lot faster with the web app languages. You probably COULD write MySQL or Apache in Ruby and compile it down to machine-code, but it&#039;d be slow as shit. C++ complements the other languages in this way mainly because it strips out so many abstractions or adds all sorts of edge cases that add to the run-time efficiency of a program.

Also, you&#039;re putting the chicken before the egg. Suppose people had to choose only one language for anything. You&#039;d probably see real machine-code languages come out for things like Java or VB. The reason these languages don&#039;t compile to machine-language is because they don&#039;t have to, they have C++ to do it for them.

Finally, if we&#039;re going to discuss what makes a real programmer a real programmer, you&#039;re not a real programmer until you learn Vim or Emacs. I used to think that my fat IDE made me productive, and while they help in the refactoring/debugging process, Vim/Emacs helps you out the other 90% of the time - when you&#039;re coding.</description>
		<content:encoded><![CDATA[<p>I&#8217;ll partially agree that knowing C++ is a prerequisite to being a programmer, but that is more because it teaches you the low-level stuff, and C does that on its own. Oh, and pointers are nasty. Any good C++ book will tell you to avoid them at all costs and use const references or a boost smart pointer instead.</p>
<p>I wouldn&#8217;t say C++ is the only prerequisite to being a good programmer. You said in one of your comments that procedural and object-oriented styles of programming are radically different. No, they&#8217;re not. OO is good, but radically different? Hardly. Go learn a functional language like Haskell or Scheme (MIT has a good book here, this IMO is a must-read for any coder: <a href="http://mitpress.mit.edu/sicp/full-text/book/book.html)" rel="nofollow">http://mitpress.mit.edu/sicp/full-text/book/book.html)</a>, or a logic language like Prolog, or a concurrent functional language like Erlang. If you think OO is thinking outside of the box, you haven&#8217;t gone very far.</p>
<p>One thing to keep in mind is that languages often complement one another. You COULD do everything in C++, but that&#8217;d take much longer than it would if you used some C++ foundations and used something like Ruby or Python to fill in the gaps where execution speed is not a bottleneck (game developers do this with Lua). As you pointed out, web app languages would not run without MySQL or Apache or whatever else you have there written in C++, but you get shit done a lot faster with the web app languages. You probably COULD write MySQL or Apache in Ruby and compile it down to machine-code, but it&#8217;d be slow as shit. C++ complements the other languages in this way mainly because it strips out so many abstractions or adds all sorts of edge cases that add to the run-time efficiency of a program.</p>
<p>Also, you&#8217;re putting the chicken before the egg. Suppose people had to choose only one language for anything. You&#8217;d probably see real machine-code languages come out for things like Java or VB. The reason these languages don&#8217;t compile to machine-language is because they don&#8217;t have to, they have C++ to do it for them.</p>
<p>Finally, if we&#8217;re going to discuss what makes a real programmer a real programmer, you&#8217;re not a real programmer until you learn Vim or Emacs. I used to think that my fat IDE made me productive, and while they help in the refactoring/debugging process, Vim/Emacs helps you out the other 90% of the time &#8211; when you&#8217;re coding.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Killjoy</title>
		<link>http://outofthetriangle.wordpress.com/2007/10/18/is-c-the-only-real-language/#comment-222</link>
		<dc:creator>Killjoy</dc:creator>
		<pubDate>Wed, 19 Mar 2008 20:35:20 +0000</pubDate>
		<guid isPermaLink="false">http://outofthetriangle.wordpress.com/2007/10/18/is-c-the-only-real-language/#comment-222</guid>
		<description>Good programmer = C++ Programmer

I more inclined to believe that C++ is a prerequisite before you can call yourself a programmer at all. Anything else and your just a script kiddie with a hobby.

Harsh comment? 
I would view it as the general consensus for most commercial programmers working in today’s environment.</description>
		<content:encoded><![CDATA[<p>Good programmer = C++ Programmer</p>
<p>I more inclined to believe that C++ is a prerequisite before you can call yourself a programmer at all. Anything else and your just a script kiddie with a hobby.</p>
<p>Harsh comment?<br />
I would view it as the general consensus for most commercial programmers working in today’s environment.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: daviddaly</title>
		<link>http://outofthetriangle.wordpress.com/2007/10/18/is-c-the-only-real-language/#comment-196</link>
		<dc:creator>daviddaly</dc:creator>
		<pubDate>Wed, 12 Mar 2008 18:48:23 +0000</pubDate>
		<guid isPermaLink="false">http://outofthetriangle.wordpress.com/2007/10/18/is-c-the-only-real-language/#comment-196</guid>
		<description>Fair point Adam. However if I saw one person riding tricycle and another flying a fighter jet I would reach some conclusions about the relative ability of each person to control a vehicle. Of course I wouldn’t dare compare C++ to a fighter jet and batch files to a tricycle. That would just be asking for trouble…</description>
		<content:encoded><![CDATA[<p>Fair point Adam. However if I saw one person riding tricycle and another flying a fighter jet I would reach some conclusions about the relative ability of each person to control a vehicle. Of course I wouldn’t dare compare C++ to a fighter jet and batch files to a tricycle. That would just be asking for trouble…</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: adam</title>
		<link>http://outofthetriangle.wordpress.com/2007/10/18/is-c-the-only-real-language/#comment-192</link>
		<dc:creator>adam</dc:creator>
		<pubDate>Mon, 10 Mar 2008 16:49:55 +0000</pubDate>
		<guid isPermaLink="false">http://outofthetriangle.wordpress.com/2007/10/18/is-c-the-only-real-language/#comment-192</guid>
		<description>It is not logical to compare the language to the skill of the person using it.  Just because I go buy a brand new car doesn&#039;t make me any better of a driver.  This rating system makes no sense to judge developers by.

A better method would be questions about how much you understand the programming concepts related  to the language of your choice.</description>
		<content:encoded><![CDATA[<p>It is not logical to compare the language to the skill of the person using it.  Just because I go buy a brand new car doesn&#8217;t make me any better of a driver.  This rating system makes no sense to judge developers by.</p>
<p>A better method would be questions about how much you understand the programming concepts related  to the language of your choice.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chris</title>
		<link>http://outofthetriangle.wordpress.com/2007/10/18/is-c-the-only-real-language/#comment-141</link>
		<dc:creator>Chris</dc:creator>
		<pubDate>Tue, 19 Feb 2008 22:33:07 +0000</pubDate>
		<guid isPermaLink="false">http://outofthetriangle.wordpress.com/2007/10/18/is-c-the-only-real-language/#comment-141</guid>
		<description>Im sorry but: &quot;3. Does the language support multiple operating systems?

No answers of “Yes, Redhat Linux, Suse Linux and Unix” please, because those are just flavours. It’s like saying that VB6 supports Windows 98 and Windows 2000. Examples of operating systems that count as different are MacOS, Windows and Linux/Unix.&quot;

is not accurate.  The Unix Kernel and Linux kernel are completely different and thus are different platforms.


Also: &quot;Does the language support object orientation?&quot;  

is non-sense.  Functional programming languages (i.e. erlang, haskell) do not have &quot;objects&quot; with encapsulation.  they have data structures and are wonderful languages that can outperform languages like C++ and Java in certain areas.</description>
		<content:encoded><![CDATA[<p>Im sorry but: &#8220;3. Does the language support multiple operating systems?</p>
<p>No answers of “Yes, Redhat Linux, Suse Linux and Unix” please, because those are just flavours. It’s like saying that VB6 supports Windows 98 and Windows 2000. Examples of operating systems that count as different are MacOS, Windows and Linux/Unix.&#8221;</p>
<p>is not accurate.  The Unix Kernel and Linux kernel are completely different and thus are different platforms.</p>
<p>Also: &#8220;Does the language support object orientation?&#8221;  </p>
<p>is non-sense.  Functional programming languages (i.e. erlang, haskell) do not have &#8220;objects&#8221; with encapsulation.  they have data structures and are wonderful languages that can outperform languages like C++ and Java in certain areas.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jacob</title>
		<link>http://outofthetriangle.wordpress.com/2007/10/18/is-c-the-only-real-language/#comment-132</link>
		<dc:creator>Jacob</dc:creator>
		<pubDate>Thu, 14 Feb 2008 02:06:10 +0000</pubDate>
		<guid isPermaLink="false">http://outofthetriangle.wordpress.com/2007/10/18/is-c-the-only-real-language/#comment-132</guid>
		<description>C# 
1. 2: Compiles to IL and with AOT compiles to native machine code.
2. 1: Sharpdevelop, Visual Studio, Monodevelop.
3. 1: Linux, Windows, MacOS all are supported as well as embedded systems (in fact it even has its own .net only embedded operating system in the form of the .net compact framework.
4. 0: not really, theoretically you can by using AOT compilation and using only your own internal framework but in practice no one does it.
5. 1: yes definately from the ground up.
6. 0: Possible but as of yet nothing in use. I do have a design for a device driver modal that would work with virtually any operating system.
7. 1: Definately in the form of unsafe code i&#039;ve done it myself.
8. 0: ISO and ECMA Only afaik.
9. 0: Not yes but its very possible I would even say its easily done if you have the skills.
10. 1: Yes definately. I can&#039;t think of anything you can do in C or C++ that you cant do in C#.
Total: 7 points.


C++
1. 2: Compiled to machine code.
2. 1: Lots of IDEs out there.
3. 1: yes, virtually everything.
4. 0: not really, you still have to ensure you have STL available and while most operating systems include it now, there was a time when that wasnt common.
5. 1: definately.
6. 0: not commonly but some operating systems do include support for it but lots dont.
7. 1: yes.
8. 1: yes fully standardized.
9. 1: yes but this is a cheap win here as in practice afaik there is no wholy C++ operating system.
10. 1: sure
Total: 9 points  (i think 8 is a more realistic number in light of nswer #9.)


C++&#039;s lead over C# is a lot less than you make it out to be. in practice C#&#039;s shortcomings could easily put C# ahead of C++. a device driver in C# would be easily done everything to do it is out now, compiling to a standalone application is at least as doable as C++ however we will never see this as C#&#039;s strength lies in the fact that it has an excellent framework which makes development of applications very fast and provides excellent performance (in the future i believe we will see VM&#039;d languages like java and C# leave native languages in the dust due to run time optimizations.) Ansi standardization doesnt really affect the quality of language its nothing but a rubber stamp in the long run, I could say C++ is a horrible language because it hasn&#039;t received Linus Torvalds rubber stamp of approval, or apples rubber stamp or microsofts rubber stamp but the metric fails as much as the metric of Ansi standardization does. An operating system in C# is one area I will concede C++ will always outshine C# as C# would need to give up all of its advantages in order to accomplish this, no more runtime optimizations, no more advanced framework, no more processor independance. So tell me why a language is superior because it can do be used to write an operating system? Linux started out not as a operating system but as a terminal emulator.  Saying something can make an operating system sucks as a metric we don&#039;t need more operating systems we need better tools to enhance the development process. C# has a lot of shortcomings but it also has strengths to balance that lets compare C# and C++ with some new questions.

1. Well designed garbage collection. C# 1 C++ 0
2. Advanced Runtime optimizations. C# 1 C++ 0
3. Bounds checking an integral component of the language. C# 1 C++ 0

By this test C++ is clearly a loser with 0 points compared to C#&#039;s perfect score of 3.

Naturally this test is as flawwed as the first there is no one true language to rule them all. I&#039;ve coded in everything from assembly on embedded systems to php with web applications. For embedded systems I preffer C and assembly. They provide a concise method of implementing functionality while reducing the resources needed. For web applications I like php for its function for everything approach. need to mess with strings? 80 thousand functions for string manipulation. need to access a database? theres about a million database choices and functions. I will concede that php is a poor choice for anything for the very reason I like it. The functions it has are poorly designed and poorly standardised but generally if im doing something for the web its either a quick hack to get clean functionality for something simple like a database report or its a website which im using php to build a template system in, neither of which are hampered by php&#039;s nature. Finally for applications I like C# it provides a well designed and thought out framework that provides plenty of features combined with maintainability. Portability is somewhat lacking if you want to use the mainstream microsoft framework but there are alternatives that do provide plenty of portability along with functionality. C++ does not fit in at all for me, i&#039;ve used it, its a great language but its just not for me.</description>
		<content:encoded><![CDATA[<p>C#<br />
1. 2: Compiles to IL and with AOT compiles to native machine code.<br />
2. 1: Sharpdevelop, Visual Studio, Monodevelop.<br />
3. 1: Linux, Windows, MacOS all are supported as well as embedded systems (in fact it even has its own .net only embedded operating system in the form of the .net compact framework.<br />
4. 0: not really, theoretically you can by using AOT compilation and using only your own internal framework but in practice no one does it.<br />
5. 1: yes definately from the ground up.<br />
6. 0: Possible but as of yet nothing in use. I do have a design for a device driver modal that would work with virtually any operating system.<br />
7. 1: Definately in the form of unsafe code i&#8217;ve done it myself.<br />
8. 0: ISO and ECMA Only afaik.<br />
9. 0: Not yes but its very possible I would even say its easily done if you have the skills.<br />
10. 1: Yes definately. I can&#8217;t think of anything you can do in C or C++ that you cant do in C#.<br />
Total: 7 points.</p>
<p>C++<br />
1. 2: Compiled to machine code.<br />
2. 1: Lots of IDEs out there.<br />
3. 1: yes, virtually everything.<br />
4. 0: not really, you still have to ensure you have STL available and while most operating systems include it now, there was a time when that wasnt common.<br />
5. 1: definately.<br />
6. 0: not commonly but some operating systems do include support for it but lots dont.<br />
7. 1: yes.<br />
8. 1: yes fully standardized.<br />
9. 1: yes but this is a cheap win here as in practice afaik there is no wholy C++ operating system.<br />
10. 1: sure<br />
Total: 9 points  (i think 8 is a more realistic number in light of nswer #9.)</p>
<p>C++&#8217;s lead over C# is a lot less than you make it out to be. in practice C#&#8217;s shortcomings could easily put C# ahead of C++. a device driver in C# would be easily done everything to do it is out now, compiling to a standalone application is at least as doable as C++ however we will never see this as C#&#8217;s strength lies in the fact that it has an excellent framework which makes development of applications very fast and provides excellent performance (in the future i believe we will see VM&#8217;d languages like java and C# leave native languages in the dust due to run time optimizations.) Ansi standardization doesnt really affect the quality of language its nothing but a rubber stamp in the long run, I could say C++ is a horrible language because it hasn&#8217;t received Linus Torvalds rubber stamp of approval, or apples rubber stamp or microsofts rubber stamp but the metric fails as much as the metric of Ansi standardization does. An operating system in C# is one area I will concede C++ will always outshine C# as C# would need to give up all of its advantages in order to accomplish this, no more runtime optimizations, no more advanced framework, no more processor independance. So tell me why a language is superior because it can do be used to write an operating system? Linux started out not as a operating system but as a terminal emulator.  Saying something can make an operating system sucks as a metric we don&#8217;t need more operating systems we need better tools to enhance the development process. C# has a lot of shortcomings but it also has strengths to balance that lets compare C# and C++ with some new questions.</p>
<p>1. Well designed garbage collection. C# 1 C++ 0<br />
2. Advanced Runtime optimizations. C# 1 C++ 0<br />
3. Bounds checking an integral component of the language. C# 1 C++ 0</p>
<p>By this test C++ is clearly a loser with 0 points compared to C#&#8217;s perfect score of 3.</p>
<p>Naturally this test is as flawwed as the first there is no one true language to rule them all. I&#8217;ve coded in everything from assembly on embedded systems to php with web applications. For embedded systems I preffer C and assembly. They provide a concise method of implementing functionality while reducing the resources needed. For web applications I like php for its function for everything approach. need to mess with strings? 80 thousand functions for string manipulation. need to access a database? theres about a million database choices and functions. I will concede that php is a poor choice for anything for the very reason I like it. The functions it has are poorly designed and poorly standardised but generally if im doing something for the web its either a quick hack to get clean functionality for something simple like a database report or its a website which im using php to build a template system in, neither of which are hampered by php&#8217;s nature. Finally for applications I like C# it provides a well designed and thought out framework that provides plenty of features combined with maintainability. Portability is somewhat lacking if you want to use the mainstream microsoft framework but there are alternatives that do provide plenty of portability along with functionality. C++ does not fit in at all for me, i&#8217;ve used it, its a great language but its just not for me.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
