4 ms·
Lisp culture strikes me as "every programmer is free to come up with his own abstractions, and which need not play nicely with each other, especially when they
by catnaroek 13y ago
Lisp culture strikes me as "every programmer is free to come up with his own abstractions, and which need not play nicely with each other, especially when they leak". To a large extent the macro systems of modern Lisps are at fault here. Macros are primarily syntactical abstractions, so they empower the programmer to quickly implement what he can envision, no matter how much boilerplate it would take in another language. But one thing macros cannot possibly do is ensure that the programmer's vision is correct and takes into account even those pesky subtle corner cases. In the hands of a not particularly careful programmer, Lisp macros are just an efficient tool for screwing up big time.
On the other hand, Haskell culture is more like "let's try to find the most general possible unifying principles that work for everyone, and let's use universal algebra / category theory / etc. to ensure our abstractions do not leak". And the type system is great help in this department. Algebraic data types make it harder to forget to account for all cases. Type system extensions allow the programmer to express more program properties statically, leveraging the compiler as a correctness verification tool. And all the categorical constructs expressed primarily as type classes (besides the already known Functor, Monad, Category, Arrow, etc., check Hackage for everything Edward Kmett has uploaded) are general patterns that arise everywhere, both in mathematics and in programming. Which is no surprise, because programming is mathematics.
So, back to the main point of my comment, while I would agree that "Lisp culture is hostile to mathematics" is unnecessarily too strong a statement, I would also say that most Lispers do not leverage mathematics to the extent one would expect from functional programmers.