If all the programs you write are like recipes, then imperative probably makes a lot of sense.  Imperative is never a problem for small programs.  It&#x27;s when they grow over time that they become more and more difficult to reason about.  In the best case you manage the complexity with good architecture, refactoring and automated testing practices; in the worst case you end up with a program that is not worth changing because every bug fix introduces two new bugs.  Functional programming allows breaking through that ceiling at the expense of a good deal more rigor.