Remix.run Logo
hit8run 4 hours ago

What is the use case for this?

bjoli 4 hours ago | parent | next [-]

I used it to write a macro processor for C which allowed me to write some macros with s-expressions and have it expand to a lot of C code. That way I could actually write real macros for C.

I have also written GUI apps for various things. Kind of like what I did with TCL back in the day.

I wrote a little maths game for my son.

I also wrote a static site generator in it that allowed me to execute racket code at compile time (interpreting each markdown file as a source file).

gus_massa 4 hours ago | parent | prev | next [-]

It's a general purpouse language. Reusig an old comment, I used it for

* A bot to reply emails that uses IMAP, SMTP and web scrapping. (It's not 100% automatic. It replies only the easy cases and adds labels so I reply the tricky ones.)

* An program to cleanup Moodle backups that uses gzip and xml. I compiled it and send it to my coworkers. (The backups have too much info, so before restoring it in another site it's better to remove the unused parts.)

Jehuty64 3 hours ago | parent | prev | next [-]

I wrote custom language for designing Age of Empires 2 Random Maps. Basically AoE2 already supports it, but the underlying language is very very primitive. While I am not aware of anyone actually using what I made, it was mostly nice learning experience. https://github.com/Erbenos/aoe2-rms

Because its on top of Racket, you get usual high-level language faculties for basically free.

YouAreWRONGtoo 2 hours ago | parent [-]

You can solve the versioning problem on your GitHub page by using Nix.

igouy 2 hours ago | parent | prev | next [-]

https://blog.cloudflare.com/topaz-policy-engine-design/

spdegabrielle 2 hours ago | parent [-]

The developers spoke at RacketCon this year https://youtu.be/7Twlh-Opq5E?si=JkWxLib8HTnjVjPI

Zambyte 4 hours ago | parent | prev [-]

As the other reply said, it is general purpose. It has a focus on education tooling, and language design (languages can be easily implemented on Racket)

hatmatrix 3 hours ago | parent [-]

What are some difference between the education tooling around Racket and that which enables "industrial" applications Common Lisp is known for?

gus_massa an hour ago | parent | next [-]

I think SBCL has better support for annotations. You can claim that a variable is an int and the compiler will thrust you and generante fast code.

You can use Typed Racket to add annotations. The compiler will verify your that your claims are consistent and perhaps add some runtime checks when you read data or use other external sources. It will remove most of the internal checks, but not all of them.

(Probably some features of Racket like impersonators make generating fast code faster, but on the other hand allows Typed Racket and other variants/libraries to ensure external objects behave correctly.)

Disclaimer: I use "Plain" Racket, so both descriptions may be slightly wrong.

spdegabrielle 2 hours ago | parent | prev [-]

That's a good question.

The education tooling is all optional (so their only impact is perceptual) DrRacket, teaching languages, and supporting libraries are all optional. (see Minimal Racket - just the compiler and package manager https://download.racket-lang.org/releases/9.0/#:~:text=SHA25... )

I'd like to know what tooling is missing from Racket that is available in major general purpose languages like C#, Java, or Common Lisp implementations?