3 ms·
Since Clojure is advertised a lot whenever there's a Common Lisp story, let me do the reverse: give Common Lisp a look. It's a member of the Lisp family that:
by aerique 10y ago
Since Clojure is advertised a lot whenever there's a Common Lisp story, let me do the reverse: give Common Lisp a look.
It's a member of the Lisp family that:
- has a lot of high quality, implementations on a lot of different platforms be they native or hosted,
- is multi-paradigm so it doesn't lock you into just functional programming, or just object-oriented, etc.,
- can go from high-level code to fast compiled code (coming close to C++ speeds, like twice as slow.. not many high-level languages manage this),
- has been an ANSI standard for a long time and because of that:
- is a stable language: code from decades ago can be run without much (or no) porting. A while ago code from the early 1970's (or was it the 1960's) was made to run relatively easily, although I cannot find the link,
- is still a joy to program in, it brings together features that have been popping up in other languages but only in CL they feel so seamless,
- has a really nice development environment in Emacs + Slime (if you can stomach Emacs),
- has IMHO a nice and helpful community,
- has a great history, you'll come across almost any aspect of software & computer history when diving into CL.
The CL community has always been hotly debated and is usually negatively depicted on HN. I've never found it to be too bad, although it has attracted it fair share of trolls in the past.
- systems 10y agowhich CL implementation is considered the most active/modern? and which one do you use?
- aerique 10y agoSBCL and SBCL. http://www.sbcl.org/ http://www.sbcl.org/
- ohyes 10y agoAgree SBCL and SBCL if you're looking to do linux for scientific or web. (Let's get real, is there anything else?) Clozure Common Lisp (http://ccl.clozure.com/ http://ccl.clozure.com/) is excellent if you're on the mac. Windows I'd do Lispworks or Allegro (both commercial lisps), although rumor has it SBCL for windows has gotten much better. Admittedly my last experience doing anything on windows was probably ~5-6 years ago. Great thing is, the language is standard, so generally you can just pick one and start messing around.
- systems 10y agolispworks actually looks very good to build in house Line Of Business applications but the cost and price, really stand in the way of it being used in a greenfield/side project, where you work on something new without necessarily having your management approval, and then present it to them once .. it works
- gkya 10y agoI'd say SBCL and CCL, but CL implementations are not like Schemes where there are huge incompatibilites and practically you have to target a certain compiler. With CL the compiler-specific stuff are very-rare and small in number, so most of the time you should be fine on any compiler with ongoing development.
- peatmoss 10y agoIn the spirit of highlighting other, non-Clojure, lisps to look at, I'll mention Racket. Compared to Clojure: - Not hosted (on JVM) - Similar disposition on nudging you toward functional programming - Less syntactic sugar (some of Clojure's sugar I find nice, but is divisive for some) - Older Compared to CL: - One canonical implementation. This is good (consistency) and bad (choice, variety) - More biased toward functional programming than CL - People seem to think Racket's macros are more powerful than CL's, but I'm no macro-master - Package management (raco) feels much more pleasant, subjectively, to me. - Develop in Emacs or DrRacket; the latter being a pretty decent IDE for newcomers and others who'd haven't seen the true light of Emacs. - Newer, feels newer I started carving off small chunks of time a few years ago to try and hear the music of the spheres everyone talks about with lisps. I started with CL, then tried Clojure, and have mainly been dabbling in Racket these days. Subjectively, Racket has been the best beginner experience by far. As for hearing the music of the spheres, I'm still waiting. EDIT: I forgot Rackjure! Racket is also a framework for building new languages (languages that are compatible with Racket, generally). Rackjure adds some of the Clojure-isms to Racket and seems to be used by a number of packages Also, Typed Racket is another such variant of Racket that uses types for safety and performance reasons.