Racket is a nice language with the batteries included and lots of polish aimed at attracting new developers. However, Common Lisp really is a superior language in almost every way. As mentioned, I am having mixed thoughts. I have been using Racket sparingly to get my feet wet for the past few months, and while it is nice, there is a lot to be missed from Common Lisp
Deficiencies of Racket (compared to CL):
- No built-in multi-methods and lots of super-specialized functions (the same functions but for lists, vectors, hashmaps etc; to be fair CL is not ideal here either).
- No introspection compared to one with SLIME.
- Debugger... well, essentially absent if you have to compare with CL
- Module re-loading removes everything in running image (in DrRacket, perhaps, you can do a bit better in Geiser).
- Efficiency: compare the speed of SBCL and Racket
- Support for OOP: nothing compared to CLOS. Racket has message passing style OOP, which is OK (Smalltalk does it too, for example), but the synt