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

I used Racket in an intro to CS course a few years ago and was told it’s designed to be a teaching language. Is there any reason to use racket over a more popular functional language? Does anyone use it in production?


The Racket distribution comes with several languages. You were probably using the socalled teaching languages, which are small subsets of real Racket. Using a subset of the real language allows better and more beginner friendly error messages.

The real Racket language is a general purpose language with all the bells and whistles you could ever imagine.


Plus some bells and whistles that you can’t! It’s really impressive, and I’ve found Racket’s documentation to be excellent.


Carmack would have used it for Oculus, had management not said no. https://twitter.com/id_aa_carmack/status/807797812700348416


Javascript would have been a Scheme dialect, had it not been that NetScape's management said no.


If my memory serves me correctly, you are currently reading and posting on a website written in Racket.


HN is written in Paul Graham's Arc language, specifically, a language built in Racket.


The killer feature of racket is it is very easy to make Domain Specific Languages (including the teaching language) and related tooling. However last time I looked the library ecosystem didn't seem great; there were many libraries but few that were actively maintained.


One could also argue that DSLs are not always good esp. in large projects maintained by many devs.


I think the counterargument is that in large projects, you will end up with DSLs whether you meant to or not. The philosophy of language oriented programming (LOP), as I take it or understand it, is that since you'll end up with them anyway, why not approach and build DSLs explicitly.


Another word for DSLs is functions (and objects).

DSLs are just better integrated into the base language so your source code doesn't look like:

    three = two.add(one)


...did you take it in room DC 1350? ;)




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

Search: