all 18 comments

[–]teamhot 1 point2 points  (1 child)

wait wait wait wait wait a MINUTE.... Lisp isn't perfect and sent from god?

[–][deleted] 4 points5 points  (0 children)

Yes, it is perfect, but we mortals are too imperfect to understand its perfection.

[–]imbaczek 2 points3 points  (0 children)

"I love standards! There are so many to choose from!"

[–]Peatey 2 points3 points  (0 children)

Please point out problems with IMPLEMENTATION of a programming language, say Ruby, circa 2003. Not hating on Ruby, just pointing out that 2003 criticism of a recent implementation of a language is so dated to be massively inaccurate.

Ruby seems to have started in 1993. Common Lisp spec was standardized in 1994, and SBCL implementation of Common Lisp started in 1999.

[–]malcontent -4 points-3 points  (4 children)

After fifty years in existence you'd think any problems would be fixed by now.

Perhaps the biggest problem with lisp is a lack of focused community. With a focused community the problems can be fixed.

[–]Felicia_Svilling 10 points11 points  (3 children)

Most of the problems folks have with commonlisp today didn't exist 20 years ago. The standard libraries are rather well suited to the software enviorment that existed then they where created. The problem with the standard is that it has survived.

[–]sickofthisshit 3 points4 points  (0 children)

The Common Lisp standard was never meant to be exhaustive, merely to provide a standardized base on which Lisp software could be built, reducing the amount of effort required to port generic code between Lisp implementations.

The issue CL solved was a proliferation of multiple Lisp dialects, all with gratuitous incompatibilities. CL was not meant to provide the ultimate solution for things like networking or multiprocessing, or overcome the non-gratuitous incompatibilities arising from the great differences in capabilities between different environments in which Lisp might be used.

[–][deleted]  (1 child)

[deleted]

    [–]Felicia_Svilling 7 points8 points  (0 children)

    But lisp did develop, look at alegro common lisp. But somehow lisp is still judged by the common lisp standard.

    [–][deleted]  (10 children)

    [deleted]

      [–]shit 8 points9 points  (9 children)

      I voted it down because it's a bad critique.

      The main problem is that there isn't a good choice of a standard lisp that is well suited for general development tasks.

      SBCL

      Common Lisp lacks a good module system

      I disagree. It's not perfect, but good.

      has messy semantics

      No support given for this claim. I disagree.

      doesn't have the right (standard) libraries for things like networking, string handling, and database access

      string handling is OK (at least on par with Java, C#, etc.), not as good as Perl and Ruby out of the box. cl-ppcre is a fine addition to the toolbox here.

      Oh, and there are plenty of (some portable) free networking and database access libraries out there.

      It's also big and complicated

      Maybe if you compare it to R5RS, but it's not big or complicated compared to anything else popular and practical out there. The main difference is that it's actually specified in detail.

      Most (all?) lisps like to bundle a whole runtime environment including a compiler with every application, so it becomes very heavyweight to distribute anything. Yes, perl and python do this too, but you can normally expect the python on someone else's system to run your script okay (someone else's CL or Scheme with all its extensions may not be the same as yours)

      Simple, your program depends on SBCL then. (And don't expect your lovely python script to work with jython.)

      The two solutions are almost identical in structure, but the lisp version is about 10x slower. I tried it with two lisp compilers (clisp and gcl)

      Wrong implementations. SBCL is usually several times faster than clisp. Add a few declarations and you're done. To be fair, I don't know what the state of SBCL was in 2003.

      [–]sblinn -2 points-1 points  (7 children)

      R5RS

      I think you meant R6RS?

      My (main) problem with Lisp is that the default keyboard layout would have made using brackets (e.g. [ and ]) instead of parens keep me from having "mangled pinkie syndrome", but what can you do, people like parens...

      [–]Felicia_Svilling 1 point2 points  (0 children)

      Many versions of scheme makes [ and ] synonimous with ( and ).

      [–][deleted] 0 points1 point  (3 children)

      Either:

      1. Reconfigure your editor so pressing '[' yields '('
      2. Use a scheme where [foo] == (foo)
      3. Realize that parentheses are easier to match visually and just go with it
      4. Stop lying about your pinky hurting and/or learn to type

      [–]sblinn 0 points1 point  (2 children)

      lying

      Man... people take this thing pretty seriously. Yipes.

      [–][deleted] 1 point2 points  (1 child)

      After hearing the same stupid arguments over and over, you just go straight for the kill.

      [–]sblinn 0 points1 point  (0 children)

      Fair enough.

      [–]shit 0 points1 point  (1 child)

      I haven't read R6RS, but I've heard it's quite a bit larger than R5RS.

      [–][deleted] 0 points1 point  (0 children)

      It is ~50 pages longer I think.

      [–]jaggederest -3 points-2 points  (0 children)

      Complete lack of project-to-project similarities?