[racket] Processing and Racket

From: Eli Barzilay (eli at barzilay.org)
Date: Sun Jun 2 00:15:14 EDT 2013

7 hours ago, Sean McBeth wrote:
> I had some thoughts today about Racket and apparent influences it
> has had on Processing (and by extension Arduino). I'd be interested
> to hear what the Racket community itself thinks of Processing and
> the sorts of things people do with it, in comparison to Racket.
> 
> http://moron4hire.tumblr.com/post/51904590190/processing-and-racket

Some random comments (keeping Matthias's comments in mind, so I try to
not repeat them):

* When you talk about the visual design of the web pages, there are
  actually two different things that play together here, and they are
  also coming from very different pieces of code.  (Yes, this whole
  point is pretty much a technicality, but it's rare to find people
  who pay a lot of attention to it...)

  The first is the actual *web* pages which are built in a more or
  less traditional way that spits out HTML directly.  Here there were
  some suggestions to improve the contents a few times, but nobody
  made a more serious attempt, yet.  But really, the main point is
  that anything can be done, provided it fulfills the basic
  requirements of being useful enough, clear enough, appealing enough,
  informative enough, and get most people to want to switch to it.
  (And BTW, *many* completely tiny aspects of the web page have been
  thoroughly discussed...)

  The second system is the documentation -- which is what you see in
  the example in your snapshot.  The thing here is that you want some
  way to render documentation so it can fit in both HTML and PDF and
  whatever else -- which makes the kind of rendering much more
  restricted.  There's not much that can be done at the rendering
  level without substantial effort, but probably some improvements can
  be done at the CSS level.  As a side-note, the actual contents that
  you see on the web is a weird combination of the two: taking the
  usual web page templates and slapping it on the documentation pages
  (which originally look like the locally-installed documentation that
  you see in your Racket installation).

* "Make more dynamic examples for beginners".

  IMO, this is not a good title for what you seem to be saying...
  It's not the dynamism, or the beginner-ism that is important in what
  you're saying.  If it was, then I think that we have a ton of them,
  and more are being made every day...  (See for example the
  rosettacode thing (http://rosettacode.org/wiki/Category:Racket)
  which is becoming a nice repository for lots of such examples, at
  varying levels.)

  Instead, I think that your main point is about the presentation of
  the examples -- the Processing page that you point to is very
  obviously visual.  It's actually visual enough to make me suspect
  that it's covering a shallow language since it tries so hard to make
  cute examples instead of focusing on contents.  Given that the
  visual appeal is so important for you, I think that the "Quick"
  tutorial was probably something that looks misguided: it uses
  visuals as a way to introduce the language, but the visuals
  themselves are just demonstrations of things you can do with a
  language, and not a goal in their own appeal-ability.

  But I don't think that there's any reason to choose either this
  approach or that approach.  If the Processing thing works well for
  visual people, then it's most definitely worth trying.  And it seems
  like an itch that suits you well, so you could just as well start
  doing that kind of a page and see how it works.  We can figure out
  later a way to link it into the rest of the pages to make it stand
  out: I think that there's certainly a place for more "quick try it
  out" resources that we can point to in the "getting started" page,
  and this would fit nicely with other such entry points.

* Even more specifically, I think that it's wrong to compare Racket's
  package page (both the new one and the planet one) to the Processing
  "exhibition" page: the package pages that we have are mostly about
  libraries that you can use to make stuff up, so it's not like an
  exhibition page that demonstrates full applications -- ones that can
  be used not only as temptation points, but as templates for people
  to just take the source and try to tweak things and play with an
  existing thing rather than go build something up from scratch.

  But again, this is not to avoid your implicit criticism: I just take
  it as a call for making up such an exhibition page.  BTW, I don't
  think that this must be something that is inherently tied up to
  things that are purely visual -- the same approach can be taken with
  more CS-ish contents.  For example, I think that Danny's brainfuck
  tutorial and Matthew's scratchy toy are good candidates for such a
  thing, even when neither of them is particularly graphic.

* Finally, I notice that in the HN thread that you made someone
  pointed to this thing: http://www.texample.net/tikz/examples/all/
  and I really think that something like that would be very nice to
  have.  I think that it falls somewhere between the "real
  documentation" and an "exhibition" pages -- more like a collection
  of impressive examples and a way to quickly play with them, even
  when the visual and instant feedback are probably not helping the CS
  aspect of learning a language...

-- 
          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
                    http://barzilay.org/                   Maze is Life!

Posted on the users mailing list.