Hacker News new | ask | show | jobs
by Bogdanp 960 days ago
I don’t know about “of note”, but here are a couple pieces of software I’ve built with Racket:

* https://franz.defn.io/

* https://remember.defn.io/

* https://defn.io/2023/08/10/ann-franz-source-available/

HN itself runs on Racket.

2 comments

Wonderful projects! I wish I could give you more than 1 upvote.
You just make me realize, you effectively can.

In the way those Dyson bladeless fans pull more air through. In your case, many folks know you (some from UIUC too like me) and know your upvote is worth reading, ending up upvoting too.

p.s. s/make/made/ courtesy of keyboard typo
Thank you!
> HN itself runs on Racket.

Isn't it an ancient version of Racket, though?

But doesn’t it also work fine, whatever version it uses?
My point, based on the assumption that indeed Arc runs on an old Racket version, is that it doesn't serve as a good example, in my mind, in terms of what you could build with Racket today.

This is a quite common pattern in the Lisp and Scheme world where examples of real world usage are given, but they're effectively outdated.

[Another try in case this is the type of answer you wanted.]

In Racket the batteries are included. Two examples of programs I had to write like two years ago for work:

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

In both cases, and all the features were installed by default. There are many user defined libraries that can be downloaded as packages, but I didn't need to use them.

For what it's worth, I am actually a fan of Racket, or at least was. It's what I reach for when I want a Scheme. But I lost enthusiasm for the language when the Rhombus project was announced. I now mainly use F# and Elixir for my side projects. Racket doesn't really provide anything over those two languages for most use cases.

And it's tough to get support as there's very few people who know the stack well enough, and those people are the busiest and also professors, so their time is limited.

Which are the three things you would miss the most if you had to use Racket? It's interesting to know the pain points.

For support you can ask in https://racket.discourse.group/ , most questions are answered the same day. I don't know if someone is available for consulting/hiring.

Racket has a strong respect for back compatibility, so it should work in the current version. There has been a lot of improvements in the compiler (in particular changing the "back end" from C to Chez Scheme) but it's stil back compatible and sligthly faster.
It is my recollection that the official Arc uses incompatible features. I can't remember where I read this, so it's entirely possible I am incorrect.
Arc mutates inmutable pairs (cons), it worked initially because at the C level mutable and immutable pairs were the same struct. Now there is a primitive unsafe-set-immutable-car! [1] for cases like this. It's a weird primitive and should be used with a lot of care as explained in the docs.

[1] https://docs.racket-lang.org/reference/unsafe.html#%28def._%...