I'm coming from Go, so apologies in advance if these questions seem a little weird:
How do I distribute my Rhombus programs? Can I cross compile to other architectures/OSs, ideally with a static binary?
What about libraries? Is there a good package manager? I presume from the post that the library ecosystem is pretty immature (maybe the Racket ecosystem is larger). Can I easily build a CRUD web app?
Is concurrency easy to make correct? Are tests easy to write? Tests involving concurrency? Race detection?
Dev experience: is it statically typed? I couldn't really tell from a quick search. Will the build system make a fast feedback loop for me and LLMs? Is it IDE friendly (auto complete, find all references, etc)? Is there language server support so I can bring my own editor? Will the macros mean I have to learn a bunch of DSLs to use anyone's library? Do the DSLs have IDE support?
Wow that's a lot of questions ;) It looks like a fun language in any case. And the fact that its even possible to make a Pythonic language on top of a LISP is its own showcase for Racket's power
> How do I distribute my Rhombus programs? Can I cross compile to other architectures/OSs, ideally with a static binary?
You can compile them inside DrRacket and distribute the .exe or equivalent. I used that a few times to send programs written in Racket to coworkers that are not programmers (remember to add an icon so it looks professional).
You can use the command line too, and it support cross compiling, but I never used it https://docs.racket-lang.org/raco-cross/index.html
> What about libraries? Is there a good package manager? I presume from the post that the library ecosystem is pretty immature (maybe the Racket ecosystem is larger).
Some libraries have been ported to make them more idiomatic, in particular changing the name of the functions and fixing the different meaning of "list". Anyway, you can import any library of Racket from Rhombus and vice versa https://docs.racket-lang.org/rhombus-guide/Modules.html
> Can I easily build a CRUD web app?
Sorry, I never tried.
> Dev experience: is it statically typed? I couldn't really tell from a quick search.
It's optional. You can add statically types when you want and the code will be more efficient and get compile time errors. Or avoid them and get run time error.
> Will the build system make a fast feedback loop for me and LLMs?
Sorry, I never tried.
> Is it IDE friendly (auto complete, find all references, etc)? Is there language server support so I can bring my own editor?
auto complete: no (I think)
find all references: yes
> Will the macros mean I have to learn a bunch of DSLs to use anyone's library? Do the DSLs have IDE support?
Most macros try to blend with the language and be invisible, but it's possible to write weird and bad macros too. Most libraries should not define weird macros.
Anyway, some internal parts of Racket like `for` or `match` are implemented in Racket and are like two complete DSLs on their own.
Thank you! I appreciate your taking the time to reply