Hacker News new | comments | show | ask | jobs | submit login

Good post. I haven't used clojure yet, or any purely functional or lispy languages, but I'm keen to try. I'm especially interested in macros and dsls, as I feel like I'm always trying to bend ruby and python into structures that seem, from the little I know of lisp, like they really want to use lisp macros, and the more experience I get, the more I feel like that sort of metaprogramming is where the real power is. That said, I'm also wary of trading the comfy, curated library ecosystems of rb/py land for what looks from the outside like the overgrown jungle of Java.

I think I've narrowed my next learning project down to either clojure or node. Node seems perhaps more immediately useful and easier to grok, while clojure may offer more for my overall development as a programmer. I'm not the type to build a throwaway educational app--I have to feel like whatever I'm working on could turn into something real, even if it's unlikely, so if I were to go with clojure, I'd want it to be for its potential to really offer more power and productivity in making something cool and getting it launched, not just as an academic exercise. I have a couple busy months of contract work to go before I'll be able to dive into anything, so it's great to read reports like this while the decision stews.

If you're looking for Lisp-like meta-programming, I'm pretty sure you don't want Node. It may be easier to grok, but that's because it's much closer to Ruby and Python than it is to lisp. The interesting thing about Node is its event-driven structure.

For that matter, you might not want Clojure to be your first lisp experience. Have you considered Racket, the scheme dialect? It seems to have lots of useful libraries, in addition to being, I don't know if "cleaner" is the right word, but something like that. A bit more traditional, maybe simpler.

I don't have that much experience with lisp or Node. If someone with more experience can correct my impressions, I would be grateful.

As someone who's used Common Lisp, Scheme and Clojure; out of that bunch I would highly recommend Clojure for a beginner.

Pros: 1. Easier to setup (with a single script from https://github.com/technomancy/leiningen) 2. Benefits of a lisp-1, with nicer syntax (fewer confusing parens) 3. Easier to get started with Emacs + swank-clojure + lein 4. Wealth of Java libraries 5. Functional

Cons: 1. Can't think of any, unless you want Interface Builder and similar, or are desperate to program using call/cc or are in any of the above ways a non-beginner. drscheme is a nice counterpoint though, in that the learning enviroment could include a bit more hand-holding.

IMHO for those coming from ruby/python etc. Clojure is a huge win. With square brackets for function-args, if you turn off or dim parens (emacs has several options such as rainbow-parens) the source looks very much like python.

And with M-q and friends and sexp editing, it behaves better.

Interesting. Thanks. Maybe I'll start there, too.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact