Live data from Hacker News

Racket Compiler and Runtime Status

blog.racket-lang.org

21–30 of 102 posts

Re: Racket Compiler and Runtime Status

#22
post #10

I am interested in LISP-type languages, but I have a serious case of decision paralysis. GNU Guile? Common Lisp? Clojure (JVM)? Racket? Judging by my understanding of the difference between Common Lisp and Scheme, I think I am more of a Scheme type (I prefer C over C++, I like Go more than Java, etc).

If you want live image reloading stick to a Lisp like SBCL rather than Scheme. If you care about startup times or FFI then don't pick Clojure. YMMV between Racket and Guile; I would say Racket is better insofar as the culture of documentation is really very good. In practice, once you learn a Lisp, you can jump between them without too much trouble.

SBCL is an implementation of Common Lisp, to be precise. There is also CCL, or Clozure Common Lisp, which has the best support for macOS.

Re: Racket Compiler and Runtime Status

#23
post #5

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 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.

Re: Racket Compiler and Runtime Status

#24
Congrats on the release. What Racket really needs right now is a proper dependency manager with support for constraint solving and allowing multiple conflicting transitive dependencies. Cargo and yarn are the gold standard for this. A lot of Lisps tend to overly focus on language and compiler features and neglect the more boring tooling and infrastructure that makes a programming language successful.

Re: Racket Compiler and Runtime Status

#25

What is Racket primarily used for? I'm not sure where it fits in the language landscape in terms of strengths/weaknesses.

I think of it as the Python of Scheme (yes yes I know). Batteries included, well documented, big focus on ease-of-use.

It also has a Big Idea; it aims to be the practical realization of the grand idea that Lisps are the perfect platform to build programming languages on, and to take this so radically far that you can have entirely different programming languages that nevertheless share, not just a runtime, but all their libraries. Unfortunately, so far, nobody except Racket enthusiasts appear to have much interest in building languages on top of Racket - but it's absolutely possible and practical, and someone really did accomplish the astonishing feat of implementing Python (Python 2, alas) in Racket, in such a way that you could combine libraries from both languages.

Re: Racket Compiler and Runtime Status

#26
post #5

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?

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

Re: Racket Compiler and Runtime Status

#27

I am interested in LISP-type languages, but I have a serious case of decision paralysis. GNU Guile? Common Lisp? Clojure (JVM)? Racket? Judging by my understanding of the difference between Common Lisp and Scheme, I think I am more of a Scheme type (I prefer C over C++, I like Go more than Java, etc).

I think the first question is scheme, or Common Lisp? The answer depends on what your style is. After trying both I like scheme better but I agonized over this decision for awhile, though I enjoy sbcl and CLISP is dear to my heart.

In terms of schemes you have a wide variety to pick from. Gerbil, Racket, Gambit, Chez, Chicken and many more. Racket is a great all around choice. There are schemes that do various things better than it, but it can do most things well. It has two great edX courses to learn from (How to design simple data, and how to design complex data) and is how I initially learned.

Chicken is one of my favorite schemes and is probably the one I would use if I wasn't using Racket. It's so portable since it compiles to C. I love the egg system, and I like the logo. Gerbil is a performant systems level scheme. I remember there being an article about someone in the Common Lisp community considering jumping to Racket, but ending up on Gerbil Scheme for what it's worth. I haven't used it

Chez is another super performant scheme, and is actually the backend for the Racket programming language as seen in the article above. It was only open sourced a few years ago so it might be difficult to find solutions or get answers. I've used Guile, I appreciate the mission, but I found it wanting. I've heard people ship Gambit scheme apps onto IOS so if you are looking at mobile apps that might be the way to go, I'm sure Chicken could do that to. I have also heard that Gambits Cffi is one of the best in the business, so if you need to interface with a lot of C code that might be the way to go.

Re: Racket Compiler and Runtime Status

#28

What is Racket primarily used for? I'm not sure where it fits in the language landscape in terms of strengths/weaknesses.

To me, it's the language I use when I want to have fun.

Same. I learn so much when I try to do something with it.

You know what they say about emacs. "Emacs a great operating system, it's just lacking a decent text editor." Same with Racket. Racket is a great language development framework, the only thing missing is a decent language to write your program in.

It does take a lot more effort and expertise to design a language and a program. That's why it's fun for me, I get to dream more and need to learn more.

I'm inspired by the super interesting Racket papers [1] and PG's book "On Lisp". It helps that I got to use Racket to make a couple basic compilers in some uwaterloo classes too.. but I didn't even use macros for those projects, so I haven't really gotten started with Racket yet ;)

[1]: https://www2.ccs.neu.edu/racket/pubs/scheme2007-ctf.pdf

Re: Racket Compiler and Runtime Status

#30

I am interested in LISP-type languages, but I have a serious case of decision paralysis. GNU Guile? Common Lisp? Clojure (JVM)? Racket? Judging by my understanding of the difference between Common Lisp and Scheme, I think I am more of a Scheme type (I prefer C over C++, I like Go more than Java, etc).

In that case just pick the scheme dialect used by SCIP.

https://mitpress.mit.edu/sites/default/files/sicp/index.html

After getting comfortable with Lisp based languages, it is like Algol derived ones, it is relatively easy to jump between them.

I tend to stay with Clojure, because JVM/CLR is where I spend most of my time, so I can easily pig back into the libraries.

Maybe what you can do is similarly, pick a Lisp variant for the domain you spend most of your time on.

Post reply on HN