4 ms·
It's a seamless dynamic programming language, which can, with care, be given excellent performance and a high level of abstraction. In my opinion, it's miles be
by pnathan 10y ago
It's a seamless dynamic programming language, which can, with care, be given excellent performance and a high level of abstraction. In my opinion, it's miles better than the other dynamic languages out there, by nearly every factor. It rewards investment and development very well; it's a tool for mastery, not for quick and easy starting.
If you're looking for statically typed languages, it's not going to win there. But my experience writing a lot of Perl and Python, with a certain amount of helping with Clojure and Ruby experience, strongly indicates that Common Lisp is very very competitive there outside of the 'library' front.
- ue_ 10y agoThe Common Lisp library ecosystem isn't as polished as it is in Python from what I know. Nor is the documentation for many libraries up to scratch, even the stellar ones. Some libraries merely document the functions provided and don't go into how to use the library. Even stellar libraries such as Hunchentoot do this, which I find rather annoying after using Python libraries which seem to make it an important point to tell you how to use things. I love CL and the idea of Lisp in general, but its modern unpopularity makes it hard to ask questions (because chances are you won't get a response any time soon) and the library situation is a real downer.
- pnathan 10y agoThe CL community tends to expect you to read the source. You're not just a user, you're a programmer too - and quite possibly of the library you want to use. It's an interesting dynamic, very alien to modern computing modalities.
- jabl 10y agoSometimes I get the feeling that the lack of CL libraries is somewhat self-imposed. "We don't need no stinking libraries. Since CL is so AWESOME, a competent CL programmer can reimplement whatever he needs in a fraction of the time that programmers using a lesser language would need even with the help of ready-made libraries". See "smug Lisp weenie". Not saying that the above is actually factually true; certainly quicklisp has done a lot to make 3rd party libraries a lot more approachable.
- wruza 10y agoI'm not an experienced web/http developer, but it [1] seems pretty understandable and even contains "Your own webserver (the easy teen-age New York version)" section for those who don't care, give them teh routez guys. define-easy-handler serves exactly that purpose. From what I'm able to recall from my childhood, all docs were like that. [1] http://weitz.de/hunchentoot/
- edem 10y agoDo you prefer it over Clojure? If yes why? I'm a bit versed with Clojure but sometimes I feel that it is not a true lisp.
- cutler 10y agoMuch as I love Clojure I find the list vs seq abstraction goes against the lisp tradition.
- brudgers 10y agoCommon Lisp has a sequence type that includes lists and vectors (and because strings are vectors, strings). Ordinary functions like sort, remove, find, reverse, and length operate on them. Clojure's seq extends the abstraction to include maps and sets and other types implementing the interface.
- pnathan 10y agoYes. Clojure often feels like a skin over Java; an ergonomic library. Most visibly this is manifested in stack traces. Clojure also wants to compile files, rather than read them. There are good ideas in Clojure, but they lie around the parallelism abstractions, not around the implementation. Socially, of course, the JVM has a huge mindshare.
- cronjobber 10y ago> sometimes I feel that it is not a true lisp. That feeling may be the result of some questionable syntactic design decisions in Clojure. Hickey went over Lisp syntax and tried to remove parentheses wherever possible. (It was the hip thing, PG's Arc did it, too, which may be where Hickey got it from.) As a result, you get a sub-par editing experience —generic sexp-based structure editing doesn't get you as far as with a Lisp— and diminished readability once you get above three omitted pairs of parentheses in a row. On the other hand, Clojure arbitrarily mandates a secondary kind of list literal in some places of the syntax, again making Clojure harder to write and edit. I don't even see a readability benefit, but of course YMMV. TL;DR: Clojure syntax is a "complected" derivative of Lisp :-)