Title: I&#x27;ve been seeing all this stuff about functional programming, and I don&#x27;t get it.  Why should I care?<p>I&#x27;m not trying to be a troll.  I&#x27;m trying to understand.  And I don&#x27;t.<p>I&#x27;ve been a professional programmer for 28 years.  I don&#x27;t care about &quot;the one right way&quot; or &quot;ideological purity&quot; or anything like that.  I care about efficiently building programs that work.  (Answers that say that functional programming is in fact the one right way will be dismissed as ideologues or trolls.)<p>I don&#x27;t think that functional programming can be the one right way, because I have spent most of my career in embedded systems.  Those programs tend to be full of states that changed many function calls ago, but are still relevant.  If I understand correctly, that doesn&#x27;t play well with functional programming.<p>But once you don&#x27;t buy that functional programming is the one right way, then you have to ask, &quot;When is it the right tool for the job?  And when is it not?&quot;<p>(And by the way, once you don&#x27;t&#x27; think that functional programming is the one right way, then things like tail recursion and the Y combinator stop looking like elegant solutions to important problems.  They start looking like crocks that you were forced into because you&#x27;re using the wrong tool for the job.)<p>Look, I get that all of computer programming is mathematics.  It&#x27;s all Turing machines, too, but that doesn&#x27;t mean that I want to write programs like I&#x27;m writing on a Turing machine.  I don&#x27;t want to write them like I&#x27;m writing an abstract algebra paper, either - unless there&#x27;s a real benefit.<p>Again, I recognize that this sounds like a troll, but I&#x27;m really not.  I can be convinced.  Somebody say something convincing (hopefully in terms that a professional programmer with very little abstract algebra can understand).
Upvote: