top | item 31230504

Racket v8.5

201 points| bwidlar | 3 years ago |blog.racket-lang.org

85 comments

order
[+] jesushax|3 years ago|reply
Racket, what an odd part of my life.

After learning QBASIC and then quickly pivoting to Python thanks to the advice of my peers on 711chan IRC, I read ESR's "How to become a hacker" which lauded Lisp as this magical language that will forever change the way you think. Wow, powerful stuff for a teenager to hear. I want to have elevated, magical thinking. So I downloaded DrRacket.

Years later, after a few years that were the beginning of a career in software, I was in jail. I took some math classes where they gave us programmable calculators. I was fucking enthralled to be able to code again. I used TI-BASIC to make a little lisp interpreter, which I called Prison Lisp.

So many games, all the glee of a child in gradeschool (which is comparable to incarceration in many other ways). The people in my pod (shared living dormitory type thing) all asked to play the games, it was like having a gameboy.

Out again, mid twenties, start to code again. Somehow, a few years with no computers hadn't affected my ability to code in the least. I was actually much better than before. I start competing for gigs on Upwork, supporting myself pretty comfortably. I get married, start a family.

My wife loves coding challenges, but has no professional ambitions in tech. So I show her Racket, she loves it. My daughter is curious and wants a different lisp, so I show her Clojure. She hates it, sticks with Python. No judgement, I'm a lifelong Pythonista at this point.

I think back, to a friend from that 711chan IRC chat. He was learning Perl and I had recommended he try out something else, taught him a bit of Racket. I Googled him a year or so ago, turns out he ended up making several contributions to the Racket source code, and is a big shot electrical engineer. Good for him.

Life is so beautiful and strange.

[+] bitwize|3 years ago|reply
That's the second-coolest prison story I've ever heard. (The coolest involved the narrator meeting a guy in the joint, who took Dragon Ball Z very, very seriously, and taught martial arts classes for his fellow inmates based on the Saiyan moves from the show, which turned out to actually be pretty serviceable self-defense techniques.)
[+] lenkite|3 years ago|reply
Why did your daughter hate Clojure ? Was it the language or the tools/ecosystem? (Curious on what beginners find difficult)
[+] nekomorphism|3 years ago|reply
Thank you for sharing! Glad to hear things worked out for you!
[+] d0mine|3 years ago|reply
If it is not gpt-generated, it is a rather remarkable experience worth elaborating on.
[+] jp0d|3 years ago|reply
I'm fascinated by Racket-lang team's constant updates. It feels like there is always some activity in that space. Does anyone know about any companies where it's used in production environments? Is it particularly good for certain use cases? Thank you.
[+] neilv|3 years ago|reply
The activity is mostly the core professors doing research, a lot of teachers and students, and a number of enthusiasts.

It's been used by only a handful of companies that I know of (not counting Naughty Dog). Usually as one-person projects for which the person is allowed to choose fringe tools. A couple of those turned into major projects, but they still needed only a couple/few (super-capable) people.

Maybe the most interesting thing about the user base is the enthusiasts: as a resume keyword, Racket is effectively unemployable, and there's large opportunity cost in the current "tech" job market, of spending time on "technology" that doesn't facilitate job-hopping. So the enthusiasm seems to be for the genuine technical and community merits.

[+] exdsq|3 years ago|reply
I looked a while ago and apart from some scripting at Naughty Dog it sounded like it's strictly used in academia and hobby projects. It is however probably my favourite language at the moment and if you're willing to learn something for fun, I recommend it. I've learned a few things that are language-agnostic, like some streaming stuff, so I guess it's not a total waste purely from a work perspective either.
[+] skrishnamurthi|3 years ago|reply
See the presentations at the annual RacketCon's. That gives you a sense of some of the industrial uses.
[+] nonrandomstring|3 years ago|reply
I love Racket. As Lisps go it seems one of the more accessible for beginners and so I dabble with the idea of using it in teaching just to spice things up from Python all the time.

The one MAJOR downside, for me personally, is that a lot of the online presence cowers behind Cloudflare, the dreaded nemesis of privacy oriented text-based browser users. Why hide such a beautiful programming language behind so much ugly digital razor-wire and barking dogs?

[+] skrishnamurthi|3 years ago|reply
Sorry, I have no idea what you mean. DrRacket is a binary you download and run on your desktop. What parts of Racket are "cower[ing] behind Cloudflare"?
[+] jp0d|3 years ago|reply
[+] fn-mote|3 years ago|reply
Absolutely not.

SICP is a fun way for a mathematically-strong person to learn a huge swath of computer science through experimentation and thinking about the results.

You have to not just _do_ the exercises but _understand the results_. It's not an easy on ramp.

You would be better off working through the Racket Guide [1] or one of the tutorials on their web site.

[1] https://docs.racket-lang.org/guide/index.html

[+] adamddev1|3 years ago|reply
I think HTDP is a great way to learn Racket and quite helpful patterns for thinking about programming in general. Also much more entry level than SICP.

https://htdp.org/

[+] perihelions|3 years ago|reply
SICP uses Scheme. Racket is a rather different, much larger language.

Racket's default #lang isn't even compatible with SICP -- for example its cons cells aren't mutable. (Though it's perfectly fine to use Racket tooling with SICP or other Scheme books -- just set #lang scheme instead of #lang racket).

[+] srcreigh|3 years ago|reply
It is a great book. I'm planning to use it to teach an 11 year old how to program.

We've had one lesson. So far the format of me skimming SICP and giving him little challenges til he gets the content is working out.

As an adult sure it's great. Just do it. It's more scheme than racket though, but that's plenty.

Racket macros are important too and you won't get that from SICP.

One does not (ever?) finish learning racket. Even its creators are still researching it.

[+] MichaelBurge|3 years ago|reply
Error Message Realms are documented in this pull request, but not in the actual documentation yet: https://github.com/racket/racket/pull/4104

    "Racket CS runs on platforms where native-code generation is not currently supported"
It looks like this means "Racket-on-Chez-Scheme"(i.e. "Racket >= 8.0") will run, but it won't use Chez Scheme it'll default to the old system: https://github.com/racket/racket/issues/3802
[+] Bogdanp|3 years ago|reply
> It looks like this means "Racket-on-Chez-Scheme"(i.e. "Racket >= 8.0") will run, but it won't use Chez Scheme it'll default to the old system: https://github.com/racket/racket/issues/3802

No, that item means Racket CS runs on platforms where native code generation isn't available via a portable bytecode backend.

[+] samth|3 years ago|reply
The documentation on docs.racket-lang.org isn't updated to the new release yet, which is why realms are missing. The hold up is that it needs to build all 2k packages with 8.5 first.
[+] User23|3 years ago|reply
Is Racket a practical competitor for Common Lisp yet?
[+] Bogdanp|3 years ago|reply
What made it not a practical competitor to CL before for you?

Racket has a nice runtime (much nicer than what you get with CL, though with some downsides (eg. memory usage is higher in Racket)), a large standard library, a comparable number of packages (~1800 on pkgs.racket-lang.org versus ~2100 on quicklisp), good editor support and a pretty great distribution story (via `raco exe`, `raco distribute` and the relatively-new `raco cross` for cross-compilation). All things that make it very practical in my book.

[+] rscho|3 years ago|reply
Racket is a competitor to Python, that is IMO a better Python than Python itself. The only thing lacking is popularity, which is probably both a good and bad thing.
[+] nekomorphism|3 years ago|reply
On some fronts. Im envious of their out of the box experience for beginners. Eg Their docs are nicer, and DrRacket seems very cool. (Emacs + Sly/Slime are nice, but very alien to the uninitiated)

Obviously CL is going to win wrt perf. and interactivity.