Live data from Hacker News

Systems Programming with Racket

docs.racket-lang.org

11–20 of 36 posts

Re: Systems Programming with Racket

#11
post #7
post #5

Slightly off-topic: ever since I started working my way through Land of Lisp a while ago, I decided I would spend some time trying to seriously learn a lisp dialect. I was thinking that dialect would be Clojure because of its compatibility with Java and its community. But can anyone speak for Racket? I couldn't find a "why racket?" section on their homepage.

* Great non-emacs Lisp IDE, powerful, cross-platform, and easy for newbies (but emacs works fine too) * Tons of interesting language extensions -- any Scheme you have ever thought of -- implementations of laziness, static typing, logic programming, FRP * Very good online documentation * Great libraries for lots of things, combined with really easy online package management @ http://planet.racket-lang.org/ * Go look a…

Also, folks are super responsive on the mailing list: http://lists.racket-lang.org/users/listinfo

Re: Systems Programming with Racket

#12
post #7
post #5

Slightly off-topic: ever since I started working my way through Land of Lisp a while ago, I decided I would spend some time trying to seriously learn a lisp dialect. I was thinking that dialect would be Clojure because of its compatibility with Java and its community. But can anyone speak for Racket? I couldn't find a "why racket?" section on their homepage.

* Great non-emacs Lisp IDE, powerful, cross-platform, and easy for newbies (but emacs works fine too) * Tons of interesting language extensions -- any Scheme you have ever thought of -- implementations of laziness, static typing, logic programming, FRP * Very good online documentation * Great libraries for lots of things, combined with really easy online package management @ http://planet.racket-lang.org/ * Go look a…

The documentation and package management are really really good. It's very nice to type:

(require (prefix-in sqlite: (planet jaymccarthy/sqlite:4)))

and then have it automatically downloaded (plus dependencies) and ready for prime time...

Re: Systems Programming with Racket

#13
post #5

Slightly off-topic: ever since I started working my way through Land of Lisp a while ago, I decided I would spend some time trying to seriously learn a lisp dialect. I was thinking that dialect would be Clojure because of its compatibility with Java and its community. But can anyone speak for Racket? I couldn't find a "why racket?" section on their homepage.

Racket is simply fantastic. I use both Clojure and Racket and I have few complaints about either. Clojure's main advantages are the performance of the JVM, larger library ecosystem, and a larger community. Racket has plenty of things to be jealous of though, the efficient pattern matcher, the typed variant and the contract system are particularly cool.

Re: Systems Programming with Racket

#14
post #5

Slightly off-topic: ever since I started working my way through Land of Lisp a while ago, I decided I would spend some time trying to seriously learn a lisp dialect. I was thinking that dialect would be Clojure because of its compatibility with Java and its community. But can anyone speak for Racket? I couldn't find a "why racket?" section on their homepage.

The 3 paragraphs starting with "Grow" on the Racket home page try to be a "why racket?" explanation. What more would you like to see?

Re: Systems Programming with Racket

#16
post #2

I noticed that the expression "Systems Programming" now seems to mean a much higher level that it used to. In my mind, writing a web server is still an "application" and is not equivalent to, for example, writing an operating system. The Go language is also claiming to be a "Systems Programming Language" but I won't use it for what I call "Systems Programming"...

Some systems programming is writing applications. But they are applications that have intimate knowledge of the system. For example, the shell is a user-land application, but I clearly put implementing it under the "systems programming" label. Same with implementing a webserver.

Re: Systems Programming with Racket

#17
post #2

I noticed that the expression "Systems Programming" now seems to mean a much higher level that it used to. In my mind, writing a web server is still an "application" and is not equivalent to, for example, writing an operating system. The Go language is also claiming to be a "Systems Programming Language" but I won't use it for what I call "Systems Programming"...

I'm pretty sure Go at least aspires to "systems programming" in the classic sense, since its designers include some Unix and Plan9 veterans. Whether they'll succeed or not is another question, but they do seem to have a genuine C replacement in mind.

Re: Systems Programming with Racket

#18
post #8
post #5

Slightly off-topic: ever since I started working my way through Land of Lisp a while ago, I decided I would spend some time trying to seriously learn a lisp dialect. I was thinking that dialect would be Clojure because of its compatibility with Java and its community. But can anyone speak for Racket? I couldn't find a "why racket?" section on their homepage.

Disclaimer: I don't know a ton about this. But one of the often-cited reasons for learning a Lisp is the power of Lisp macros for creating domain-specific languages. My understanding is that one unique feature of Racket is how it takes this idea to the next level: not only does it offer a powerful hygienic macro system; Racket also thinks of "languages" as libraries. The Racket folks have built a platform where it is…

I think this response sold me on learning Racket first (though it was definitely a cumulative effect of hearing people's good experiences).

I don't have a project in mind for either dialect. Basically, I want to learn lisp because I've heard learning lisp has certain mind expanding properties. This feature sounds like the mind expanding-est of all. And whatever skills I learn with Racket will probably be easily translated to Clojure, so it's not like I'd have wasted my time if I ended up working in a Clojure shop or on Clojure project.

Thanks to everyone who responded.

Re: Systems Programming with Racket

#19
post #8
post #5

Slightly off-topic: ever since I started working my way through Land of Lisp a while ago, I decided I would spend some time trying to seriously learn a lisp dialect. I was thinking that dialect would be Clojure because of its compatibility with Java and its community. But can anyone speak for Racket? I couldn't find a "why racket?" section on their homepage.

Disclaimer: I don't know a ton about this. But one of the often-cited reasons for learning a Lisp is the power of Lisp macros for creating domain-specific languages. My understanding is that one unique feature of Racket is how it takes this idea to the next level: not only does it offer a powerful hygienic macro system; Racket also thinks of "languages" as libraries. The Racket folks have built a platform where it is…

Racket has an awesome macro system and people have managed to do amazing things with it.

This paper(http://www.ccs.neu.edu/scheme/pubs/scheme2007-ctf.pdf) demonstrates how they made an explicitly-typed dialect of the dynamically typed language Racket.

Truly awesome stuffs.

Re: Systems Programming with Racket

#20
post #8
post #5

Slightly off-topic: ever since I started working my way through Land of Lisp a while ago, I decided I would spend some time trying to seriously learn a lisp dialect. I was thinking that dialect would be Clojure because of its compatibility with Java and its community. But can anyone speak for Racket? I couldn't find a "why racket?" section on their homepage.

Disclaimer: I don't know a ton about this. But one of the often-cited reasons for learning a Lisp is the power of Lisp macros for creating domain-specific languages. My understanding is that one unique feature of Racket is how it takes this idea to the next level: not only does it offer a powerful hygienic macro system; Racket also thinks of "languages" as libraries. The Racket folks have built a platform where it is…

The debate over hygienic-macros is not as straight-forward: https://groups.google.com/d/topic/comp.lang.lisp/dcX15VC5BdM...

Some* argue that hygienic-macros are an unnecessary burden because sometimes you need to capture variable names and this is easy to do with Common Lisp. The situation with Scheme is different because it stores variable and function definitions in the same way (Lisp-1 vs. Lisp-2).

* http://p-cos.net/lisp/guide.html

Post reply on HN