<?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: Do You Believe in (Coding) Magic?</title>
	<atom:link href="http://importantshock.wordpress.com/2007/02/25/do-you-believe-in-coding-magic/feed/" rel="self" type="application/rss+xml" />
	<link>http://importantshock.wordpress.com/2007/02/25/do-you-believe-in-coding-magic/</link>
	<description></description>
	<lastBuildDate>Tue, 27 Jan 2009 20:02:03 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Bruno</title>
		<link>http://importantshock.wordpress.com/2007/02/25/do-you-believe-in-coding-magic/#comment-167</link>
		<dc:creator>Bruno</dc:creator>
		<pubDate>Tue, 13 Mar 2007 21:50:44 +0000</pubDate>
		<guid isPermaLink="false">http://importantshock.wordpress.com/2007/02/25/do-you-believe-in-coding-magic/#comment-167</guid>
		<description>May I disagree on your assertion about Python &quot;discouraging the use of magic&quot; ? 

While it&#039;s true that Python requires more explicit code, and favors readability (which is definitively not a &quot;ridiculous&quot; concern, n&#039;en déplaise à Michael Barry), it doesn&#039;t mean the language doesn&#039;t have a great support for metaprogramming (and one that doesn&#039;t rely on eval()). 

Have a look at the source of Ian Bicking&#039;s FormEncode package - more specifically on the &#039;declarative&#039; module - and you&#039;ll find out that Python can get really magical.  

About template rendering in Pylons vs Rails: it should be quite easy to make Pylons behave the Rails way using the __after__ hook in the project&#039;s base controller class.

My 2 cents...</description>
		<content:encoded><![CDATA[<p>May I disagree on your assertion about Python &#8220;discouraging the use of magic&#8221; ? </p>
<p>While it&#8217;s true that Python requires more explicit code, and favors readability (which is definitively not a &#8220;ridiculous&#8221; concern, n&#8217;en déplaise à Michael Barry), it doesn&#8217;t mean the language doesn&#8217;t have a great support for metaprogramming (and one that doesn&#8217;t rely on eval()). </p>
<p>Have a look at the source of Ian Bicking&#8217;s FormEncode package &#8211; more specifically on the &#8216;declarative&#8217; module &#8211; and you&#8217;ll find out that Python can get really magical.  </p>
<p>About template rendering in Pylons vs Rails: it should be quite easy to make Pylons behave the Rails way using the __after__ hook in the project&#8217;s base controller class.</p>
<p>My 2 cents&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michael Barry</title>
		<link>http://importantshock.wordpress.com/2007/02/25/do-you-believe-in-coding-magic/#comment-163</link>
		<dc:creator>Michael Barry</dc:creator>
		<pubDate>Wed, 07 Mar 2007 14:33:00 +0000</pubDate>
		<guid isPermaLink="false">http://importantshock.wordpress.com/2007/02/25/do-you-believe-in-coding-magic/#comment-163</guid>
		<description>I completely agree with your observations.  

Its simple.  The more magical the language the more you can get done.  
Syntax and readability are overvalued.  Explicit is not &quot;always&quot; better than implicit.
Less is more....etc.

People will argue that with too much abstraction you can create an unreadable mess.  Ya, you always have the option of being stupid.
(or just inexperienced)
 The difference is that if you &quot;have&quot; the power available and know how to create meaningful indirection you can save yourself an amazing amount of time.

Other arguments are centered around
readability of code.  This is ridiculous.  After a few years of real programming experience you realize the best code only has only been touched by a &quot;single&quot; mind.
The more cooks in the kitchen the more of a mess the code becomes.
Putting too many controlled processes in place to control the mess slows development down too much.

Every developer in the small group knows the system they are developing inside and out.  Therefore they know about their wacky meta code solutions.  
Smaller teams using more magic (meaningful indirection) can dramatically outproduce a larger team using less magic.  They have too. (Its economically advantageous)

In the past (say 20-30 years ago) the more magical languages were not as popular because of efficiency concerns.  The popularity of more magic has increased over time because its practically possible.
This trend is going to continue. (Its economically inevitable)  If you have the power to do more with less....then you should do more with less or go extinct.

I think the majority of new programmers are realizing this.  This is great.  This is going to push us to a new language that has more features from the functional programming paradigm.  Functional programming is not a silver bullet but anytime you can avoid state in code the happier life is. Managing state can be like trying to solve a suduko puzzle. Too many dependencies.  While some may think that is fun, its incredible waste of time that can be avoided.  Save your brain power for meaningful problems.

I&#039;d use scheme more today if it  
had better online community support and libraries.</description>
		<content:encoded><![CDATA[<p>I completely agree with your observations.  </p>
<p>Its simple.  The more magical the language the more you can get done.<br />
Syntax and readability are overvalued.  Explicit is not &#8220;always&#8221; better than implicit.<br />
Less is more&#8230;.etc.</p>
<p>People will argue that with too much abstraction you can create an unreadable mess.  Ya, you always have the option of being stupid.<br />
(or just inexperienced)<br />
 The difference is that if you &#8220;have&#8221; the power available and know how to create meaningful indirection you can save yourself an amazing amount of time.</p>
<p>Other arguments are centered around<br />
readability of code.  This is ridiculous.  After a few years of real programming experience you realize the best code only has only been touched by a &#8220;single&#8221; mind.<br />
The more cooks in the kitchen the more of a mess the code becomes.<br />
Putting too many controlled processes in place to control the mess slows development down too much.</p>
<p>Every developer in the small group knows the system they are developing inside and out.  Therefore they know about their wacky meta code solutions.<br />
Smaller teams using more magic (meaningful indirection) can dramatically outproduce a larger team using less magic.  They have too. (Its economically advantageous)</p>
<p>In the past (say 20-30 years ago) the more magical languages were not as popular because of efficiency concerns.  The popularity of more magic has increased over time because its practically possible.<br />
This trend is going to continue. (Its economically inevitable)  If you have the power to do more with less&#8230;.then you should do more with less or go extinct.</p>
<p>I think the majority of new programmers are realizing this.  This is great.  This is going to push us to a new language that has more features from the functional programming paradigm.  Functional programming is not a silver bullet but anytime you can avoid state in code the happier life is. Managing state can be like trying to solve a suduko puzzle. Too many dependencies.  While some may think that is fun, its incredible waste of time that can be avoided.  Save your brain power for meaningful problems.</p>
<p>I&#8217;d use scheme more today if it<br />
had better online community support and libraries.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ThoughtEngineer</title>
		<link>http://importantshock.wordpress.com/2007/02/25/do-you-believe-in-coding-magic/#comment-151</link>
		<dc:creator>ThoughtEngineer</dc:creator>
		<pubDate>Wed, 28 Feb 2007 10:02:33 +0000</pubDate>
		<guid isPermaLink="false">http://importantshock.wordpress.com/2007/02/25/do-you-believe-in-coding-magic/#comment-151</guid>
		<description>&quot;- since almost all programming languages are Turing-complete, what’s the difference? At a fundamental level, they’re all the same, right?

Then why do I like Python and Ruby so much more than C or Java? Why, indeed, doesn’t everyone just write bare machine code?&quot;

Because writing machine code is a pain in the arse. Give me a ruby like assembly language that allows me magical control over my hardware, and I&#039;ll send you my  available ram when my system is idling.</description>
		<content:encoded><![CDATA[<p>&#8220;- since almost all programming languages are Turing-complete, what’s the difference? At a fundamental level, they’re all the same, right?</p>
<p>Then why do I like Python and Ruby so much more than C or Java? Why, indeed, doesn’t everyone just write bare machine code?&#8221;</p>
<p>Because writing machine code is a pain in the arse. Give me a ruby like assembly language that allows me magical control over my hardware, and I&#8217;ll send you my  available ram when my system is idling.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jc</title>
		<link>http://importantshock.wordpress.com/2007/02/25/do-you-believe-in-coding-magic/#comment-149</link>
		<dc:creator>jc</dc:creator>
		<pubDate>Mon, 26 Feb 2007 20:28:06 +0000</pubDate>
		<guid isPermaLink="false">http://importantshock.wordpress.com/2007/02/25/do-you-believe-in-coding-magic/#comment-149</guid>
		<description>I believe Magic in languages is only good if its theres a developer community who embraces learning that magic as if it was part of the language. Its no longer magic,  its &quot;convention&quot; or an &quot;idiom&quot;. 

When learning Ruby (a few months ago), this community acceptance of weird syntax blew me away. Their library of idioms is just part of the language, and once you pick them up, you can immediately recognize them. Almost like having language specific features for a bunch of common programming scenarios since they are instantly recognizable and easy to write (setting default values, checking for nil case, etc).

In some other languages, its not a good idea to be too clever. In some recent C# code I wrote (inspired by ruby), I decided to use a delegate interface to my API in order to perform an action over a dynamic set of control instances, where my delegate was essentially the block. It was extremely elegant until someone had to make a modification and even though it was commented, another developer rewrote the entire thing in a for loop because he hadnt understood what the code was trying to do. If I had wrote the initial code that way from the beginning it would have saved us both a lot of time, with the only downside of it being 50% more code and me not feeling as elite while writing it.</description>
		<content:encoded><![CDATA[<p>I believe Magic in languages is only good if its theres a developer community who embraces learning that magic as if it was part of the language. Its no longer magic,  its &#8220;convention&#8221; or an &#8220;idiom&#8221;. </p>
<p>When learning Ruby (a few months ago), this community acceptance of weird syntax blew me away. Their library of idioms is just part of the language, and once you pick them up, you can immediately recognize them. Almost like having language specific features for a bunch of common programming scenarios since they are instantly recognizable and easy to write (setting default values, checking for nil case, etc).</p>
<p>In some other languages, its not a good idea to be too clever. In some recent C# code I wrote (inspired by ruby), I decided to use a delegate interface to my API in order to perform an action over a dynamic set of control instances, where my delegate was essentially the block. It was extremely elegant until someone had to make a modification and even though it was commented, another developer rewrote the entire thing in a for loop because he hadnt understood what the code was trying to do. If I had wrote the initial code that way from the beginning it would have saved us both a lot of time, with the only downside of it being 50% more code and me not feeling as elite while writing it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: rayke</title>
		<link>http://importantshock.wordpress.com/2007/02/25/do-you-believe-in-coding-magic/#comment-147</link>
		<dc:creator>rayke</dc:creator>
		<pubDate>Mon, 26 Feb 2007 08:12:34 +0000</pubDate>
		<guid isPermaLink="false">http://importantshock.wordpress.com/2007/02/25/do-you-believe-in-coding-magic/#comment-147</guid>
		<description>I&#039;m just a random dude.

But I am also a (random) fan of Ruby, I only wish more people knew how to do it. (People that I know, at least.) I  always wanted to &quot;collaborate&quot; with some of my coding friends, but they stand by C++ and PHP. 

Never really tried anything with Perl. I guess I should give it a shot.</description>
		<content:encoded><![CDATA[<p>I&#8217;m just a random dude.</p>
<p>But I am also a (random) fan of Ruby, I only wish more people knew how to do it. (People that I know, at least.) I  always wanted to &#8220;collaborate&#8221; with some of my coding friends, but they stand by C++ and PHP. </p>
<p>Never really tried anything with Perl. I guess I should give it a shot.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Hsiao Wei Chen</title>
		<link>http://importantshock.wordpress.com/2007/02/25/do-you-believe-in-coding-magic/#comment-146</link>
		<dc:creator>Hsiao Wei Chen</dc:creator>
		<pubDate>Mon, 26 Feb 2007 07:51:57 +0000</pubDate>
		<guid isPermaLink="false">http://importantshock.wordpress.com/2007/02/25/do-you-believe-in-coding-magic/#comment-146</guid>
		<description>Are you really a high school student? you are such a genius. &#039;coz even i, a second yr college student major in computer science student can&#039;t explain turing-completeness on the fly.
interesting post. But i&#039;m still more of a java and C fan.</description>
		<content:encoded><![CDATA[<p>Are you really a high school student? you are such a genius. &#8216;coz even i, a second yr college student major in computer science student can&#8217;t explain turing-completeness on the fly.<br />
interesting post. But i&#8217;m still more of a java and C fan.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bernie</title>
		<link>http://importantshock.wordpress.com/2007/02/25/do-you-believe-in-coding-magic/#comment-144</link>
		<dc:creator>bernie</dc:creator>
		<pubDate>Mon, 26 Feb 2007 05:36:09 +0000</pubDate>
		<guid isPermaLink="false">http://importantshock.wordpress.com/2007/02/25/do-you-believe-in-coding-magic/#comment-144</guid>
		<description>Really check out erlang.org - best prog lang ever!</description>
		<content:encoded><![CDATA[<p>Really check out erlang.org &#8211; best prog lang ever!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: C. Alexander Leigh</title>
		<link>http://importantshock.wordpress.com/2007/02/25/do-you-believe-in-coding-magic/#comment-143</link>
		<dc:creator>C. Alexander Leigh</dc:creator>
		<pubDate>Mon, 26 Feb 2007 03:58:20 +0000</pubDate>
		<guid isPermaLink="false">http://importantshock.wordpress.com/2007/02/25/do-you-believe-in-coding-magic/#comment-143</guid>
		<description>This is all well and good, as long as you are the only programmer on a project, ever... I&#039;ve been programming for many years and when I go back to maintain something I wrote 5 years ago I might not even have used that language recently, let alone remember whatever strange alexgarian code conventions I may have used. Even worse when all this was someone elses problems - how many projects have we gotten as enterprise programmers where it was faster to just re-write than re-factor someone elses mess.

Strong code conventions - that do generate more lines of code or at least longer winded code - are easy habits to learn until they become second nature, and I find writing readable code really isn&#039;t any slower than writing mangled code. But the longterm payoff is definitly there, if only so when you get rich and hire other programmers you don&#039;t have to explain what your code does.</description>
		<content:encoded><![CDATA[<p>This is all well and good, as long as you are the only programmer on a project, ever&#8230; I&#8217;ve been programming for many years and when I go back to maintain something I wrote 5 years ago I might not even have used that language recently, let alone remember whatever strange alexgarian code conventions I may have used. Even worse when all this was someone elses problems &#8211; how many projects have we gotten as enterprise programmers where it was faster to just re-write than re-factor someone elses mess.</p>
<p>Strong code conventions &#8211; that do generate more lines of code or at least longer winded code &#8211; are easy habits to learn until they become second nature, and I find writing readable code really isn&#8217;t any slower than writing mangled code. But the longterm payoff is definitly there, if only so when you get rich and hire other programmers you don&#8217;t have to explain what your code does.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: kardanok</title>
		<link>http://importantshock.wordpress.com/2007/02/25/do-you-believe-in-coding-magic/#comment-141</link>
		<dc:creator>kardanok</dc:creator>
		<pubDate>Mon, 26 Feb 2007 01:23:53 +0000</pubDate>
		<guid isPermaLink="false">http://importantshock.wordpress.com/2007/02/25/do-you-believe-in-coding-magic/#comment-141</guid>
		<description>Great post, personally I&#039;m a huge Python fan, though I&#039;ve dabbled a bit in C++</description>
		<content:encoded><![CDATA[<p>Great post, personally I&#8217;m a huge Python fan, though I&#8217;ve dabbled a bit in C++</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nimish Batra</title>
		<link>http://importantshock.wordpress.com/2007/02/25/do-you-believe-in-coding-magic/#comment-135</link>
		<dc:creator>Nimish Batra</dc:creator>
		<pubDate>Sun, 25 Feb 2007 17:53:36 +0000</pubDate>
		<guid isPermaLink="false">http://importantshock.wordpress.com/2007/02/25/do-you-believe-in-coding-magic/#comment-135</guid>
		<description>Patrick... 

I may be completely wrong, but C++ does pure good &quot;magic&quot;

They call it operator overloading.

You can redefine most of the operators + - * / , (yes comma) *= += etc etc

But there are strict typechecking rules.

So you have to involve a CLASS or a USER DEFINED DATATYPE in there.

You just can&#039;t do this if the operator operates only on the predefined datatypes (int. float. char. double.)

Type checking, I believe, gets rid of the evilness of &quot;magic&quot; in C++.

I might be wrong, I haven&#039;t done operator overloading in a year or so. But you can easily check it out.</description>
		<content:encoded><![CDATA[<p>Patrick&#8230; </p>
<p>I may be completely wrong, but C++ does pure good &#8220;magic&#8221;</p>
<p>They call it operator overloading.</p>
<p>You can redefine most of the operators + &#8211; * / , (yes comma) *= += etc etc</p>
<p>But there are strict typechecking rules.</p>
<p>So you have to involve a CLASS or a USER DEFINED DATATYPE in there.</p>
<p>You just can&#8217;t do this if the operator operates only on the predefined datatypes (int. float. char. double.)</p>
<p>Type checking, I believe, gets rid of the evilness of &#8220;magic&#8221; in C++.</p>
<p>I might be wrong, I haven&#8217;t done operator overloading in a year or so. But you can easily check it out.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
