Also the "Books" section is kind of misleading and made me think they're taking credit for something that they didn't do. After taking a look at the page for a while finally realized it's like scheme/lisp, and the books section kind of makes sense, but still it's still very confusing.
This may be too harsh but the design almost reminds me of those parking websites that make money off of adsense. Hope they put some more effort into the design so the website can actually do the language more justice.
- The line drawings make it look like this is a charting library. Perhaps they have some mysterious symbolism, but to me it looks like the brief here was "differentiate these six main headings with... something". The "something" they ended up with is pretty devoid of value.
- Obviously, as others have said, the tagline does little to explain what Racket is. (cf. Rust's web site, which does a great job with this, even though it's incredibly minimal and has almost no design.)
- The code samples are low-contrast until clicked, and not really all that engaging even when clicked.
- The various links in the page go to all kinds of different sites, some under racket-lang.org and many not. The ones that are under racket-lang.org (with the exception of the blog) look absolutely nothing like racket-lang.org itself, and even have a different logo!
This design IS a huge improvement from what they used to have. Giving short code snippets along with explanations and links with proper organization (remember, I'm looking at it on a phone) per category. But most importantly, it loaded fast and everything I looked at worked. Something that doesn't happen with a lot of 'better' designed websites featured on HN.
(It's also really annoying on mobile where you have to actively tap to show the links.)
EDIT: Reasoning: Does this page contain the information I need? I can't tell without apparently hovering over everything. (Plus, if I hover away from one of the 'graphs' it's easy to forget what was on there.)
That basically sums up my problem learning Racket. "What is Racket the language? What language am I supposed to learn? What language am I supposed to use in production code? Will one language be compatible with another?
I got lost reading Racket document. One section talk about a class syntax of a language. Another talk about some other stuff that never utilize a class. What am I supposed to do with this?
I don't want to learn languages, I want to solve my problem.
The more languages you learn, the more problems become trivial. Well, if you're just doing imperative languages, you're not liable to learn much new stuff, but... learn O'Caml[1] and Haskell and you'll be all the richer (and more worried!) for it.
One particular aspect of Racket that is truly amazing is the modularized language support for macros. One would generally insert a caveat here, but I do think they are actually "best in breed" at the moment -- even going so far as: http://www.ccs.neu.edu/home/stchang/popl2017/
EDIT: Just wanted to add, because I'm a "state your effects" weenie: http://lambda-the-ultimate.org/node/5401
[1] Mostly because Functors. (No, not the Category Theory Functors.)
I think the idea is that there is one good approach to solve a given problem (eg: use class to do the GUI code, use match to traverse some xml, use thread for async io instead of an event loop approach).
I just read the same sentence about Forth. There's almost no language, the principles are exposed, you make them what you need instead of pushing information flow into ad-hoc data structures as many people do in other languages (IMHO).
Maybe it's too alienating unless you've spent a few years on these languages.
I agree there is a problem with 'Racket'.
'Racket' can mean an ecosystem distributed with batteries included. It can mean the language referred to by #lang racket at the top of a source file. And 'Racket' can mean any one of several other languages shipped in the distribution.
Racket the language (aka #lang racket) is a useful general purpose programming language. When #lang racket programs address complex problems they tend to become more complex. When #lang racket programs implement sophisticated procedures, they tend to become more sophisticated. Python, Ruby, C, etc. are similar in that respect. The Racket documentation reflects this. There are parts that are simple and self contained. There are parts that are at the edge of programming language design. And they're all in one place.
Felleisen and and his group have been working on Racket for a long time, and it shows. I think PG's Arc even runs on top of it.
Only gripe I can register is that they have gone full-speed-ahead on the DSL/metaprogramming aspect which kind of works against the language. See Tarver's "The Bipolar Lisp Programmer," or Alan Kay's quote: "Lisp isn't a language, it's a building material."
That so? Then what's the actual use-case for Arc again? It's a Lisp, Racket is a Lisp, hence a Lisp running on another Lisp? "Lisps all the way up"? ---well that's not unconsistent with the target audience I'm sure ;)
I mean if anyone really was actually making any kind of case for Arc, they'd probably start with organizing it and promoting it in ways that would facilitate its inclusion as just another language in the batteries included distributions of Racket.
From what I saw, it looks like a site that helps you make a variety of line drawings. Next time I need to make some line graphs, I'll check it out.
To the creator of this site:
Take into consideration the commonality between all of these:
Each of these language homepages clearly explains that they are introducing a programming language. This new racket-lang.org page doesn't. It has a huge impact on what users will think when they load the page.
The PLT Scheme homepage is leagues better than the new Racket one because it tells me exactly what it is for. Don't let yourselves go backwards.
IMHO it looks nice and modern, and quite readable thanks to the great typography, but there are some fair issues raised here. So I opened an issue to let them know about it [1].
The other issue is all the links lead to pages with really old design. Hope this will get fixed too eventually.
https://redex.racket-lang.org/
I am trying to read the model part of the set of scopes paper and running it in PLT Redex, but it seems to be unavailable currently.