Why You Should Avoid Functional Programming: A Rant