Lisp and Haskell (2017)
My problem with Haskell is that it is not pragmatic and the reason I stopped using it. The philosophy of separating pure and impure code – and to enforce it – does more harm than good. Often its difficult to understand what your &quot;forth level of abstraction code&quot; above the usual abstraction levels really does. Haskell is fun to learn. Haskell has a lot of interesting concepts to explore and it will make you a better programmer. Haskell code can be really dense. And Haskell code can be totally unreadable, using concepts which take weeks to learn – which is... not so great.<p>Lisp (Common Lisp) is what you get when you reduce the rules and syntax to a minimum and try at the same time to be a maximal flexible programming language. This simplicity and applied pragmatism is what makes it so great. Like the authors in the Lisp books warned, after learning Lisp, coding won&#x27;t be the same. Now I see everywhere code that could easily be written in Lisp, but is not so great in language XYZ. All those SDL&#x27;s and stringified API&#x27;s and code-generators they need to do real things and data formats like JSON... all obsolete, if they would have chosen Lisp (or a language with brackets and Lisp like evaluation rules).<p>The other thing that is often overlooked regarding Lisp is, that in a Lisp like language there is no need to wait for a new version of the programming language to be released to get new syntax – you can simply add it yourself (or have a library doing it for you). E.g. a lot of the JavaScript mess could be fixed by code transformation, if they would have chosen a Lisp like syntax in the first place.<p>I don&#x27;t see Haskell as uber language. If I want super correct code, speed and I&#x27;m okay with using a more complex language, then there is Rust – which is probably more correct than Haskell and faster, too.<p>Haskell, Lisp and C++ would really benefit form a std library 2.0 and a default package manager... one can dream.