
The Racket Way - sutro
http://www.infoq.com/presentations/Racket
======
fogus
I put together a (silly) post to highlight some of the features of Racket.
[http://blog.fogus.me/2013/01/21/enfield-a-programming-
langua...](http://blog.fogus.me/2013/01/21/enfield-a-programming-language-
designed-for-pedagogy/) It's worth a look if you want the overview and don't
have time for the video.

------
melling
I've got my little "nights and weekend" project, with the web server part
currently running on Google's app engine (<http://h4labs.com>). I was trying
to use Scala for a while but now it's just HTML/Javascript.

Occasionally, I do get this urge to move to Amazon so I can "play" with
Haskell, Go, Racket, Scala, etc. Has anyone created a "Frankenstein" website
on their side-project site? It would be a great way to learn many of these
"non-mainstream" languages.

~~~
rplacd
Ask pg - I think he's done something with Arc. Seems like _anything_ he'd do'd
be pretty frequently trafficked...

~~~
S4M
AFAIK, HN is done in Arc.

~~~
klibertp
Arc is written in Racket.

~~~
seanmcdirmid
The plt team should push that more in their advertising (though I guess they
don't have an ad budget).

------
Kototama
Nice talk, I like how he is humble but enthusiast.

The records are destructive in the example at the end. Is working with
immutable data structures in Racket as easy as in Clojure?

~~~
righttrousers
I know Matthew personally, and he's like that all the time. Very laid-back,
and also very go-getter. Difficult combination, but he pulls it off well.

Racket's libraries are designed to encourage doing everything with immutable
data, though there are plenty of mutable types if you need them. (And of
course you can always use boxes.) I don't know enough about Clojure to make a
comparison, but I can say that working with immutable data structures in
Racket is easy.

~~~
chongli
One of Clojure's main selling points is that its vectors, maps and sets are
persistent data structures with near-constant time operations (log32N).

[http://www.infoq.com/presentations/Value-Identity-State-
Rich...](http://www.infoq.com/presentations/Value-Identity-State-Rich-Hickey)

------
z3phyr
Off-topic Why racket is not more popular than other lisp dialects?

~~~
S4M
I am also interested to know how it compares to Clojure.

~~~
MatthewPhillips
Because Racket has a run-time it competes directly with Clojure, which is
obviously widely popular. You can bundle the Racket runtime in your binaries
but startup is slow (much slower than Gambit, for example).

So for me at least, it's simple. If I don't care about startup time and just
want the best ecosystem, Clojure is a no brainer. If I do care about startup,
you have to pick one of the Lisps, probably either SBCL or Clozure.

~~~
gcr
Do you mean to pick one of the "Common Lisps"?

~~~
MatthewPhillips
Yes, sorry.

------
nnq
Is my mind wired completely different from the speaker's, or are all his
analogies really _that bad_? I just couldn't bear it after 15 min, my mind
hurt after all the magic wells / documents / princesses / programs - they
pushed my intuitions in the wrong directions and then made me feel like I have
to fight my own thoughts to turn my mind to what he was explaining. He gets to
the idea of Racket as a platform for DSLs in such a convoluted way... _I'm
really sorry for his students, at least if they have my "kind of mind"!_

On the side, I find Rich Hickey's and other Clojure videos very inspiring and
atuned to my "intuitions" (that's how you _sell_ a Lisp!) and same for the
SICP lectures from the 80's with their "processes as spirits inside the
computer" metaphors.

~~~
soegaard
Can you think of a different three level analogy?

~~~
nnq
Well, my first shot while keeping it in the myth and magic realm:

level 0 (the "word processor" or manipulating data with not programmable
tools): you are wizard's apprentice - and you clean your room by using the
tools yourself (as real world brooms and scrubbers are not "programmable" :) )

level 1 (the "programming language" or "programmable tools" or code level):
you are a wizard now (or an apprentice that stole the master's wand or magic
hat, something) and you use your wand to instruct/program the tools to do the
cleaning for you according to your rules/program

level 3 (either meta-programmer or dsl or language for building languages or
the code-as-data level): you are now a master wizard that can control other
people and even other wizards that can in turn control other wizards and so
on... (you have a language for writing languages or, in fact, any language
that can treat code as data because you can now use it to make other
languages)

...if you're looking for some imagery for it, master Walt's cartoon
<http://www.youtube.com/watch?v=jSTWy25hRiI> is pgood inspiration for level 1
(especially if you want to emphasize how "hard" programming is), but you'll
have to look for yourself for level 0 and 3 images

~~~
6cxs2hd6
Does that mean soegaard is a level 3 master wizard -- since he caused you to
make this alternate analogy? ;)

------
puredanger
FYI, Matthew Flatt will be doing at keynote at Clojure/West on Racket in
Portland, March 18-20th. <http://clojurewest.org/schedule>

------
andsotigoes
Also worth a mentioning Racket's ability to go static vs dynamic vs hybrid
typed. An example of Typed Racket: Iteratees <http://goo.gl/9uT4R> Compare and
contract with Haskell and Scala impls of same.

