6 ms·
The Racket Way
- melling 14y agoI've got my little "nights and weekend" project, with the web server part currently running on Google's app engine (http://h4labs.com 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.
- brooksbp 14y agoI run my personal website on Racket. The documentation is great: http://docs.racket-lang.org/web-server/index.html http://docs.racket-lang.org/web-server/index.html
- rplacd 14y agoAsk pg - I think he's done something with Arc. Seems like anything he'd do'd be pretty frequently trafficked...
- S4M 14y agoAFAIK, HN is done in Arc.
- klibertp 14y agoArc is written in Racket.
- seanmcdirmid 14y agoThe plt team should push that more in their advertising (though I guess they don't have an ad budget).
- juan_juarez 14y agoGAE supports Go and Java and, by extension, Scala, Clojure and all the other JVM languages.
- fogus 14y agoI put together a (silly) post to highlight some of the features of Racket. http://blog.fogus.me/2013/01/21/enfield-a-programming-language-designed-for-pedagogy/ http://blog.fogus.me/2013/01/21/enfield-a-programming-langua... It's worth a look if you want the overview and don't have time for the video.
- z3phyr 14y agoOff-topic Why racket is not more popular than other lisp dialects?
- S4M 14y agoI am also interested to know how it compares to Clojure.
- MatthewPhillips 14y agoBecause 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 14y agoDo you mean to pick one of the "Common Lisps"?
- MatthewPhillips 14y agoYes, sorry.
- kyllo 14y agoHere's an older HN post comparing some of the pros and cons of the two languages: http://news.ycombinator.com/item?id=1594479 http://news.ycombinator.com/item?id=1594479
- klibertp 14y agoDon't read this post. Racket since grew a full library of purely functional datastructures, cleaned up hashes, provides builtin streams and generators and as for the syntax - well, it's a lisp: write your own syntax and be done with it! ;) [edit: https://github.com/takikawa/racket-clojure/blob/master/lang/clojure.rkt https://github.com/takikawa/racket-clojure/blob/master/lang/...] Anyway, this post should be either updated or at least marked as not entirely relevant three years later.
- nnq 14y agoIs 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 14y agoCan you think of a different three level analogy?
- nnq 14y agoWell, 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 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
- 14y ago
- Kototama 14y agoNice 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?
- kenko 14y agoIIRC, data structures are immutable by default in Racket.
- klibertp 14y agoLists are. Vectors and hashes are not. There are both mutable lists and immutable vectors and hashes though. Edit: and user-defined structs are immutable unless explicitly declared with #:mutable keyword.
- righttrousers 14y agoI 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 14y agoOne 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-Hickey http://www.infoq.com/presentations/Value-Identity-State-Rich...
- andsotigoes 14y agoAlso worth a mentioning Racket's ability to go static vs dynamic vs hybrid typed. An example of Typed Racket: Iteratees http://goo.gl/9uT4R http://goo.gl/9uT4R Compare and contract with Haskell and Scala impls of same.
- puredanger 14y agoFYI, Matthew Flatt will be doing at keynote at Clojure/West on Racket in Portland, March 18-20th. http://clojurewest.org/schedule http://clojurewest.org/schedule