[racket] Getting started with R6RS

From: Parnell Springmeyer (ixmatus at gmail.com)
Date: Sun May 15 19:56:00 EDT 2011

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I'll chime in here as a "semi-noob".

The more I've learned Scheme and the more I've learned Racket (mix of
the Schemer books, HTDP, personal projects, racket-lang docs) the more
I'm seeing this specific issue as a cultural "thing" that has evolved
- From the nature of the language itself.

The data-as-program and program-as-data thing is so central to the
language that I'm seeing it cropping up in the noob's first interface
with the language (through no specific aspect, it's sort of "everywhere"
which is what Elliot's posts feel like; it feels like hes
confusion/problems are really broad and non-specific).

You see, the docs are excellent (IMHO) - even though it took me a while
to figure out what I *should* be reading. I don't think the issue is in
the documentation. I also agree with Eli that DrRacket is rarely ever
mentioned in the actual docs, that is a trivial issue.

I think Elliot's contention with DrRacket has more to do with the fact
that he doesn't want to fire up DrRacket to try something, he expects
something more like typing in "python" at the terminal &c... (even
though Python has its own analog to DrRacket with IDLE, which I also
think, just like DrRakcet, is really great). Again, I don't think this
point of contention needs to be fixed. What I do think needs to be
emphasized for people *not* coming from the HTDP side is /why/ DrRacket
is beneficial to start learning the language with.

It wasn't until a StackOverflow answer you gave me Eli, in which you
(literally) told me how to start the stepper (which involved changing
languages to one of the restricted student languages) to *see* how the
program executed a function that used call/cc that I "grokked" the
wonderful took that DrRacket is for a beginner.

^that, is something that could be expanded upon I beleive - (I will
expand upon this as a suggestion below).

The larger issue (back to my original point) is the fact that the
environment/language is so flexible that even the entry point into it is
"flexible". Noobs really hate flexibility, they get paralyzed by
choice.

Now that I "get" Racket I feel like it could have an /even more/
concrete entry point. Something like HTDP but much shorter (HTDP is
amazing, but far too long for the weekend dabbler)!

Elliot pointing out the Learn You A Haskell website and the Learn You
Some Erlang website was probably the most helpful part of this entire
email - the docs are great. DrRacket is great. The website design of the
docs are intuitive and focus the attention just right (I really do thing
this). But Racket severly lacks something like LYAH/LYSE - or a "reduced
and fun HTDP".

The Little Schemer books are a great example, maybe those can be used as
a template - instead of making them Scheme specific you can use it as an
entertaining resource for both /entering/ the Racket environment and
learning the Scheme language.

Also, instead of scaring n00bs with "car" and "cdr" - introduce the
language (exactly as HTDP does it!) with "first" and "last", and a
simple "note taking" web application (the blog web application tutorial
is way too scary for noobs), everyone is into web apps these days - it's
a concrete entry point.

Just my thoughts. I love Scheme and I love Racket - so much of what
Elliot is complaining about is both a lack of a quick and concrete entry
point as well as a lack of  acculturation on his part (Scheme/Racket
just *takes time* - can't really get around that).

Eli Barzilay <eli at barzilay.org> writes:

> Four hours ago, Sam Tobin-Hochstadt wrote:
>> 
>> This is a problem that I've seen repeatedly in trying to help
>> programmers in other languages get started in Racket.  Lots of
>> people want to know "how it all works" right when they start.
>> Whether this is helpful or not, everyone has some definition of
>> "all" for these purposes.  Usually it includes the language and
>> libraries, but not the compiler or processor.  Unfortunately, in
>> Racket it's just the case that more of the complexity is "above the
>> line" in some sense, and thus people want an explanation of how it
>> works.
>> 
>> I don't know what to do about this, but it's something I've run into
>> many times.
>
> (My best idea for these is to keep asking how they get confused, and
> hopefully some central page will emerge as a good point to explain it
> better.)

- -- 
Parnell "ixmatus" Springmeyer (http://ixmat.us)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
Comment: GPGTools - http://gpgtools.org

iQEcBAEBAgAGBQJN0GgQAAoJEPvtlbpI1POLC4cH/1zFSptqb1pT8h8T+Tiu/7J0
6ETSu3Sxp6nYG7OR9nDF0rB+VrE/KNTFelk3SNZpc5vkmOBQdtYW+pmfCyvhvGEL
4mDGCMTGFAQCNFCRKOmXtU8IhbV5Rjdt+7Q6a4v/Zl7mihNNZ6Tyn4jFoMp6OH3N
/x2OAnc04WR6sPtuhGbJ/PEoceNhjmsLKUBBCD5iBRn6xRpcs5w8gw2sGpPYTWcj
kAIOy4g9+26yOdns5KXJPp/LwBXWiSw5M/sSL1vF+W0fIqjE2MDt+ZL011Fj57Ht
zhBNuUnuKFRPCoMcJwRq+o/Fc8KoBK+lIE6sUdZfLHuek9yUERfYnh9PG0bUpXo=
=972u
-----END PGP SIGNATURE-----



Posted on the users mailing list.