4 ms·
I've heard lots of people give lots of reasons over the years why Lisp loses. Very few of those reasons were ever based in fact. Even today I hear people comp
by lisper 5y ago
I've heard lots of people give lots of reasons over the years why Lisp loses. Very few of those reasons were ever based in fact. Even today I hear people complain that Lisp is an interpreted language. Back in the day they used to complain that it used too much memory, with a RAM footprint of about 8 megabytes (that was including the application code).
- gumby 5y agoThey also commonly complained that the Common Lisp standard was too large with too many library functions. Nowadays one common criticism is that there aren’t enough libraries.
- e3bc54b2 5y agoI started dabbling in CL last month, and I both of those points are valid, if for different reasons today. Most languages have a single standard way of doing basic things, and provide libraries for advanced operations that are not faced by everyone everyday, but more than once per average person. First criticism of Common Lisp being it has too large standard lib, and it collides with first half of above paragraph, because newcomers like me get confused at 4 different ways to set variable, all named ever so slightly differently. Second criticism being lack of libraries. This comes in effect with second half of first paragraph. For eg. I wanted to build a simple webapp to parse PDF into separate pages and convert them to speech. I could write one in Java in a weekend, but there is nothing comparable in Common Lisp, especially in terms of proper documentation and examples. I couldn't lift off after initial interface. I had to scour through library source to even understand basic usage. It is possible I missed something obvious, but as it is, Common Lisp is not a good language to start greenfield projects.
- lispm 5y agoOne can always call external code from Common Lisp - there is no need to re-invent/re-implement everything in CL. Use a FFI to call library functions, call external routines or call internal routines (ABCL runs directly on the JVM and can call arbitrary JVM) code. Using Common Lisp does not make it necessary to write all code in it. Not sure why I would for a project re-implement existing PDF features of other tools - unless there is a specific reason for it. I would always first explore to re-use code.
- e3bc54b2 5y agoThanks. I was trying to go as native as possible. I did get it to completion by using other tools for everything but web interface. The reason I was so disappointed was because my prior Lisp experience was with Emacs Lisp, which has probably the best documentation and iterative and interactive development experience of all the programming languages out there. I was spoiled and had probably unreasonable expectations. NixOS doesn't make things easier either. I'm looking to make another attempt at this, hopefully I'll do better then.
- vindarel 5y agoNext time please come ask on /r/lisp or Discord! The beginner documentation is getting better. https://lispcookbook.github.io/cl-cookbook/getting-started.html#creating-a-new-project https://lispcookbook.github.io/cl-cookbook/getting-started.h... https://lispcookbook.github.io/cl-cookbook/web.html https://lispcookbook.github.io/cl-cookbook/web.html an example web app: https://github.com/rajasegar/cl-trello-clone https://github.com/rajasegar/cl-trello-clone
- pfdietz 5y agoI love this quote (from Interlisp-D: Overview and Status): "Interlisp is a very large software system and large software systems are not easy to construct. Interlisp-D has on the order of 17,000 lines of Lisp code, 6,000 lines of Bcpl, and 4,000 lines of microcode." So large. :) http://www.softwarepreservation.net/projects/LISP/interlisp-d/Papers_On_Interlisp-D.pdf http://www.softwarepreservation.net/projects/LISP/interlisp-...
- deleted 5y ago[deleted]