<?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: Fooling Around</title>
	<atom:link href="http://www.d3orn.ch/2010/fooling-around/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.d3orn.ch/2010/fooling-around/</link>
	<description></description>
	<lastBuildDate>Mon, 13 Sep 2010 21:11:23 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
	<item>
		<title>By: zombiecalypse</title>
		<link>http://www.d3orn.ch/2010/fooling-around/comment-page-1/#comment-1944</link>
		<dc:creator>zombiecalypse</dc:creator>
		<pubDate>Mon, 13 Sep 2010 21:11:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.d3orn.ch/?p=1027#comment-1944</guid>
		<description>&quot;I don&#039;t care how it works as long as it works&quot; doesn&#039;t mean that you shouldn&#039;t learn the idioms and paradigms of the language as long as you can work without them. It is more about the stuff behind the scenes. 

A good example is Python: Every object is an instance of a class, and classes are objects, and you can use metaclasses that initialize a class object. But you don&#039;t need that to define 99.99% of the classes you&#039;ll ever encounter.
So you don&#039;t have to care, how class creation works.
At first you don&#039;t need to know, that the for-loop takes an iterable and not simply a sequence or what an iterable even is (hint: it is not a sequence). 
So until you run into a problem, that uses iterables other than lists, don&#039;t care  how for-loops really work, but be open to find out and read some example code, if you&#039;re facing difficulties.

But yes, you won&#039;t master a language just by fooling around. But that&#039;s not the point: You will most certainly run into problems which can not be solved by brute force and so you take a look at a reference, which will then slowly introduce you to the more difficult parts. And your natural curiosity will lead your way from there. It took me quite long to find a problem, that had an application for metaclasses, but I wanted to find out, how I could work with it. But that&#039;s a different topic.

One important part, that wasn&#039;t directly mentioned in this article is, that you have to know the paradigms and the fortes of the language you are learning before. So you&#039;d be prepared to write object oriented if you fool around with Java or ready to wrap your head around higher order functions, if you try Clojure - and be prepared for hell, if you use Haskell. So compiling C with a C++ compiler doesn&#039;t use the forte of C++, which, if anything, are classes.

Maybe you have a point, that it should be mentioned, that you are supposed to find out, what the canonical way to solve a problem in your language is - defining an datatype in Haskell, creating smart objects in C++,... - to prevent porting the style of your old language to your new one.</description>
		<content:encoded><![CDATA[<p>&#8220;I don&#8217;t care how it works as long as it works&#8221; doesn&#8217;t mean that you shouldn&#8217;t learn the idioms and paradigms of the language as long as you can work without them. It is more about the stuff behind the scenes. </p>
<p>A good example is Python: Every object is an instance of a class, and classes are objects, and you can use metaclasses that initialize a class object. But you don&#8217;t need that to define 99.99% of the classes you&#8217;ll ever encounter.<br />
So you don&#8217;t have to care, how class creation works.<br />
At first you don&#8217;t need to know, that the for-loop takes an iterable and not simply a sequence or what an iterable even is (hint: it is not a sequence).<br />
So until you run into a problem, that uses iterables other than lists, don&#8217;t care  how for-loops really work, but be open to find out and read some example code, if you&#8217;re facing difficulties.</p>
<p>But yes, you won&#8217;t master a language just by fooling around. But that&#8217;s not the point: You will most certainly run into problems which can not be solved by brute force and so you take a look at a reference, which will then slowly introduce you to the more difficult parts. And your natural curiosity will lead your way from there. It took me quite long to find a problem, that had an application for metaclasses, but I wanted to find out, how I could work with it. But that&#8217;s a different topic.</p>
<p>One important part, that wasn&#8217;t directly mentioned in this article is, that you have to know the paradigms and the fortes of the language you are learning before. So you&#8217;d be prepared to write object oriented if you fool around with Java or ready to wrap your head around higher order functions, if you try Clojure &#8211; and be prepared for hell, if you use Haskell. So compiling C with a C++ compiler doesn&#8217;t use the forte of C++, which, if anything, are classes.</p>
<p>Maybe you have a point, that it should be mentioned, that you are supposed to find out, what the canonical way to solve a problem in your language is &#8211; defining an datatype in Haskell, creating smart objects in C++,&#8230; &#8211; to prevent porting the style of your old language to your new one.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jonas</title>
		<link>http://www.d3orn.ch/2010/fooling-around/comment-page-1/#comment-1939</link>
		<dc:creator>Jonas</dc:creator>
		<pubDate>Thu, 09 Sep 2010 18:44:12 +0000</pubDate>
		<guid isPermaLink="false">http://www.d3orn.ch/?p=1027#comment-1939</guid>
		<description>I can&#039;t agree with you in this point: &quot;I don’t care how it works as long as it works!&quot;

If you learn a new language, you shoudn&#039;t try to understand everything, that&#039;s right. But you should understand the principles of the language, or at least the principles of the paradigms, the language supports. Of course, you can write a Java code without object oriented design. But that&#039;s most likely waste of time and you&#039;ll never learn what objects really are! You can write a C code, compile it with the C++ compiler, and say that you&#039;re learning a new language -  but that&#039;s just absurd. You could learn a lot of languages like that, but you&#039;ll never master one, I think.

With your concept, you can learn the syntax of a language, that&#039;s true. But the syntax is mostly the smallest and most easy part to learn! (As long as you aren&#039;t programming in an esoteric language of course...)

You&#039;d like to go for a beer sometime?</description>
		<content:encoded><![CDATA[<p>I can&#8217;t agree with you in this point: &#8220;I don’t care how it works as long as it works!&#8221;</p>
<p>If you learn a new language, you shoudn&#8217;t try to understand everything, that&#8217;s right. But you should understand the principles of the language, or at least the principles of the paradigms, the language supports. Of course, you can write a Java code without object oriented design. But that&#8217;s most likely waste of time and you&#8217;ll never learn what objects really are! You can write a C code, compile it with the C++ compiler, and say that you&#8217;re learning a new language &#8211;  but that&#8217;s just absurd. You could learn a lot of languages like that, but you&#8217;ll never master one, I think.</p>
<p>With your concept, you can learn the syntax of a language, that&#8217;s true. But the syntax is mostly the smallest and most easy part to learn! (As long as you aren&#8217;t programming in an esoteric language of course&#8230;)</p>
<p>You&#8217;d like to go for a beer sometime?</p>
]]></content:encoded>
	</item>
</channel>
</rss>

