Live data from Hacker News

Racket Compiler and Runtime Status

blog.racket-lang.org

31–40 of 102 posts

Re: Racket Compiler and Runtime Status

#31
Thanks for all your hard work Racket team and contributors.

Can we appreciate the meta? A fast low-level program was re-written in a high-level language to reduce maintenance costs. These days on HN you usually only hear about the opposite, eg. Figma rewriting server Typescript code in Rust to improve performance [1]. Not fair to compare Rust to C, I know, but interesting nonetheless.

The loss of JIT was interesting. How does eval work? Apparently Chez Scheme AOT compiles code at runtime. Comparatively a JIT will change the compilation at runtime based on codepaths. There's a thread about that here [2].

Part of the motivation of CS was to make it easier for people to contribute to the compiler. I'm excited to see how that plays out.

Thanks again everybody. I'll go back to toying around with macros and tiny Racket programs now.

[1]: https://www.figma.com/blog/rust-in-production-at-figma/

[2]: https://news.ycombinator.com/item?id=16406391

Re: Racket Compiler and Runtime Status

#32

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 I am more of a Scheme type (I prefer C over C++, I like Go more than Java, etc).

Scheme is not more minimalist than C.L. in practice; it's standardization is simply more fragmented and has nested layers, often by different organizations, that implementations can support, and then most implementations go well above even that.

Different Scheme implementations tend to share a common base but then tend to provide functionality above that, often shared between different implementations as well.

Re: Racket Compiler and Runtime Status

#33
post #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

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

Re: Racket Compiler and Runtime Status

#34

Earlier quoted context omitted.

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.

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)

Re: Racket Compiler and Runtime Status

#35
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?

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

Re: Racket Compiler and Runtime Status

#36
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?

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

Re: Racket Compiler and Runtime Status

#38
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?

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

[deleted]

Re: Racket Compiler and Runtime Status

#39

Thanks for all your hard work Racket team and contributors. Can we appreciate the meta? A fast low-level program was re-written in a high-level language to reduce maintenance costs. These days on HN you usually only hear about the opposite, eg. Figma rewriting server Typescript code in Rust to improve performance [1]. Not fair to compare Rust to C, I know, but interesting nonetheless. The loss of JIT was interesting.…

eval works very similarly to how it worked before -- when you eval some code it compiled it and then runs it. Every* Scheme or Lisp system supports this kind of compilation-at-runtime, and Chez is no exception.

Re: Racket Compiler and Runtime Status

#40

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.

You might be interested in https://docs.racket-lang.org/xiden-guide/index.html (Sage also gave a talk at RacketCon 2020 about it).
Post reply on HN