Hacker News new | ask | show | jobs
by dingfeng_quek 4879 days ago
I used to use Racket in production and prototyping (few years ago), as a "glue language" and "business-logic" for a web-app, for the parts that are not IO, memory, compute intensive, etc. My metrics for language choice are:

1. Simple to learn and remember (they tend to correspond)

2. Module System; Support for modularization of complexity

3. Simplicity of coding and maintaining simple modules

4. Simplicity of coding and maintaining complex modules

5. Available libraries and their quality

In comparison to (I can only code efficiently in) Java, Python, Javascript/CoffeeScript/Node, Common Lisp, Scheme, and Haskell

- Racket is best for 2. (especially if you add a bit of meta-data to a module) and 4.

- Racket is much better than Haskell, Java, and Common Lisp for all 5 metrics Except for Haskell, which happens to be very nice for certain things that benefit from its type and class system

- For 3., Racket is overly complex, especially with the macro facility and huge number of types and structures. Node/Javascript/Coffee is better by far; Python is a little better than Racket because of less language features

- Racket is weak in 5. - Racket has many libraries of dubious quality, and I've hit undocumented issues a few times; Only Java was worse; However glue/business-logic doesn't require many libraries I now use NodeJS because I've been dealing with simpler stuff.

1 comments

I haven't used Racket, though it looks cool. Since you are conversant in a few languages, I'd like to pick your brain if I can:

What do you think Racket could do to improve (particularly 5)?

And what could other languages learn from Racket's module system?