Functional core, imperative shell. <a href="https://www.destroyallsoftware.com/talks/boundaries" rel="nofollow">https://www.destroyallsoftware.com/talks/boundaries</a><p>Sure, enforcing the paradigm everywhere would be bad. So don't do that!
Interesting website that skips all our pretence of "discussion" and goes straight to "argument" :)<p>The actual discussion is fairly thin, but has a good point in that business requirements are usually expressed in terms of state changes to records or physical objects.
Functional programming as a strictly immutable lazily evaluated paradigm in which to do <i>everything</i> from the bottom to the top is not useful for most apps.<p>This "but" is a complete fail:<p>> <i>Y-combinator founder has noted that his and associate's choice of Lisp as basis for one of the first online webstores ...</i> GONGGGG!!!<p>Lisp isn't a functional language. Lisp has mutable variables, mutable data structures, loops, <i>goto</i>, ... Lisp supports applicative programming with immutable objects where it is desired.
I hate these discussions. Most people are more productive by just using the tool that fits their needs.<p>Also some people could better work in a functional world and some can't.