Are Monads a Waste of Time?
Functional programming has the following issues:<p>- it tries to abstract away von Neumann architecture and make it more math-like, stateless, true and permanent. Yet von Neumann is completely stateful (resembling real-world in its complexity and model approach), causing all kinds of frictions, for which monads and other syntactic sugar were invented<p>- while Turing complete, it has some weird properties, making it difficult or inefficient to change communication between various components that are using deep function calls when such a need arises in the future. This leads to using mutable &quot;shortcuts&quot; that render a lot of advantages functional programming might have had useless and starts resembling imperative&#x2F;OOP programming with its issues again<p>- trivial things like IO can&#x27;t be modeled without side-effects, so any software requiring input from keyboard, loading external files etc. can&#x27;t be pure<p>- often functional constructs make code unreadable despite readability being one of the main reasons for its existence<p>- bottom-up creation of algorithms is preferred by many language authors, making it difficult for beginners<p>- if you really want to know how it works, it takes 5+ years PhD level of studies in abstract math<p>Disclaimer: I approach 100 languages I&#x27;ve used in production, worked for companies that created some of the most popular languages and hate them all ;-) I hope to work on AI-assisted language creation in the near future.