On Wed, Oct 26, 2011 at 8:25 PM, michel paul <span dir="ltr">&lt;<a href="mailto:mpaul213@gmail.com">mpaul213@gmail.com</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">On Wed, Oct 26, 2011 at 3:36 PM, kirby urner <span dir="ltr">&lt;<a href="mailto:kirby.urner@gmail.com" target="_blank">kirby.urner@gmail.com</a>&gt;</span> wrote:<br></div><div class="gmail_quote"><div class="im">
<blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204, 204, 204);padding-left:1ex">


<br>
PS:  on a related topic, there&#39;s also a negative connotation<br>
associated with &quot;imperative programming&quot;.  The word &quot;imperative&quot; gets<br>
translated to mean &quot;bullying&quot;.  The functional programmers exploit<br>
that connotation, and imply that functional programming is kinder to<br>
children.<br clear="all"></blockquote></div><div><br>OK, this is very interesting, especially in light of the Math 2.0 thread.  So &#39;imperative&#39; and &#39;procedural&#39; are pretty much the same thing, right?  But &#39;procedural&#39; doesn&#39;t tend to imply &#39;bullying&#39;.  It can simply mean &#39;orderly&#39;, spelling out a sequence of steps.  I just found <a href="http://en.wikipedia.org/wiki/Procedural_programming#Comparison_with_functional_programming" target="_blank">this procedural/functional comparison</a> useful.<br>
</div></div></blockquote><div><br>Thanks for that reference.  Here&#39;s the opening paragraph:<br><br><blockquote style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;" class="gmail_quote">
<p><b>Procedural programming</b> can sometimes be used as a synonym for <a href="http://en.wikipedia.org/wiki/Imperative_programming" title="Imperative programming">imperative programming</a> (specifying the steps the program must take to reach the desired state), but can also refer (as in this article) to a <a href="http://en.wikipedia.org/wiki/Programming_paradigm" title="Programming paradigm">programming paradigm</a>, derived from <a href="http://en.wikipedia.org/wiki/Structured_programming" title="Structured programming">structured programming</a>, based upon the concept of the <i>procedure call</i>. Procedures, also known as routines, <a href="http://en.wikipedia.org/wiki/Subroutine" title="Subroutine">subroutines</a>, methods, or functions (not to be confused with mathematical functions, but similar to those used in <a href="http://en.wikipedia.org/wiki/Functional_programming" title="Functional programming">functional programming</a>)
 simply contain a series of computational steps to be carried out. Any 
given procedure might be called at any point during a program&#39;s 
execution, including by other procedures or itself.<sup id="cite_ref-0" class="reference"><a href="http://en.wikipedia.org/wiki/Procedural_programming#cite_note-0"><span></span><span></span></a></sup></p></blockquote><p>
What intrigues me is the prospect not <i>confusing</i> these functions with &quot;the mathematical functions&quot; but being somewhat precise about the relationship, as they&#39;re not on wholly different planets, either, or shouldn&#39;t be, unless we&#39;re reading <i>The Little Prince</i> or something (everyone gets their own planet in that book -- which has a snake, a constrictor, but it&#39;s not a python).<br>
</p><p>I hosted a long thread at the Math Forum recently, on math-teach, where I trucked out the &quot;Dolciani&quot; meaning of function, what we learn in &quot;schoolish math&quot;, especially since the New Math era, when much was done to formalize the teaching of functions in pre-college courses.</p>
<p><a href="http://mathforum.org/kb/thread.jspa?threadID=2303870&amp;tstart=60">http://mathforum.org/kb/thread.jspa?threadID=2303870&amp;tstart=60</a>  (quite length, a silly argument about which of the two meanings of function is &quot;more general&quot;)<br>
</p><p>Predictably, there&#39;s a skeptical backlash and the thought of using Python functions to help unlock the secrets of their mathematical counterparts is generally dismissed as trying to get computer science treated as mathematics.  <br>
</p><p>I regard that broken record more as brokenness in the English language than a real debate.  The categories into which &quot;knowledge and skills&quot; have been subdivided are too arbitrary to matter much, their half-life will be short (flash in the pan, obsolete as we speak).<br>
</p><p>Fortunately, I&#39;m teaching Python to adults and getting to field test my more activist mathematics concepts, so I am personally not that frustrated.</p><p>The other thing is I work with the Diversity people and am alert to these anti-engineer stereotypes.  <br>
</p><p>The &quot;object oriented&quot; moniker attracts flak from more than one angle then:  <br></p><ul><li>we have some functional programmers who think OOP is symptomatic of everything wrong with programmers and programming, and <br>
<br></li><li>we have some physicists who think &quot;object oriented&quot; means lacking in personal depth, warmth = a domineering pain in the ass, or a shy person with no social skills (many subspecies)<br></li></ul><p>OOPers are basically somewhere between Lex Luthor in Smallville (calculating) and Spongebob Squarepants (a dork).  <br>
</p><p>How can we ever be cool, with that kind of PR dogging us around, feeding the behind-our-backs gossip?<br></p>Kirby<br><br><br></div></div>