Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I'm a Racket newcomer (before that I used Common Lisp as my primary Lisp).

The standard library is great. It has a lot of built-in functions/macros that abstract many common Lisp paradigms, similar to what Alexandria was meant to do, but much better (in my opinion). Recently, I was working on a Racket implementation of a project that I'd originally wanted to do in Common Lisp, and I felt practically cheated that so many of the 'hard' parts were compositions of one or two Racket standard functions.

Take a look at the Racket homepage; one of the 'Hello, World' examples on rotation is a web server in ~5 lines of clean, readable Racket.

The community is among the best I've seen in programming languages (IRC channels, etc). Very friendly and helpful.

Documentation is very well-done. My only complaint is that I do have a bias against languages without a strong culture of providing example code in the documentation. Some libraries do this better than others. Overall, I'd say it's far better in this regard than Java and Haskell, but not as good as Python. (I understand that this is also a matter of language design; some languages need this more than others).

As far as Clojure's 'features', I've never found myself a fan of the additional syntax, but if you ask me, Racket solves this problem in a far better way: scoped sub-languages.

Lisp's biggest asset is its ability to create other languages (and other syntaxes) so easily; Racket provides an unbelievably clean way of abstracting this and even mixing code between two dialects. For example, I find myself using Typed Racket (a strongly typed dialect with static type checking), but some functions are only implemented in other dialects. That's no problem; I can mix modules written in different dialects in a fairly straightforward manner.

For me, this was the killer feature that convinced me I needed to start using Racket. Yes, this is possible in Common Lisp (what isn't?) but Racket already had a large and accessible community built around this.

So, if there's anything you miss from Clojure, chances are good that you'll be able to find what you need, between the scoped dialects and well-designed libraries, not to mention Lisp's own powerful tools for recursively defining language features on-the-fly.





Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: