Functional programming should be the future of software
I don&#x27;t know any purely functional languages[], so my viewpoint is skewed here.  Whenever I have seen a python developer drink the functional kool-aid they end up either storing state in global variables, environment variables or in a dictionary they end up passing to every function.  I then have to explain to them that passing a dictionary around and expecting variables to be in it is just half-assed OOP.<p>My rule of thumb is anything that needs state should be in a class, and anything that can be run without state or side effects should be a function. It is even good to have functions that use your classes,  as long as there is a way to write them with a reasonable set of arguments.  This can let you use those functions to do specific tasks in a functional way, while still internally organizing things reasonably for the problem at hand.<p>The minute people start trying to force things to be all functional or all OOP, then you know they&#x27;ve lost the plot.<p>[] I have been wanting to learn lisp for over a decade, I just never get around to it.