Rendered at 23:24:29 GMT+0000 (Coordinated Universal Time) with Cloudflare Workers.
dexterlagan 17 hours ago [-]
Rhombus is what Racket should have been, back when it was the learning language at MIT, before it became Python. Had it been like this, maybe Python would have never gained traction within that community. The world would have been a very different place.
Rhombus' syntax is soooo beautiful. As a Racketeer, it's my dream language.
All the power of Racket... without a Lots of Insipid, Stupid Parenthesis.
Not that I don't like the parens, mind you, but Rhombus looks so much more... 2009. My only regret is that nobody will use Rhombus, except a few enthusiasts, for fun. In an AI age, new programming languages should really be LLM-first, sadly. But it makes me so happy that there are some people who still care about humans coding.
neilv 16 hours ago [-]
IIRC, MIT moved away from SICP, and therefore Scheme, because (something like) they saw the field for MIT EECS graduates changing -- from understanding how systems worked in detail, and being able to build from scratch, to assembling systems from off-the-shelf components. And I guess some thought that a currently popular language (first Java, and then Python) was more appealing for that.
One of the other objections to SICP, at least outside of MIT, was that it was too hard (especially for high school students). Which is part of why HtDP, and much of Racket supported that and other educational initiatives by Matthias Felleisen, et al. https://htdp.org/
I'm curious: Did MIT use Racket at some point for SICP, rather than MIT Scheme, either officially or grassroots? Jens Axel Soegaard, Mike Sperber, and I made some conveniences for doing SICP with Racket, circa 2009, but I don't recall hearing that Racket was used for SICP at MIT itself, only at various other places. https://www.neilvandyke.org/racket/sicp/
bmitc 12 minutes ago [-]
They moved to Python because they wanted to (the used a book that had been written by an MIT professor or two), because students were whining about it, and because of corporate pressure.
The actual challenger to Python would have been F#, but Microsoft being Microsoft made sure that that wasn't the case.
mark_l_watson 7 hours ago [-]
I love Racket, and have a ton of Racket code I have written over the years. When I get home from a vacation I will have an AI translate a small sample of my Racket code to Rhombus: easiest way for me to play with the language.
klez 13 hours ago [-]
> As a Racketeer, it's my dream language. All the power of Racket...
Interesting. For me the interesting part of Racket has always been the language itself. What else is there that you like and can use from Rhombus?
spdegabrielle 2 hours ago [-]
“Easy to use and uniquely customizable”
The customizable aspect being an open-compiler API that is accessible to a wide audience.
I love parenthetical syntax but I accept that some people don’t like it and find it hard to work with.
I see Rhombus as taking a key innovation in Python - indentation syntax - and giving it an extensibility that is impossible to add to such an established language.
snikeris 8 hours ago [-]
What properties make a language more LLM-friendly? I've found Claude will readily make use of a REPL when available.
tancop 6 hours ago [-]
The most important ones are fast build/startup times and informative error messages. They can focus on actually debugging your code instead of waiting for the compiler or looking up obscure error codes in the docs (if they have web access, if they don't they will hallucinate).
Lisps are great for fast iteration but the syntax is a big problem because it's so sensitive to a single misplaced paren. LLMs like clean syntax with as little noise and unnecessary tokens as possible. They work better with dynamic or inferred types, low verbosity, no repetition like `Foo foo = new Foo();`, clearly delimited blocks, you get the idea. Parts of the language should compose well so the chance that a reasonable edit will cause a syntax error is as low as possible.
Popularity was a big deal with early coding models that couldn't go from specific languages to a wider idea of programming. Modern LLMs can generalize a lot better and use Rhombus or Gleam with no major issues, but they still work better in Python or JS with more training examples.
Basically the things that make a language LLM friendly are the same ones that make it human friendly, at least if your human is an average developer instead of a FP fanatics or enterprise architect.
neilv 3 hours ago [-]
> Lisps are great for fast iteration but the syntax is a big problem because it's so sensitive to a single misplaced paren.
That's more a problem for humans who have never programmed in a Lisp and are using notepad.exe.
(if p (foo) (bar))
if (p) { foo(); } else { bar(); }
if p:
<indent>foo()
else:
<indent>bar()
> LLMs like clean syntax with as little noise and unnecessary tokens as possible.
Isn't that good news for Lisps?
shakow 6 hours ago [-]
> because it's so sensitive to a single misplaced paren
Much more than other languages are sensitive to misplaced braces/indentation?
giancarlostoro 21 hours ago [-]
Racket was always one of my favorite Lisp / Scheme dialect, mainly because of its very rich ecosystem, you can make websites, GUIs a lot of things with very minimal effort, that and Dr Racket lets you see visually where import goes into code, and a bunch of other nice things.
Rhombus strikes to me as an interesting language in this ecosystem (which it is!) that not only gives you access to all those capabilities, but shows how powerful Racket can be for building programming languages!
That said I have not yet sat down to try it, but as they seem to be doing quick development with it, I just might have to.
I really want to like Racket? I really do, but I just never really enjoyed like I liked Python. And despite trying a bunch of other Lisps and liking them, something about Dr. Racket annoyed me. I'm not sure why.
It's "cool" and the ecosystem rules, and it's fast enough, I just never really found that I liked writing Racket or using Dr. Racket the same way I like writing Python so I never really reached for it when I was trying to do something. Indeed, from the first time I looked at Python I liked it. That was not the case with Javascript or Java or C or PHP? I don't know, I like Python and really want a practical Lisp that I can really sink my teeth into? So by all accounts I should love Racket. And yet, I don't.
That said, Rhombus looks really nice at first glance. This might be worth a sustained excursion to build something a bit more fun... I'm kind of excited about this!
giancarlostoro 9 hours ago [-]
Racket and Clojure are the primary Lisp languages I like. The only thing I don't like about Clojure is the JVM itself ;) Mainly because Oracle stopped working on making Java have a rich GUI stack, JavaFX was brilliantly done and headed in a positive direction, but once Oracle took over Java, it kind of turned it into "that one backend language" essentially, instead of the cross-platform multi-application need swizz army knife it used to be.
andrewflnr 8 hours ago [-]
DrRacket seems to have doing the thing where they implement of a bunch of GUI stuff from scratch and miss a lot of edge cases in the process. It feels unpolished and a bit janky.
spdegabrielle 33 minutes ago [-]
The Rhombus gui library provides a reactive framework for constructing graphical user interface (GUI) applications.
Because it builds on the Racket platform you get one of the only cross-platform uniform gui toolkits that works out of the box.
giraffe_lady 20 hours ago [-]
Racket was my main language for personal stuff for years despite me never really liking it all that much and not able to put my finger on why. It's not even top 10 languages or top 5 lisps for me but it is just incredibly practical. I have zero passion for this language.
The way I use racket its main competitor is python. It's for when I want to accomplish something with heavy third party deps, and I have zero interest in writing the actual cool code I just need to make some libraries kiss and then use my tool. Not saying that's the case here but maybe racket just doesn't offer you much that python doesn't?
Sounds like you'd get more from just using one of the other lisps you liked, especially if there's a more specialized one that wouldn't be competing with a language you probably would prefer to use anyway. Like eg I have to deal with a lot of lua so I get my lisp rocks off with fennel.
piloto_ciego 20 hours ago [-]
This is something to think about... and you know, the other side of it is, "maybe I should play with Rhombus but also just spend some time playing more in Racket and choose to like it more?" lol - we can do that right? Choose to enjoy things?
One of the things I've really wanted to get into is writing some DSLs and Racket and Rhombus are supposed to be the tools you're supposed to reach for for that?
I don't know, the god's honest truth is that I don't write nearly as much code as I did 8 months ago lol, so maybe just diving into Racket and Rhombus for personal stuff would be fun and it doesn't have to something for work...
Really, the lisps I've really liked are Guile Scheme (ok not a lisp really but lispy enough and I liked it) and Clojure? But though I liked them I never had enough work in them to get really good. I do like Lispy languages in general though (since Emacs Lisp, which is glorious in it's own way), I just need the excuse to start playing with them more because they're fun.
You know what I've been really intrigued with over the years has been uLisp (which should be pronounced Micro Lisp) for microcontrollers (http://www.ulisp.com/), but a really cool project would be a DSL that spits out C for the STM32 boards I play with periodically for embedded stuff? I don't know, maybe after I get the cabin done... that'd be a really fun adventure and writing a DSL for that would make my life immensely easier...
alethic 18 hours ago [-]
Racket and Rhombus are nice for writing embedded DSLs, yeah. More generally, they're nice for writing macros. Scheme in general is nice for writing macros with its `syntax-case` and first-class notions of syntax objects, but Racket is /really/ nice with its `syntax-parse` and explicit notions of phase levels... If you are interested in learning, Greg Hendershott's "Fear of Macros" is often recommended as a good introduction. https://www.greghendershott.com/fear-of-macros/
piloto_ciego 18 hours ago [-]
I am interested, thanks!
I was reading through "Let Over Lambda" and kind of out of my depth because while I can mostly figure out what's going on I'm not using CL as a daily driver so the book just references functions and I'm like, "well I guess do-thing-nicely, does the thing nicely? Alright, good enough I suppose."
Maybe I should really give things another go with it. Thanks!
mark_l_watson 7 hours ago [-]
Since 1982 I have spent much of the time being paid to work in Lisp languages.
A weird thing: whichever Lisp language I am currently using for work (or a side project) is my favorite.
piloto_ciego 2 hours ago [-]
Man, you’re living the dream.
arvyy 16 hours ago [-]
you might be interested in Hy lang
spdegabrielle 32 minutes ago [-]
FWIW Rhombus is about 70% Racket and 30% Rhombus (by loc)
arvyy 16 hours ago [-]
> shows how powerful Racket can be for building programming languages!
Building languages was always one of selling points racket tried to push; the "Language-Oriented Programming Language" slogan and all.
neilv 16 hours ago [-]
And it's true, and one of the reasons that Racket (and other beefy Schemes) is easily tied for my favorite language.
But I have to use other languages, like Python, JavaScript, and Swift, for employability and (sometimes) ecosystem/integration reasons.
I experimented with Rhombus some time ago (most especially with Shplait). Is there much new with Shplait? Something I remember struggling with was trying to use racket libraries in Rhombus/Shplait
Skywing 18 hours ago [-]
With AI becoming so predominant, I wonder if dynamically typed languages will lose favorability? Seems to me like a heavily documented, statically typed language is going to be ideal for AI programming. I'm wondering what role these flexible, coder-friendly, dynamically typed languages will play in the years to come.
mark_l_watson 7 hours ago [-]
That is a really good question. My personal intuition is that LLMs do well with any language as long as you set up for fast syntax checking tools, access to either a REPL or very fast to run tests, etc.
I usually use small local models, and the work to set up very concise skills and efficient tooling is a big part of the fun. I have also adopted the practice of writing my own custom coding harnesses (these can be less than 2000 lines of code, not the huge project you might expect.)
soanvig 13 hours ago [-]
Actually, staticly typed languages are easier for both humans and machines; however dynamically typed languages are harder for humans and probably neutral for LLMs. LLM should be able to infer usage (hence "typing") because it can put the entire codebase in its context, while humans cannot.
rgoulter 11 hours ago [-]
I'd count in LLM coding agents favour: e.g. willingness and capability to do things which I'd have to go read a tutorial for; as well as rapidly being able to iterate and narrow down e.g. when given access to a repl.
Rhombus looks promising in terms of tooling.
On the other hand: LLMs are susceptible to incorrectly guessing "I think it should work this way".. I'd guess the powerful flexibility of metaprogramming could be more annoying than helpful. But, I'm curious.
mherdelight 11 hours ago [-]
I never really liked Python's indentation-instead-of-curly-brackets thing, why are people reusing it?
Jtsummers 8 hours ago [-]
> why are people reusing it?
Python has remained in the top 5 (often near or at the top) most used programming languages for years. Meaningful whitespace is not stopping people from using it in enough numbers to make it clear that it's a detriment as a language feature.
rtpg 57 minutes ago [-]
I love it. I'm gonna indent anyways for clarity!
I'm... not a super fan of rhombus' emphasis on metaprogramming beyond supporting the language itself though.
tiagod 6 hours ago [-]
Because whether you like it is not really of any importance to most people.
soegaard 5 hours ago [-]
As most other things - you get used to it.
But it's important to note, at you need editor support for rendindenting blocks easily and correctly.
9 hours ago [-]
antonyragleap 17 hours ago [-]
The practicality of Racket is interesting; sometimes a language wins simply because its ecosystem makes certain tasks much easier.
behnamoh 22 hours ago [-]
I wish they had chosen a more "modern" name for the language.
Jtsummers 21 hours ago [-]
What would be a modern name for a language?
jambutters 22 hours ago [-]
Honestly a unique searchable name is better. I type in racket and results are mixed with tennis and I need to suffix "Language"
sudahtigabulan 17 hours ago [-]
There is a naming tradition in the Lisp world, which Racket devs apparently have chosen over searchability.
Qualities or activities that have negative connotations. Guile. Gauche. Larceny. Racket.
I think it started with theorem provers - Planner, Conniver. Then Scheme[r].
Y_Y 13 hours ago [-]
I don't think Gauche fits there. There is a tradition of naming with synonyms for "scheme" (as in a criminal enterprise) like the others you listed, with some more peripheral ones like Gambit, Ruse, Artifice.
neilv 16 hours ago [-]
A funny thing was, when the rename to Racket was still fairly new, someone started looking into adopters in the finance space.
peesem 21 hours ago [-]
well, i also have to type "rhombus language" to get relevant results for the rhombus language
jimbob45 21 hours ago [-]
.NET/.NET Core/.NET Framework migration is painful because of this. VS/VSCode is sometimes only possible with AI’s help.
threatofrain 22 hours ago [-]
The way the Rhombus / Racket community does libraries has to change. That whole package site has to change. Being a contributor on there exposes you to a steady stream of fraud garbage. There's nothing to promote the top libraries as the top libraries.
I agree that a ranking mechanism would be nice, but what do you mean by "fraud garbage"? I personally am not aware of any malicious package in the Racket ecosystem.
fn-mote 9 hours ago [-]
Perhaps they are referring to the fact that the package server does not hide the email of the contributor?
Not that this is a complaint worth airing on HN.
Solution: just block the alias that you use for the submission…
Ah, I see what you mean now. Yeah, that was indeed problematic. We kinda fixed this issue a while back by obfuscating emails (https://github.com/racket/racket-pkg-website/pull/88), but it doesn't help with already scraped emails. Also, the raw emails are still technically readable if one knows where to look at.
Rhombus' syntax is soooo beautiful. As a Racketeer, it's my dream language. All the power of Racket... without a Lots of Insipid, Stupid Parenthesis. Not that I don't like the parens, mind you, but Rhombus looks so much more... 2009. My only regret is that nobody will use Rhombus, except a few enthusiasts, for fun. In an AI age, new programming languages should really be LLM-first, sadly. But it makes me so happy that there are some people who still care about humans coding.
One of the other objections to SICP, at least outside of MIT, was that it was too hard (especially for high school students). Which is part of why HtDP, and much of Racket supported that and other educational initiatives by Matthias Felleisen, et al. https://htdp.org/
I'm curious: Did MIT use Racket at some point for SICP, rather than MIT Scheme, either officially or grassroots? Jens Axel Soegaard, Mike Sperber, and I made some conveniences for doing SICP with Racket, circa 2009, but I don't recall hearing that Racket was used for SICP at MIT itself, only at various other places. https://www.neilvandyke.org/racket/sicp/
Interesting. For me the interesting part of Racket has always been the language itself. What else is there that you like and can use from Rhombus?
The customizable aspect being an open-compiler API that is accessible to a wide audience.
I love parenthetical syntax but I accept that some people don’t like it and find it hard to work with.
I see Rhombus as taking a key innovation in Python - indentation syntax - and giving it an extensibility that is impossible to add to such an established language.
Lisps are great for fast iteration but the syntax is a big problem because it's so sensitive to a single misplaced paren. LLMs like clean syntax with as little noise and unnecessary tokens as possible. They work better with dynamic or inferred types, low verbosity, no repetition like `Foo foo = new Foo();`, clearly delimited blocks, you get the idea. Parts of the language should compose well so the chance that a reasonable edit will cause a syntax error is as low as possible.
Popularity was a big deal with early coding models that couldn't go from specific languages to a wider idea of programming. Modern LLMs can generalize a lot better and use Rhombus or Gleam with no major issues, but they still work better in Python or JS with more training examples.
Basically the things that make a language LLM friendly are the same ones that make it human friendly, at least if your human is an average developer instead of a FP fanatics or enterprise architect.
That's more a problem for humans who have never programmed in a Lisp and are using notepad.exe.
> LLMs like clean syntax with as little noise and unnecessary tokens as possible.Isn't that good news for Lisps?
Much more than other languages are sensitive to misplaced braces/indentation?
Rhombus strikes to me as an interesting language in this ecosystem (which it is!) that not only gives you access to all those capabilities, but shows how powerful Racket can be for building programming languages!
That said I have not yet sat down to try it, but as they seem to be doing quick development with it, I just might have to.
The entire Rhombus repo is all Racket:
https://github.com/search?q=repo%3Aracket%2Frhombus++languag...
It's "cool" and the ecosystem rules, and it's fast enough, I just never really found that I liked writing Racket or using Dr. Racket the same way I like writing Python so I never really reached for it when I was trying to do something. Indeed, from the first time I looked at Python I liked it. That was not the case with Javascript or Java or C or PHP? I don't know, I like Python and really want a practical Lisp that I can really sink my teeth into? So by all accounts I should love Racket. And yet, I don't.
That said, Rhombus looks really nice at first glance. This might be worth a sustained excursion to build something a bit more fun... I'm kind of excited about this!
https://docs.racket-lang.org/rhombus-gui/index.html?fam=Rhom...
Because it builds on the Racket platform you get one of the only cross-platform uniform gui toolkits that works out of the box.
The way I use racket its main competitor is python. It's for when I want to accomplish something with heavy third party deps, and I have zero interest in writing the actual cool code I just need to make some libraries kiss and then use my tool. Not saying that's the case here but maybe racket just doesn't offer you much that python doesn't?
Sounds like you'd get more from just using one of the other lisps you liked, especially if there's a more specialized one that wouldn't be competing with a language you probably would prefer to use anyway. Like eg I have to deal with a lot of lua so I get my lisp rocks off with fennel.
One of the things I've really wanted to get into is writing some DSLs and Racket and Rhombus are supposed to be the tools you're supposed to reach for for that?
I don't know, the god's honest truth is that I don't write nearly as much code as I did 8 months ago lol, so maybe just diving into Racket and Rhombus for personal stuff would be fun and it doesn't have to something for work...
Really, the lisps I've really liked are Guile Scheme (ok not a lisp really but lispy enough and I liked it) and Clojure? But though I liked them I never had enough work in them to get really good. I do like Lispy languages in general though (since Emacs Lisp, which is glorious in it's own way), I just need the excuse to start playing with them more because they're fun.
You know what I've been really intrigued with over the years has been uLisp (which should be pronounced Micro Lisp) for microcontrollers (http://www.ulisp.com/), but a really cool project would be a DSL that spits out C for the STM32 boards I play with periodically for embedded stuff? I don't know, maybe after I get the cabin done... that'd be a really fun adventure and writing a DSL for that would make my life immensely easier...
I was reading through "Let Over Lambda" and kind of out of my depth because while I can mostly figure out what's going on I'm not using CL as a daily driver so the book just references functions and I'm like, "well I guess do-thing-nicely, does the thing nicely? Alright, good enough I suppose."
Maybe I should really give things another go with it. Thanks!
A weird thing: whichever Lisp language I am currently using for work (or a side project) is my favorite.
Building languages was always one of selling points racket tried to push; the "Language-Oriented Programming Language" slogan and all.
But I have to use other languages, like Python, JavaScript, and Swift, for employability and (sometimes) ecosystem/integration reasons.
Rhombus is easy to use and uniquely customizable.
See https://blog.racket-lang.org/2026/08/rhombus-v1.1.html for the release announcement and highlights.
I usually use small local models, and the work to set up very concise skills and efficient tooling is a big part of the fun. I have also adopted the practice of writing my own custom coding harnesses (these can be less than 2000 lines of code, not the huge project you might expect.)
Rhombus looks promising in terms of tooling.
On the other hand: LLMs are susceptible to incorrectly guessing "I think it should work this way".. I'd guess the powerful flexibility of metaprogramming could be more annoying than helpful. But, I'm curious.
Python has remained in the top 5 (often near or at the top) most used programming languages for years. Meaningful whitespace is not stopping people from using it in enough numbers to make it clear that it's a detriment as a language feature.
I'm... not a super fan of rhombus' emphasis on metaprogramming beyond supporting the language itself though.
But it's important to note, at you need editor support for rendindenting blocks easily and correctly.
Qualities or activities that have negative connotations. Guile. Gauche. Larceny. Racket.
I think it started with theorem provers - Planner, Conniver. Then Scheme[r].
https://pkgs.racket-lang.org/?fam=Rhombus
Not that this is a complaint worth airing on HN.
Solution: just block the alias that you use for the submission…
https://pkgs.racket-lang.org/
And has been for a long while.