[plt-dev] Racket web page

From: Guillaume Marceau (gmarceau at gmail.com)
Date: Fri May 21 12:49:29 EDT 2010

> - First, I like it!  Especially the slideshow.


A few thoughts.

== About about text:

-- When pressing "?" next to the slideshow, I expected to see a
description of what the program does, 3 or 4 sentences on how it does
it, and a screenshot of the result.

-- "Racket is a full-featured programming environment that gives you
unprecedented control over the programming language." is too short and
too vague for a sale pitch. I would add a "[learn more]" link that
leads to a longer sales-pitch essay that describe the idea of the
language and why someone might want to use it. All other links in the
page could land in different parts of that essay, instead of going
strait to the documentation.

-- "Racket's interactive mode encourages experimentation, but quick
scripts easily compose into larger systems." Awkward phrasing around
"but quick". Can we mention the language features that makes the
"composition into larger systems" possible?

-- on help.html: "(also located in your local copy of the
documentation) " Say how to find it.

-- "Try going through How to Design Programs." The book could afford a
little sale pitch here.

== About the slideshow:

-- Should the slideshow advanced on its own every 10 seconds, with a
pause button, or would that be too annoying? I'm thinking of a slow
fade-out/fide-in effect.

-- In the example "Find Racket sources in all subdirs" I don't like
how the use of in-directory has no indication that it is recursive.
Can we change in-directory to take a keyword argument?:
    (in-directory #:recursive? true). Also, shouldn't p be a path?

-- " ;; Print the 1000th Fibonacci number: (print (list-ref fibs 1000))"
  How about we showcase pretty-print and strictness, like this:
   " ;; Print the first 1000 Fibonacci numbers: (pretty-print (!!
(take 1000 fibs)))

  Though we should probably fix the documentation bug before we do
this: TAKE in lazy has its argument backward than the normal TAKE, and
the documentation doesn't mention it.

-- Here is a slideshow submission to showcase functional hash tables:

(define (all-total-maps n)
  (if (= n 0)
      (list #hash())
      (for*/list ([map (all-total-maps (sub1 n))]
                  [i (in-range 1 (add1 n))])
        ;; set n to i, and i to n
        (hash-set (hash-set map n i) i n))))

== About the graphic design:

-- If the About/Download/Documentation links were taller, they would
be easier to click.

-- The center of rotation the parentheses on the left "(((" is
slightly lower than the center of the PLT logo. It looks off.

== Some minor edits:

-- "or by pressing F1 with the cursor on a search term" change to "or
press F1 with the cursor on a search term"

-- "Start quickly" sound like a language features "We're not Java, our
programming language starts quickly!" Perhaps remove that header
altogether and reclaim the space. The slideshow is sufficiently
self-explanatory anyhow.

-- "want to know more about programming language applications or model
" should read "want to know more about programming language theory and

-- on help.html: "available from the DrRacket menu" missing "DrRacket help menu"

Posted on the dev mailing list.