Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

It's 2015 and there are still people using Common Lisp left

Name: Chris Done 2015-05-09 10:57

I switched from Common Lisp to Haskell.

I got interested in Haskell because of its purity and functional programming. I held my nose when dealing with its horrible syntax (which I still do to this day, but I was really distraught back then at the Perl code I had seemingly been creating and nearly gave up), and then got roped into liking the type system, and a deeper appreciation of laziness beyond tricks came much later.

Haskell also has much better set of standard classes; it has equality as a class, instead of the 5 or so functions and one for every data type that you have in Lisp, same for ordering, numerics, etc.

Partial evaluation makes for pretty predictable argument order, argument order in Common Lisp is hard to predict.

Most CL codebases I've worked on were not maintainable due to arbitrary side effects and no type system to support refactoring. CL is just a bad language for code that matters. Back when CL was my goto-language I found libraries and implementations lacking, but these days with Quicklisp and SBCL I think the situation is better.

GHCi is pretty poor in comparison to SLIME, there's no comparison. Lisp suffers from ugly macros, Haskell suffers from operator line noise. Where Haskell makes code hard to read by trying to abstract everything with types, CL programmers make up for it with macros and abstractions without any static enforcement. Lisp also suffers from selfishness on the part of the programmer because of how the language is setup, Haskell code comparatively is made to be shared.

Lisp functions like to be kitchen sinks with all the bells and whistles (the pathological case is the LOOP macro), Haskell functions like to do one thing like UNIX commands and lazily be glued together.

Community-wise CL's has generally always been unfriendly and bitter in my experience. In Haskell you basically write assuming GHC. Lispers try to write "portable" code, where portable means that this code will behave the same on different compilers with preprocessors for each compiler, or by using dumber libraries with fewer dependencies. I consider this a waste of mental effort.

In the end I care above all about maintainability and re-usability. For that Haskell is an obvious choice and has been since 2007.

Name: Anonymous 2015-05-09 14:48

>>9
Just how the debugger is a programmer's friend.

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List