

Racket v5.3 - shawndumas
http://blog.racket-lang.org/2012/08/racket-v53.html

======
SeoxyS
I've started writing Clojure code for production at Chartboost, and I'm
absolutely loving the language. However, its basis on the JVM is a major
downer. I decided to go with it over other lisps due to the practicality of
the massive standard library, plus some neat language features.

How does Racket compare?

\- Specifically, is the standard library + the stuff available through the
PlaneT package manager enough to get by with? How's the community? IRC
channel, documentations, etc.?

\- How does the language compare when it comes to Clojure's neat features?
Atoms, keywords, native syntax for vectors or hashes…

Edit: I also forgot to ask: how's performance? It's a compiled language,
right?

~~~
prospero
What about the JVM is such a downer?

~~~
sigzero
Nothing really. I think it is just a preference thing. If I don't have to
install Java then that is one less thing to install I guess.

~~~
autodidakto
Even though OSX Mountain Lion makes it simple to install Java (click yes on
first use), it's one less OS that comes with it preinstalled.

Also, the slower startup time of the JVM affects clojure apps and makes simple
command line scripts in clojure less attractive

~~~
ruggeri
This is not exactly true. The JVM startup time is not what makes Clojure slow
to load; it's the startup of Clojure itself.

    
    
        ~$ time clj test.clj 
        Hello world!
        
        real    0m1.337s
        user    0m1.309s
        sys     0m0.172s
    
    
        ~$ time java Test
        Hello world!
        real    0m0.142s
        user    0m0.116s
        sys     0m0.030s
    

You may want to look at the -XX:+TieredCompilation -Xbootclasspath flags. They
reduced the clojure startup significantly for me.

------
leoh
I really love Racket/Lisp. But I wish I had more of a use for it. Probably the
most beautiful language I used during my undergraduate days.

~~~
mej10
Have you looked at Clojure?

------
thepumpkin1979
JOOC, what big companies are using racket-lang? This is the first time I heard
of it.

~~~
jparishy
Not a big company, but Northeastern University's CS department uses it in
their intro course to computer programming. The staff there is all about PL
research and I believe they use it pretty extensively in that regard.

I spent a semester there and the staff are hardcore into it. I learnt a lot
from Olin Shivers (<http://www.ccs.neu.edu/home/shivers/>) and he used Racket
extensively.

~~~
colanderman
That's largely due to the presence of Matthias Felleisen, who (AFAIK)
spearheaded Racket.

------
Derbasti
I'm confused: Is racket a fully-compliant scheme? If not, which scheme should
I use? And, what is racket?

I could not quite find that information on the Wikipedia/website.

~~~
soegaard
Scheme is so old that there is not one language but rather a family of
dialects that are considered Schemes. The Scheme community has several times
made a standard on the parts of the language(s) that various implementors can
agree on. The standard is small though. All the major Scheme implementations
come with _many_ language constructs and libraries not covered by the
standard.

Racket started as a Scheme but changed name to Racket a few years ago to
signal that the racket language is _much_ more than plain standard Scheme. One
remarkable thing about Racket is the that the module system allows
implementing other languages as modules with relative ease. Included in the
Racket distribution is therefore an implementation of R6RS (and R5RS) the most
recent standard (R7RS is coming soon).

Also included is implementation is a typed version of Racket, an
implementation of a logic programming language and, yes your eyes are not
deceiving you, Algol 60.

------
makmanalp
The futures visualizer sounds awesome! Do other languages have parallel-
debugging tools like that?

~~~
Evbn
GHC has ThreadScope.

------
mgallivan
How do you integrate Racket with emacs? Is it similar to Clojure?

~~~
soegaard
Most(?) people use DrRacket.

For the Emacs fans: <http://docs.racket-lang.org/guide/Emacs.html?q=emacs>

I used to use Emacs, but switched to DrRacket several years ago. It is easy to
underestimate DrRacket. Tools like Check Syntax which allows scope respecting
renaming of identifiers are one of the benefits of using DrRacket.

I also enjoy being see graphical results directly in the REPL. For example
plots. <http://docs.racket-lang.org/plot/intro.html?q=plot>

~~~
Mon_Ouie
I always have mitigated feelings about these tools. On the one hand, those
features are really appealing. On the other hand, leaving my regular editor
prevents me from using its (sometimes heavily configured) text- and code-
editing capabilities. Plus I can access all the code I've written for other
projects from Emacs, regardless of the language.

~~~
mgallivan
That's my concern as well and the reason I went through a bit off an ordeal
getting Clojure into emacs, as opposed to falling back on a Clojure editor.

------
sigzero
I can see "submodules" being a handy feature.

------
jlgreco
Good to see the json library is in there now. That being missing was a minor
annoyance earlier.

------
i_s
Does racket have real threading? Will it use multiple cores?

~~~
takikawa
There are two features that take advantage of hardware parallelism: futures &
places, which work at different granularities. You can find the guide entry on
them here: [http://docs.racket-
lang.org/guide/performance.html#(part._ef...](http://docs.racket-
lang.org/guide/performance.html#\(part._effective-futures\))

There are also green threads for concurrency: <http://docs.racket-
lang.org/reference/concurrency.html>

------
mike_ivanov
Does it work on ARM?

~~~
takikawa
Yes, it does. The JIT compiler doesn't work on ARM, but otherwise it's fine.
This blog post explains how one person got Racket on an Android phone w/ARM:
<http://www.wedesoft.de/racket-on-android.html>

~~~
mike_ivanov
Thank you!

