Re: Interesting article by Joel Spolsky: The Perils of JavaSchools



On Tue, 10 Jan 2006 13:42:07 -0500 (EST), "Arthur J. O'Dwyer"
<ajo@xxxxxxxxxxxxxxxxxxxxx> wrote:


> Here I agree with Gerry. The whole "tail recursion" thing is a complete
>and utter red herring in the JavaSchools debate. I didn't know Java had
>partial support for TRE, and I still don't care. I don't even care that
>Lisp supports TRE. That's an implementation detail, and it doesn't affect
>the way students /think/ about programming.

Here I will disagree even though there is much in what you say. The
catch is that if you adopt a style in which every thing is recursive
software becomes grossly inefficient unless (a) you have tail
recursion optimization, and (b) you program in such a way as to
exploit tail recursion. In imperative languages this generally isn't
an issue because explicit iteration is used rather than tail
recursion. In consequence the lack of TRO isn't important.


Richard Harter, cri@xxxxxxxx
http://home.tiac.net/~cri, http://www.varinoma.com
The eternal revolution has its needs - its slogans to be chanted,
its demonstrations to be held, its children to eat.
.



Relevant Pages

  • Re: Tail recursion
    ... Recently I read about "tail recursion" - ability of ... programming language realization to convert linear recursive proccess ... to linear iterative proccess. ...
    (comp.compilers)
  • Re: How to make mod_lisp faster than php?
    ... In the Lisp group, the first fellow will answer, "I know my opinion, ... There seem to be various levels of acceptance of deep recursion ... It's possible that Scheme is here because a standard implementation of call/cc which puts stack frames on the heap yields this property. ... I think that implies tail recursion, ...
    (comp.lang.lisp)
  • Re: Python and Scheme
    ... is that tail recursion make debugging more difficult and that rules ... it out from Python. ...
    (comp.lang.scheme)
  • Re: The benefits of tail recursion
    ... 0.101 seconds, 22.2 MB RAM (VSZ for process, measured on ... depth rather than using full tail recursion. ... puts "Normal recursive: #deep" ...
    (comp.lang.ruby)
  • Re: Iteration in lisp
    ... recursive function can run out of stack since CL does not guarantee ... In loop you would usually only need one change. ... So using tail recursion rather than a loop can introduce bugs in complex looping constructs. ...
    (comp.lang.lisp)