6 comments

[ 3.7 ms ] story [ 27.9 ms ] thread
I do a substantial amount of coding in Racket, including maintaining the Herbie numerical compiler (https://herbie.uwplse.org/) over the last decade.

Racket is great! The runtime is reasonably fast, and the standard library is exceptionally featureful, including, for example, a decent plotting library, an HTTP server, decent HTML and JSON support, several forms of multi-threading, and a quite good FFI, all of which Herbie uses extensively. I suppose the parentheses are a question of taste (I like them!) but a lot of the specific syntactic decisions, like the `for` and `match` macros, are quite nice.

Is Racket the Lisp where I wanted to write keywords like `foo:` or `:foo`, but they went with something like `'#:foo`, which ruined keyword syntax for me?
Fear not, you can make `#%top` and `#:app` rewrite `foo:` to `#:foo`.

FWIW choosing `#:foo` over, say, `foo:` was due to backwards compatibility. In Scheme and Racket `foo:` is a legal identifier, so there might have been programs that stopped working, if `foo:` suddenly was a keyword.

I have heard so many bas thing about Racket, all the bullying of the core team and being really bad people in general. Each time I like to give it a shot I remember this and just walk away.
Racket is made by academics. Academics piss on each other a lot, it's unfortanately part of the culture and has (historically) been rewarded in the system (I am a PhD candidate, FWIW, and so have many, many friends "in the system").

If you're going to get excited about academics being pissy and condescending to their rivals, you're going to eliminate an awful lot of useful things from your life when you peek behind the curtain at the conversations between the makers.

Personally, I find academic pissing matches far, far less offensive than the self-agrandizing bullshitting we find in industry. Look hard enough, and there are people being at least occasional jerks everywhere.

My father is within the scientific community and so, sadly I'm fully aware of this trait of theirs. But there is just something about people like this that I want to have the luxury of avoiding. At least in this situations. There are languages famous for their nice communities (say Rust and Ruby) why choose racket when they exist?