<?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: Why are we using C again?</title>
	<atom:link href="http://www.rojtberg.net/286/why-are-we-using-c-again/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.rojtberg.net/286/why-are-we-using-c-again/</link>
	<description>Linux &#38; Tech Stuff</description>
	<lastBuildDate>Mon, 19 Jul 2010 23:39:08 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
	<item>
		<title>By: Pavel</title>
		<link>http://www.rojtberg.net/286/why-are-we-using-c-again/comment-page-1/#comment-411</link>
		<dc:creator>Pavel</dc:creator>
		<pubDate>Wed, 30 Sep 2009 15:09:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.rojtberg.net/?p=286#comment-411</guid>
		<description>well first of all; thanks that you took the time to write that lengthy reply.

But I think you are wrong at some substantial points:
	&lt;ul&gt;
&lt;li&gt;The point in OOP today and in recent languages is not reusability(not reinventing the wheel), but  the expressiveness and thereby readability.&lt;/li&gt;
&lt;li&gt;Object Oriented design is the de facto standard for imperative language these days. This means most of C programmers use it and GObject is the support library to ease the development. But good OOP support requires support on compiler level. &lt;i&gt;Therefore&lt;/i&gt; GObject fails.&lt;/li&gt;
&lt;li&gt;The thing which makes leaning a new language hard is not the new syntax , but learning a new API for the standard library. And changes on this level occur in every language - even in C. See the the OpenGL1 -&gt; OpenGL3 transition; the fact that it is C does not save you from the introduction of OOP here ;)&lt;/li&gt;
&lt;/ul&gt;


</description>
		<content:encoded><![CDATA[<p>well first of all; thanks that you took the time to write that lengthy reply.</p>
<p>But I think you are wrong at some substantial points:</p>
<ul>
<li>The point in OOP today and in recent languages is not reusability(not reinventing the wheel), but  the expressiveness and thereby readability.</li>
<li>Object Oriented design is the de facto standard for imperative language these days. This means most of C programmers use it and GObject is the support library to ease the development. But good OOP support requires support on compiler level. <i>Therefore</i> GObject fails.</li>
<li>The thing which makes leaning a new language hard is not the new syntax , but learning a new API for the standard library. And changes on this level occur in every language &#8211; even in C. See the the OpenGL1 -> OpenGL3 transition; the fact that it is C does not save you from the introduction of OOP here <img src='/wp-content/themes/mad-forest/smilies/face-wink.png' alt=';)' class='wp-smiley' /> </li>
</ul>
]]></content:encoded>
	</item>
	<item>
		<title>By: SumYunGuy</title>
		<link>http://www.rojtberg.net/286/why-are-we-using-c-again/comment-page-1/#comment-410</link>
		<dc:creator>SumYunGuy</dc:creator>
		<pubDate>Thu, 24 Sep 2009 04:14:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.rojtberg.net/?p=286#comment-410</guid>
		<description>I&#039;m going to be very unpopular very soon, but there&#039;s been a painful trend for a very long time that I really need to complain about, and this seems to be the best place to do it.

In order to avoid &quot;reinventing the wheel&quot;, before there were computers we turned to something called &quot;library science&quot;. 

After computers came around, we came up with the term &quot;object oriented programming&quot;. Originally, once upon a time, this meant that various parts of our code would work like organs inside an organism or parts in a car and could be swapped out. The problem was, our object orientation features in various languages weren&#039;t compatible. So we reinvented the wheel in order to avoid reinventing the wheel, and we came up with design patterns and virtualization. Soon every language started needing to support these features, with some languages being scoffed at (I&#039;m looking at you, php) because despite being great at whatever purpose they were actually designed for they couldn&#039;t keep up with the newest incarnation of OO. How do we solve this problem? Clearly we need to reinvent the wheel again and come up with new across the board coding standards that work in whatever language you need! It&#039;s XML and CORBA and .NET and on and on to the rescue! Except, of course, our new incarnation of OO, itself, needs to be learned and relearned, which means there are people that aren&#039;t going to use it, which is going to cause-

You know why I like C? It works anywhere. It&#039;s layered on top of assembler. Which is layered on top of machine code. Which means no matter what revolutionary brilliant game changing web 9.0 solution we all have to instantly learn well enough to preach and dissiminate that will solve every software engineering and communications problem ever, causing us to relearn every single language because they&#039;re all glued together now in the same project and my JAVA is talking to my PHP and my Python and my Fortran and my MySQL, Oracle, and PostGre databases, because AJAX is soooooo nifty and it&#039;s sooooo worth it for people never to have to refresh a page even though they have noscript up...

It&#039;s clean. You write something, and it works. If you want it to work in windows, just use window&#039;s API and handle a few signals. If you want it to work on your router, use their api. If you want to handle sockets, use that api. If you want to learn an API, rather than spending 50 of your hard earned bucks on an O&#039;Reilly book, spend ten to twenty seconds looking at a header file.

It can&#039;t be more complicated than that, because if it were, it would be C++ or whatever else is supposed to completely revolutionize C and compress every ten lines of code into one terse block.

If I wanted terse, I would use perl. If I wanted to take a million concepts and compress them into a regex and fifty characters, that&#039;s the way to go. So taking up fewer lines of code is not a virtue, otherwise no one would ever use python.

If something is clunky or long and drawn out or involves reinventing the wheel, you know what, it&#039;s at least easy to understand just by reading it. There are no features except the ones you include explicitly. No one&#039;s genius solution which honestly works better is going to have to be learned by you, the computer programmer. You have a swiss army knife that can solve any computer problem ever, at the slight cost of being mocked by people that can take the problem you solved and do it faster with fewer lines of code. You know what those people can&#039;t do? Solve the problem you solved to begin with.

Because that would involve reinventing the wheel, and everyone knows that a computer programmer&#039;s job is to compensate  for a total lack of applied library science to the software engineering community by looking at whatever the business majors are marketing at us as the next best thing.

That&#039;s my rant and I&#039;m sticking to it.</description>
		<content:encoded><![CDATA[<p>I&#8217;m going to be very unpopular very soon, but there&#8217;s been a painful trend for a very long time that I really need to complain about, and this seems to be the best place to do it.</p>
<p>In order to avoid &#8220;reinventing the wheel&#8221;, before there were computers we turned to something called &#8220;library science&#8221;. </p>
<p>After computers came around, we came up with the term &#8220;object oriented programming&#8221;. Originally, once upon a time, this meant that various parts of our code would work like organs inside an organism or parts in a car and could be swapped out. The problem was, our object orientation features in various languages weren&#8217;t compatible. So we reinvented the wheel in order to avoid reinventing the wheel, and we came up with design patterns and virtualization. Soon every language started needing to support these features, with some languages being scoffed at (I&#8217;m looking at you, php) because despite being great at whatever purpose they were actually designed for they couldn&#8217;t keep up with the newest incarnation of OO. How do we solve this problem? Clearly we need to reinvent the wheel again and come up with new across the board coding standards that work in whatever language you need! It&#8217;s XML and CORBA and .NET and on and on to the rescue! Except, of course, our new incarnation of OO, itself, needs to be learned and relearned, which means there are people that aren&#8217;t going to use it, which is going to cause-</p>
<p>You know why I like C? It works anywhere. It&#8217;s layered on top of assembler. Which is layered on top of machine code. Which means no matter what revolutionary brilliant game changing web 9.0 solution we all have to instantly learn well enough to preach and dissiminate that will solve every software engineering and communications problem ever, causing us to relearn every single language because they&#8217;re all glued together now in the same project and my JAVA is talking to my PHP and my Python and my Fortran and my MySQL, Oracle, and PostGre databases, because AJAX is soooooo nifty and it&#8217;s sooooo worth it for people never to have to refresh a page even though they have noscript up&#8230;</p>
<p>It&#8217;s clean. You write something, and it works. If you want it to work in windows, just use window&#8217;s API and handle a few signals. If you want it to work on your router, use their api. If you want to handle sockets, use that api. If you want to learn an API, rather than spending 50 of your hard earned bucks on an O&#8217;Reilly book, spend ten to twenty seconds looking at a header file.</p>
<p>It can&#8217;t be more complicated than that, because if it were, it would be C++ or whatever else is supposed to completely revolutionize C and compress every ten lines of code into one terse block.</p>
<p>If I wanted terse, I would use perl. If I wanted to take a million concepts and compress them into a regex and fifty characters, that&#8217;s the way to go. So taking up fewer lines of code is not a virtue, otherwise no one would ever use python.</p>
<p>If something is clunky or long and drawn out or involves reinventing the wheel, you know what, it&#8217;s at least easy to understand just by reading it. There are no features except the ones you include explicitly. No one&#8217;s genius solution which honestly works better is going to have to be learned by you, the computer programmer. You have a swiss army knife that can solve any computer problem ever, at the slight cost of being mocked by people that can take the problem you solved and do it faster with fewer lines of code. You know what those people can&#8217;t do? Solve the problem you solved to begin with.</p>
<p>Because that would involve reinventing the wheel, and everyone knows that a computer programmer&#8217;s job is to compensate  for a total lack of applied library science to the software engineering community by looking at whatever the business majors are marketing at us as the next best thing.</p>
<p>That&#8217;s my rant and I&#8217;m sticking to it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: yungchin</title>
		<link>http://www.rojtberg.net/286/why-are-we-using-c-again/comment-page-1/#comment-399</link>
		<dc:creator>yungchin</dc:creator>
		<pubDate>Sun, 19 Jul 2009 12:05:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.rojtberg.net/?p=286#comment-399</guid>
		<description>(actually, I guess that&#039;s what the gcc discussion in your linked presentation did!)</description>
		<content:encoded><![CDATA[<p>(actually, I guess that&#8217;s what the gcc discussion in your linked presentation did!)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: yungchin</title>
		<link>http://www.rojtberg.net/286/why-are-we-using-c-again/comment-page-1/#comment-398</link>
		<dc:creator>yungchin</dc:creator>
		<pubDate>Sun, 19 Jul 2009 12:01:39 +0000</pubDate>
		<guid isPermaLink="false">http://www.rojtberg.net/?p=286#comment-398</guid>
		<description>Coming from C++ as my first programming language, reading through large programs in C they always seem awkward to me. But I can imagine that&#039;s the other way around for veteran C-programmers... I guess this will always make the whole language discussion thing a pain. Knowing how to read C/C++ and how to really use it are different things.

So somehow I guess the only way to convince the other camp is to create compatible implementations in whatever preferred language of some parts of the libraries... that way people cannot deny the benefits?</description>
		<content:encoded><![CDATA[<p>Coming from C++ as my first programming language, reading through large programs in C they always seem awkward to me. But I can imagine that&#8217;s the other way around for veteran C-programmers&#8230; I guess this will always make the whole language discussion thing a pain. Knowing how to read C/C++ and how to really use it are different things.</p>
<p>So somehow I guess the only way to convince the other camp is to create compatible implementations in whatever preferred language of some parts of the libraries&#8230; that way people cannot deny the benefits?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: methdo</title>
		<link>http://www.rojtberg.net/286/why-are-we-using-c-again/comment-page-1/#comment-397</link>
		<dc:creator>methdo</dc:creator>
		<pubDate>Sat, 18 Jul 2009 18:25:11 +0000</pubDate>
		<guid isPermaLink="false">http://www.rojtberg.net/?p=286#comment-397</guid>
		<description>You need to really look at Vala. It would be great to see all Gnome applications that are currently written in C re-implemented in Vala.</description>
		<content:encoded><![CDATA[<p>You need to really look at Vala. It would be great to see all Gnome applications that are currently written in C re-implemented in Vala.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vadim P.</title>
		<link>http://www.rojtberg.net/286/why-are-we-using-c-again/comment-page-1/#comment-396</link>
		<dc:creator>Vadim P.</dc:creator>
		<pubDate>Sat, 18 Jul 2009 15:37:48 +0000</pubDate>
		<guid isPermaLink="false">http://www.rojtberg.net/?p=286#comment-396</guid>
		<description>I find that Vala is quite different than C++, and I like it more. I doubt you did anything extensive with it.</description>
		<content:encoded><![CDATA[<p>I find that Vala is quite different than C++, and I like it more. I doubt you did anything extensive with it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mariuss</title>
		<link>http://www.rojtberg.net/286/why-are-we-using-c-again/comment-page-1/#comment-395</link>
		<dc:creator>mariuss</dc:creator>
		<pubDate>Fri, 17 Jul 2009 16:53:10 +0000</pubDate>
		<guid isPermaLink="false">http://www.rojtberg.net/?p=286#comment-395</guid>
		<description>While I agree that C++ is a huge improvement over C, I also think that both are really obsolete. Yes, C/C++ will be used for a long time for low level stuff, but for application programming we can do much better.

The pressure from Mono will keep increasing simply because you are way more productive in that language.

I really think Gnome should look closely at Java, more precisely at the JVM. Yes, originally it was mainly optimized for servers, but that has changed. With good bindings for Java (for the GTK, Glib, ...), and using a language like Scala or JavaFX Gnome would benefit a lot.

But then again, it is enough to mention Java and Linux people will start screaming at you.</description>
		<content:encoded><![CDATA[<p>While I agree that C++ is a huge improvement over C, I also think that both are really obsolete. Yes, C/C++ will be used for a long time for low level stuff, but for application programming we can do much better.</p>
<p>The pressure from Mono will keep increasing simply because you are way more productive in that language.</p>
<p>I really think Gnome should look closely at Java, more precisely at the JVM. Yes, originally it was mainly optimized for servers, but that has changed. With good bindings for Java (for the GTK, Glib, &#8230;), and using a language like Scala or JavaFX Gnome would benefit a lot.</p>
<p>But then again, it is enough to mention Java and Linux people will start screaming at you.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jerome</title>
		<link>http://www.rojtberg.net/286/why-are-we-using-c-again/comment-page-1/#comment-394</link>
		<dc:creator>Jerome</dc:creator>
		<pubDate>Fri, 17 Jul 2009 16:08:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.rojtberg.net/?p=286#comment-394</guid>
		<description>Hi there... maybe you guys would be interested to take a look at eC ...
It takes somewhat of a different attempt at making C object oriented, not taking anything away from it, yet adding some nice useful features.</description>
		<content:encoded><![CDATA[<p>Hi there&#8230; maybe you guys would be interested to take a look at eC &#8230;<br />
It takes somewhat of a different attempt at making C object oriented, not taking anything away from it, yet adding some nice useful features.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Pavel</title>
		<link>http://www.rojtberg.net/286/why-are-we-using-c-again/comment-page-1/#comment-393</link>
		<dc:creator>Pavel</dc:creator>
		<pubDate>Fri, 17 Jul 2009 15:48:13 +0000</pubDate>
		<guid isPermaLink="false">http://www.rojtberg.net/?p=286#comment-393</guid>
		<description>@liberforce
the nice thing about C++ compilers is that they also compile C code. So basically all we would need to do is switching the compiler and start using C++ features for new code as appropriate - similar to what the gcc people did.</description>
		<content:encoded><![CDATA[<p>@liberforce<br />
the nice thing about C++ compilers is that they also compile C code. So basically all we would need to do is switching the compiler and start using C++ features for new code as appropriate &#8211; similar to what the gcc people did.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Pavel</title>
		<link>http://www.rojtberg.net/286/why-are-we-using-c-again/comment-page-1/#comment-392</link>
		<dc:creator>Pavel</dc:creator>
		<pubDate>Fri, 17 Jul 2009 15:40:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.rojtberg.net/?p=286#comment-392</guid>
		<description>@otte
well I do not say that C++ is the perfect language - by far not. But I think it has enough to offer over C in order to justify using it.
I also used to think that C++ is crap until I found out that you actually can write as compact code as in python with it. (modulo braces)
You really should take a look at &lt;a href=&quot;http://en.wikipedia.org/wiki/C%2B%2B0x&quot; rel=&quot;nofollow&quot;&gt;C++0x&lt;/a&gt; - it allows writing much cleaner programs and standardises some useful libraries like garbage collection or function objects.</description>
		<content:encoded><![CDATA[<p>@otte<br />
well I do not say that C++ is the perfect language &#8211; by far not. But I think it has enough to offer over C in order to justify using it.<br />
I also used to think that C++ is crap until I found out that you actually can write as compact code as in python with it. (modulo braces)<br />
You really should take a look at <a href="http://en.wikipedia.org/wiki/C%2B%2B0x" rel="nofollow">C++0x</a> &#8211; it allows writing much cleaner programs and standardises some useful libraries like garbage collection or function objects.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
