5 ms·
Is Racket good for learning Lisp/Scheme or is it better to start with something else?
by gexla 13y ago
Is Racket good for learning Lisp/Scheme or is it better to start with something else?
- groovy2shoes 13y agoI learned with Racket, and I found it to be a great experience. It comes with an IDE, DrRacket, that makes it very comfortable to start experimenting. It's also "batteries-included", with libraries for GUI, graphics, networking, etc. It also comes with really good documentation (at least as good as Python's, I'd say, and better than either Perl's or Ruby's). Racket has a good foothold in educational environments, so it's no coincidence that it's conducive to learning. However, Racket also sees a lot of usage in the PL research space, so it's also conducive to just experimenting. Those two combined can make it a very fun environment. There's also #racket on freenode, which I've found rather welcoming.
- jonnybgood 13y agoAbsolutely. However, if you want to learn modern concepts and/or their implementation in a lisp, I would say Clojure is a better bet.
- 6cxs2hd6 13y agoI don't really agree with that. Although Clojure has many great things, for example its out-of-box immutable data structures, I wouldn't say that it's "more modern" than Racket. If anything, lately Clojure has been drawing on Racket for inspiration in many areas (for example Typed Racket). In fact, if you wanted to find a criticism of Racket, it might be that occasionally it is "too" modern -- in the sense that some parts are implementations of research papers. You might encounter the occasional module whose documentation isn't much more than "Implements foobars in the sense of Researcher [Year] <link to paywall paper>". To be clear, that is not 98% of Racket. I mention it just to counter the idea that Racket is "less modern". It's constantly evolving with new things. Finally, for someone getting started with a lisp, Racket is (a) download, (b) install, (c) start coding and running -- within literally 5 minutes. (Of course experienced people aren't limited to DrRacket if they prefer Emacs or Vim or whatever.)
- wes-exp 13y agoThe whole notion of a "modern" programming language is a big joke considering that mainstream languages have been playing catch-up to Lisp for decades.
- brudgers 13y agoIf you are interested in learning a LISP, then Racket makes a lot of sense. It is actively being developed and extended and because of its roots in academia extensions tend to be address interesting problems- many arise out of computer science research by professors and grad students. On the other hand, if you want to learn Scheme by working through SICP, then I would recommend MIT Scheme to avoid impedance. There's not much benefit from using the Racket ecosystem for that. Likewise, if the goal is to work through On LISP then a common Lisp implementation makes sense. Of course there's no reason not to have all those languages installed..or at least that's what I tell myself. My last advice is that Racket is an ecosystem. It provides many languages including Algol and Datalog and Scribble and Typed Racket. This makes for a lot of documentation and it is uneven. The guide will be too shallow and the reference will be more boilerplate rather than providing deeper explanation and further examples.
- kenferry 13y agoI've been working through SICP, and as far as I can tell Dr. Racket is actually the best way to do that. You just need to use Neil Van Dyke's SICP package for Racket. http://www.neilvandyke.org/racket-sicp/ http://www.neilvandyke.org/racket-sicp/
- 616c 13y agoHats off to you, sir, you beat me to it.
- 616c 13y agoFYI, brudgers makes good points, but the beauty of Racket is they have subsets and supersets of languages, from an Algol implementation to a specialized language built for studying SICP. Neil van Dyke and some other Racketeers built it. I think it might be in need of a maintainer, but here it is nonetheless. http://www.neilvandyke.org/racket-sicp/ http://www.neilvandyke.org/racket-sicp/ Also keep in mind there is a different subset language designed by one of the developer/professors for his own book based upon his improvements to the SICP methodology, entitled How to Design Programs, as explained in his paper. http://www.ccs.neu.edu/racket/pubs/fdpe2002-fffk.pdf http://www.ccs.neu.edu/racket/pubs/fdpe2002-fffk.pdf The second edition is available as HTML pages amongst the URLS below. http://docs.racket-lang.org/teachpack/2htdpuniverse.html http://docs.racket-lang.org/teachpack/2htdpuniverse.html http://www.ccs.neu.edu/home/matthias/HtDP2e/ http://www.ccs.neu.edu/home/matthias/HtDP2e/
- pavelludiq 13y agoAll the major lisp dialects are rather different and encourage different styles. My own opinion is that no one is a better first lisp, as long as you check out the others eventually. Racket is an excellent start. I always advise people interested in lisp to check out racket, clojure and Common Lisp in whatever order they wish. I started with scheme in 2008, moved to clojure in 2009 and I've been a happy Common lisper since 2010/11. Depending on your own style as a programmer you might choose a different main dialect you like best, but only after you try them all :) Happy Lisping!