new web pages

236 views
Skip to first unread message

matt...@ccs.neu.edu

unread,
Jun 11, 2019, 1:10:16 AM6/11/19
to racke...@googlegroups.com

Over the past few weeks, the Racket core team has re-designed the web
site with the goal of expressing the Racket ideas verbally on the front
page. The current design is hosted at
=

  https://s3.amazonaws.com/test.racket-lang.org/www/index.html

Comments welcome on all aspects. — Matthias

William J. Bowman

unread,
Jun 11, 2019, 1:36:54 AM6/11/19
to matt...@ccs.neu.edu, racke...@googlegroups.com
Unfiltered thoughts:
- Much improved (more skimmable, better use of space) than the current version.
- "Strong" is kind of a strange word to describe safety and reasoning features.
Why not "safe"? I don't like that either, but I think it's better. Maybe
"principled"? Bleh.
- "little macros" and "big macros" should be adjacent.
- "general purpose" and "DSLs" should be adjacent.
- The code snippets, e.g. under "little macros", are in too small of a font to
read. Reminds me of talks where they just display tons of code to bamboozle
the audience, which always annoys me.
- why isn't there a publications page? I know a lot of languages have one,
because I sometimes use them when I'm trying to hunt something down.
- When trying to get the #lang examples to display again after clicking a tab
under "the language-oriented programming language" section, my instinct was to
click some of the whitespace off to the side to "deselect" the current tab.
This did not work, and I had to instead click on the section heading.

--
William J. Bowman

On Sat, Jun 08, 2019 at 11:55:26AM -0400, matt...@ccs.neu.edu wrote:
>
> Over the past few weeks, the Racket core team has re-designed the web
> site with the goal of expressing the Racket ideas verbally on the front
> page. The current design is hosted at
> =
>
> https://s3.amazonaws.com/test.racket-lang.org/www/index.html <https://s3.amazonaws.com/test.racket-lang.org/www/index.html>
>
> Comments welcome on all aspects. — Matthias
>
> --
> You received this message because you are subscribed to the Google Groups "Racket Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to racket-dev+...@googlegroups.com.
> To post to this group, send email to racke...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/racket-dev/C77D811D-3C67-4414-89A8-C9DB4B2280E3%40ccs.neu.edu.
> For more options, visit https://groups.google.com/d/optout.

Vishesh Yadav

unread,
Jun 11, 2019, 1:54:29 AM6/11/19
to Matthias Felleisen, racke...@googlegroups.com
Here is my quick feedback. Hope this helps:

- The very first thing I see is news. If I'm a regular Racket user I
would know where to get news from. If I'm a new user, I wouldn't care
about news. Either way, I think it should have a place in homepage but
not at the top.
- There are bunch of words like Mature, Batteries Included,
Extensible, Polished etc... Some of these like batteries included,
extensible, polished wouldn't mean much to a new user as almost every
mainstream language would claim itself to be. Maybe we should sell
ourselves with 3 main defining features. Seems like the motivation was
to link visiters to appropriate documentation, but adding so much just
makes the page a bit dense for target new audience.
- Regarding the second row again, I think that we should not expect
users to click on those tabs to explore. Instead it should be
presented statically, maybe as grid of little boxes. Web pages are
much more pleasant when I could just scroll through it.
- The code snippets in second row (macros, DSL, ...) is too small to read.

I think I may have more opinions on examples.

--Vishesh

Philip McGrath

unread,
Jun 11, 2019, 2:05:07 AM6/11/19
to Matthias Felleisen, Racket Developers
I'm excited! A few initial comments:
  1. Uses of three hyphens ("---") are not being converted to em-dashes ("—") as I assume is expected à la Scribble: e.g. https://github.com/racket/racket-lang-org/blob/36e679e252c2be1f0a5dec91a62db394a6eee806/www/index.html.pm#L313 and https://github.com/racket/racket-lang-org/blob/36e679e252c2be1f0a5dec91a62db394a6eee806/www/index.html.pm#L344
  2. The JavaScript driving a change of "tabs" doesn't use the history APIs (e.g. history.pushState, window.onpopstate), so it doesn't work as (I) expected with browser-based control operators like "back" and "duplicate tab." Of course I know this is more complicated than it sounds … thanks to continuations and the Racket web server for saving me from this whole class of problems!
  3. It wasn't obvious to me that clicking on the heading for a group of tabs would return to the otherwise-inaccessible default tab for the group.
-Philip


Neil Van Dyke

unread,
Jun 11, 2019, 2:18:31 AM6/11/19
to matt...@ccs.neu.edu, racke...@googlegroups.com
I like it, especially the grouping into 3 ideas, the
spartan/utilitarian, and the substantial news right at the top.

Small suggestions, just to consider, not that it needs to be changed...

* I don't know whether there's a good way to fit all three ideas onto
the page at once without scrolling in a typical browser window.  I like
how you've managed to pack a lot of stuff, while having the code samples
as relief and interest, and not being so big that the 3 ideas
organization is lost, and maybe that's better than trying to get all 3
ideas into view without scrolling.

* Some of the code samples could be a little more friendly.  For
example, punctuation can look intimidating (anecdotal data point:
"https://news.ycombinator.com/item?id=19971486").

* People might wonder about the difference between `new frame%`,
`message-box`, and `make-object button%`.   ("Why aren't they `frame`,
`message-box`, and `button`?").

* A Scribble example could be more free text, with only one or two
`@(`.  So it shows more what Scribble is about, and it differs more from
the parens-heavy other samples, while also looking less cryptic.

* Maybe leave out the comments in the code samples (for the Scribble
one, you could mention ability to generate HTML and PDF in the text),
like is already done for the Datalog sample, so programmers will try to
read the code and guess what it does.  Maybe they should think this is
neat, and they're pleasantly surprised they're picking up just by
looking at a sample.

Greg Hendershott

unread,
Jun 11, 2019, 8:19:42 AM6/11/19
to matt...@ccs.neu.edu, racke...@googlegroups.com
Many good ideas here! A couple suggestions:

1. I recommend not assuming screen sizes.

Right-click, choose Inspect Element, and click the little mobile icon.
Try various sizes, from a little mobile phone on up to an iPad. (This
sort of tool is available in Firefox and Chrome.)

The current experience is not good. It should be: Someone might be on a
train or plane, following a link from social media or the orange site.
Sometimes commuting or traveling is their main opportunity to learn
about new things and form first impressions.


2. I recommend not using JavaScript to implement "tabs".

This isn't a "single page web app". It is text and images. It could
simply flow through whatever size screen is available, small, medium, or
large. Let the web browser do its job. (And let the page download
faster, probably get higher search rank, etc.)


TL;DR: The current tabby thing is not helping on small screens; on large
screens it is (in my opinion) a frustrating Advent calendar.



matt...@ccs.neu.edu writes:

> Over the past few weeks, the Racket core team has re-designed the web
> site with the goal of expressing the Racket ideas verbally on the front
> page. The current design is hosted at
> =
>
> https://s3.amazonaws.com/test.racket-lang.org/www/index.html <https://s3.amazonaws.com/test.racket-lang.org/www/index.html>

William G Hatch

unread,
Jun 11, 2019, 12:01:04 PM6/11/19
to matt...@ccs.neu.edu, racke...@googlegroups.com
I think the new website is great!

If I could change one thing, I would edit the first paragraph of the
“Any Syntax” section. Instead of “Real Racket programmers love
parentheses”, maybe something like “Racket programmers usually love
parentheses”, and instead of “is almost as easy as building beautiful
languages”, perhaps “is almost as easy as building parenthesized
languages”.

As it is, when I read that paragraph I get a strong signal that other
syntax is possible, grudgingly, and that it's a second-class choice.
While I (and many of us) think that S-expressions are the best
general-purpose programming notation, I think we tend to agree that
there are times when other notations are preferable (eg. Scribble).
Even if it's largely the status quo now, I don't think we should
advertise that you should either love parentheses or get out.

All in all, though, I think the new content does a great job at
explaining to programmers that Racket is a good and safe choice for
general-purpose programming while also explaining Racket's special
position as a platform for language-oriented programming. I think
that's a big improvement over previous versions.

Jimmy Ruska

unread,
Jun 11, 2019, 12:32:23 PM6/11/19
to Racket Developers
Here are a few other language/software front-pages, that have decent splash pages


Looking for some commonality, first thing a lot of them show is "What is <language>", "What is the use case, trade offs", "What does it look like".
All of them treat it like a sales spec print off, with more community oriented links in a separate community link, or side bar.

I think I like the current racket page more than the proposed.
* The big blue headings look like another header, they are more prominent than the main top page header, which looks weird
* The giant racket logo next to the code looks misplaced, the racket logo is already in the top left.
* There should probably be a description of what language oriented programming is.
* It would be easier on the eyes if the text color was slightly darker blue

Just some opinions from a racket lurker, thanks for the work on the language

Neil Van Dyke

unread,
Jun 11, 2019, 2:00:08 PM6/11/19
to Racket Developers
I deleted my bikeshedding of each of the sites, and want to focus on
Nim's, which seems a good influence to consider, for tweaks to the
current draft Racket page.  Then I have a couple additional general
comments.

> https://nim-lang.org/

Nim's does a good job of being clear there are 3 ideas -- starting with
the top heading (above the blurb that starts to anchor Nim to familiar
terms), and then using those same 3 ideas keywords for what reader might
recognize as 3 subheadings below, maybe without much/any scrolling. 
Though they're trying to fit a lot less stuff than the draft Racket page is.

Notice Nim's 2-column layout with the expansion of 3 ideas on the left,
and the code examples all on the right.  This is responsive/adaptive
layout, so when the window on a small screen or too narrow, all the code
examples get bumped to the bottom of the page, to after the elaboration
of the 3 ideas.

As much as I like Nim's, they also have a bit of a problem of too many
conceptually-overlapping confusing navigation paths in their top nav
bar: Blog, Features, Download, Learn, Documentation, Forum, Donate,
Source.  Elixir's is worse.  Racket does the top nav bar better than
either.  Though Racket also has a similar problem in other regards, and
much worse (e.g., see the documentation index that's impressing with
sheer number of manuals rather than at-a-glance clear path and
organization, or the atrocity page of umpteen different ways to access
the email lists.)

Separate from Nim's, I just clicked on some more of the subtopic buttons
in the draft Racket page, and come of the content behind them is weak or
poor examples, though some is strong, IMHO.  For example, the very first
link, you see if you click on the first button of the first idea
(presumably one of the most important things), is for a package system. 
(A language platform making its own package system has become almost a
joke of compulsive NIH, and maybe a lesser checkoff item, no longer a
top selling point.) Depending how much of these you could cull and
consolidate, maybe you don't need the JS part, and can get by with all
text always visible.

Also, I'm not sure we should say "batteries included".  Racket has a lot
of stuff, but it's ordinary to have to DIY modules that are
off-the-shelf in platforms that were saying "batteries included" before
Racket did.  Racket is batteries-included relative to R5RS, not to
more-popular languages.  We can reach out to Scheme people a different
way (perhaps including R7RS support), but the Web site presumably is
targeting a much larger audience familiar with some of the most popular
languages.

Paul A. Steckler

unread,
Jun 11, 2019, 2:09:04 PM6/11/19
to racke...@googlegroups.com
"With a Vibrant Community" could be just "Vibrant Community".

-- Paul

Sorawee Porncharoenwase

unread,
Jun 12, 2019, 2:03:32 AM6/12/19
to Racket Developers
I gave a feedback for the the current homepage at https://groups.google.com/d/msg/racket-users/6ePaiAnqMtk/_qgGMmi4GQAJ. A lot of them still apply to the new one. In particular:

1. Most people probably don't know what "batteries included" means (yes, even Python programmers).

2. Under "Racket, the Language-Oriented Programming Language", showing the code alone is not going to make audiences appreciate Racket because they probably don't know how to read it. If we want to make them "wow!" for how concise Racket code is to produce the output, we need to show the output as well.

3. It would be cool if the typed Racket example contains a type error, and we show how typed Racket catches the error.

4. It would be nice if the Scribble example is mainly proses. Otherwise, users could (for example) assume that this is yet another Racket program will a nice string literal syntax. 

Here're additional comments:

1. For "Little Macros", can we have a different example? It takes me more than a minute to figure out what's going on in that example, even though I think I know macros and Racket syntax at some level. People who are new to Racket are going to just skip that example with confusion.

2. For "General Purpose", again, users want to see an output. A GUI window (like the "Big Macros" example) would suffice.

3. Can we make the headers ("Racket, the Language-Oriented Programming Language", "Racket, the Ecosystem") change color on hovering to indicate that it can be clicked?

Sorawee Porncharoenwase

unread,
Jun 12, 2019, 3:24:26 AM6/12/19
to Racket Developers
I also really like Pyret's "Our language vs Mainstream Languages" (Highlights vs. Existing Languages). For Racket, the advantage is twofold: it shows how Racket is superior, and it teaches readers how to translate other languages into Racket. The disadvantage is that... it might look too aggressive.

Matthias Felleisen

unread,
Jun 21, 2019, 6:15:49 PM6/21/19
to Racket Developers


Many thanks to all the people who sent feedback to the proposed new web site.

While, as you could see for yourself, the opinions are somewhat diverging on many aspects, the exercise was extremely helpful. We will assess the various ideas and see what can and cannot be implemented. If your idea doesn’t make it, rest assured that it has influenced our thinking and your effort of writing it down was worth it.

— Matthias

Matthias Felleisen

unread,
Aug 17, 2020, 8:45:27 AM8/17/20
to Racket Developers
Hi everyone, 

as you can see from the date of the quoted email, it has been a while since we discussed the revision of our front page. And it is time to return to this topic. The revised design is located here: 


While some the feedback was contradictory, a lot of it was helpful and found its way into the design in one way or another. Of course, that does not mean everybody will be happy but the people who have spent a lot of time on this effort are. 

We would appreciate the following: 

— test-drive the web site on your laptop browser to discover typos, grammatical mistakes, bad images etc. 
— also visit the page on your phones and see whether the phone layout works for yours. 

Report problems/comments/suggestions to me so that the list doesn’t get flooded. 

IF and that would be WONDERFUL, you have knowledge on how to improve the CSS to fix a problem, create a pull request at 

   which is the relevant branch of the source of the Racket Lang Org web site. 

We will go public in a week from today. 

Thank you all for all your inputs again and we’re looking forward to your final comments. 

— Matthias

Sorawee Porncharoenwase

unread,
Aug 17, 2020, 9:25:46 AM8/17/20
to Matthias Felleisen, Racket Developers
For "Contributing", would it make more sense to link to the official guide (https://docs.racket-lang.org/racket-build-guide/contribute.html) rather than the blog post (https://blog.racket-lang.org/2017/09/tutorial-contributing-to-racket.html)? 

- The blog post is a little bit outdated on the "Hints for finding documentation" section (we now have a good way to locate where the doc is, thanks to Sam). 
- The blog post is probably never going to be updated, but the official guide can be updated.

--
You received this message because you are subscribed to the Google Groups "Racket Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to racket-dev+...@googlegroups.com.

Sorawee Porncharoenwase

unread,
Aug 17, 2020, 11:36:32 AM8/17/20
to Stephen De Gabrielle, Racket Developers

I think you meant to reply all?

The feedback from that blog post is always good.

Which feedback?


On Mon, Aug 17, 2020 at 8:13 AM Stephen De Gabrielle <spdega...@gmail.com> wrote:
The feedback from that blog post is always good.
Noting that it has two predecessors I truly believe it should become the chapter 0 of https://docs.racket-lang.org/racket-build-guide/index.html

Did I say I love the new design?

Stephen 


Stephen De Gabrielle

unread,
Aug 17, 2020, 6:30:44 PM8/17/20
to Sorawee Porncharoenwase, Racket Developers
On Mon, 17 Aug 2020 at 16:36, Sorawee Porncharoenwase <sorawe...@gmail.com> wrote:

I think you meant to reply all?



Oops - yes 🤪



The feedback from that blog post is always good.





Which feedback?


I seem to recall people finding that blog post useful when it is pointed out to them. I currently have it in a pinned tab in the browser.

S.
--
----

Laurent

unread,
Aug 18, 2020, 9:04:52 AM8/18/20
to Racket Developers
I too love the new design. Good job!

Just a few comments if I may—others may disagree with them, so do what you want with them:
- In Mature, I would mention the excellent documentation, and maybe the neat module system, rather than standalone binaries. 
- In the first section, 6 items rather than 4 would be okay with me.
- A little more syntax coloration would look nicer. Datalog is given no coloration for example, which makes it look like a second-class citizen.
- [French . "Allô le monde"]  --> [French . "Bonjour le monde"]
("Allo" is used exclusively as a greeting on the phone in fr-fr)
- Although I see the intent behind having:
my-hello-world
(printf "~a\n" my-hello-world)
(message-box "" my-hello-world)
I would recommend only the latter, so as to look as simple as possible
- Some 'cool' features that I think should be on the front page:
  - powerful and extensible 'for' loops (on a personal note, it's the ability to define your own loops that brought me back to Scheme a while ago)
  - plotting and drawing libraries
- "no make files required" --> "no makefiles required" I suppose
- The picture big-macros-class.png isn't displayed in its original proportions, which doesn't look good. The same goes for lang-video.png.
- The "Vibrant community" is a little redundant with the "Community" one, two sections below.
- The "Polished" subsection is a little redundant with the "IDE support" subsection. "Polished" isn't very telling either. (Not sure what to recommend though.)
- I would remove "(neé DrScheme)", but if you keep it, it should be "née".
- "Racket programmers usually love parentheses, but they have empathy for those few who need commas and braces." :-D
  "They have empathy for those few" maybe can sound a little condescending for some people rather than funny? What about "but they understand those who feel better with"
- I'm a little torn on whether the texts in the second section are too verbose or not. I would have imagined a style closer to slides, such as bullets lists with emphasis on some words. Maybe not.
- I miss the 7-liner programs :)
- I would prefer if (define cim current-inexact-milliseconds) was declared before its first use. I find it a little confusing otherwise.
- What about using `define-simple-macro` instead of `define-syntax` + `syntax-parse` for the sake of simplicity?



Laurent

unread,
Aug 18, 2020, 9:13:32 AM8/18/20
to Racket Developers
> Report problems/comments/suggestions to me so that the list doesn’t get flooded.

Oops...
Reply all
Reply to author
Forward
0 new messages