4 ms·
You have lot of good libraries in clojure, as well as clojurescript for the front end with nice js interop. For Common Lisp there's some nice stuff too, that bu
by Arcanum-XIII 10y ago
You have lot of good libraries in clojure, as well as clojurescript for the front end with nice js interop. For Common Lisp there's some nice stuff too, that build over hunchentoot but can't remember the name. The book Common Lisp Recipes has a lot to say about those topics too, the perfect complement to Practical Common Lisp in fact :)
- LyndsySimon 10y ago> You have lot of good libraries in clojure, as well as clojurescript for the front end with nice js interop. I've been writing Clojure for about a month now, and I love it. My background is mostly in Python, and I picked up Ruby about a month before Clojure. My rampup in Ruby was really about a week, given that much of it is so similar to Python - it was mostly about learning conventions and what the community considers to be "idiomatic Ruby". Clojure was much more difficult to learn, and much more fulfilling/enjoyable. It's definitely changed the way I think about my code in all languages and that's a good thing. One thing I will say though is that the majority of the time I've spent struggling with Clojure has actually been struggling with Java. For example, I wrote a collection of forms that decrypt and validate an auth token sent by a third-party legacy application. This required using java.crypto, which was a nightmare. I was porting code from Ruby, which was using OpenSSL. At one point I had references for Clojure, Java, Ruby, OpenSSL, and C all open at once, trying to figure out what was going on. In the end that particular problem was because Ruby's OpenSSL wrapper magically use an IV of eight null bytes if you don't supply one while java.crypto didn't use one at all - but it was one of the more difficult issues I've had to debug in recent memory. I guess what I'm trying to say is that I would absolutely recommend Clojure as a first Lisp to learn, but I would also suggest that the person doing so either already have some experience in Java or have a way to reach out to someone who does. I'm planning on picking up CL at some point soon as well, but from what I've experienced and gleaned from the experience of others Clojure is probably the better choice is your area of interest is mostly the web, because of the dev community and access to Java libraries.
- kbp 10y agoClojure is pretty drastically different from Lisp in most ways. If you wrap your head around macros in Clojure that will mostly carry over to CL, but just about everything else will be a learning experience. They're both very cool languages, but much more different from each other than for example Python and Ruby are. If you're interested in Lisp, learning Clojure first is sort of like learning Spanish because you're interested in French.
- LyndsySimon 10y ago> Clojure is pretty drastically different from Lisp in most ways. I remember tinkering with Scheme when I was much less experienced, and getting hung up on the constant recursion and singly-linked nature of the iterables. I'll get back to that, but I strongly suspect that Clojure will remain more practical for the type of work I do (back-end web, mostly). > If you wrap your head around macros in Clojure that will mostly carry over to CL I've not tackled writing them yet, but I've read a ton of the language internals and other people's code and I'm getting to the point where I can anticipate where they've used macros and why. I've also begun reading - slowly - Let Over Lambda, which has kinda blown my mind. My colleagues with more Clojure experience strongly advise me to treat macros as black magic that should rarely be used, but my opinion is slowly but surely going the other way. Macros seem like most of the point of using a homoiconic langauge, and to reserve them for edge cases seems unduly conservative. We'll see if that opinion changes as I learn more and begin to use them in my own work. > If you're interested in Lisp, learning Clojure first is sort of like learning Spanish because you're interested in French. I'm honestly not sure what I'm interested in learning right now. I feel like I fully grok Python. Though of course there are things I can't sit down right now and write without looking at a reference, I know what tools to use when and why they're appropriate. Having not acquired a compsci degree, I'm basically looking into the more esoteric languages and design patterns at this point, trying to find concepts that expand my abilities and knowledge. FP was one of those things, the concept of homoiconicity was one, and macros seem to be another. Haskell looks interesting to me as well, but I'm cautious of the passion of their community. My impression is that they believe they are the "one true functional language", and with things like Lisp having been around for much longer in that role that seems a little too "flavor of the month" for me.