top | item 13656397

Chez Scheme as the Racket VM

218 points| nickmain | 9 years ago |groups.google.com | reply

91 comments

order
[+] throwaway7645|9 years ago|reply
I'm curious why people don't prefer Chez Scheme to Racket if it is so fast and can make real binaries (I think anyway). Maybe because until recent it was proprietary. Racket is cool, but I already have Python which is similar from a performance perspective. Chez with the Racket ecosystem might be worth a switch.
[+] steinuil|9 years ago|reply
Speed is probably not your most pressing concern if you're using Scheme, I think. Moreover, Racket has the best ecosystem out of all the schemes, with lots of high quality and maintained libraries and a massive standard library, and it's not only a language, but also a platform for creating DSLs fully integrated with its IDE, DrRacket. Also, Racket can create standalone binaries (though they don't make programs any faster).
[+] codemac|9 years ago|reply
> and can make real binaries (I think anyway)

No, it cannot currently. It makes boot files which still need to be launched with scheme / petite.

The build + library/module system with chez is also pretty unusable. If you want to write scheme for a system where you deploy an entire OS, it's not too much to work around. If you're trying to write a 1-off binary, you should go with chicken.

[+] znpy|9 years ago|reply
In my own restricted view (I didn't play with may scheme implementations) Racket has some serious non-strictly-technical winning point that make it feasible for non-toy applications:

* Well-written, comprehensive language and package documentation

* Tooling

* Included libraries (example: I didn't expect racket to have libraries for imap... but it's there, in the standard package)

A nice development would be same-process parallelism. Afaik, at the moment you can have concurrent "threads" within the same process, but you need to spawn multiple racket vm processes to get parallelism (this is done "under the hood" by the racket vm, they call this things "Places").

[+] zem|9 years ago|reply
racket is just a pure pleasure to use as a language, more so than either scheme or python.
[+] catnaroek|9 years ago|reply
Raw performance isn't all there is to a programming language. Racket is so much more flexible and beautifully designed than Python.
[+] e12e|9 years ago|reply
> I'm curious why people don't prefer Chez Scheme to Racket if it is so fast and can make real binaries (I think anyway).

Just a FYI for those following along at home, racket comes with built-in support for bundling programs as executables - but as I understand it those are really archives with a vm and (byte?)code.

I recently tried on Windows, and a "hello world" graphical app was a ~11mb - not bad IMNHO - but bigger than the equivalent Lazarus / free pascal app.

[+] eggy|9 years ago|reply
I'm glad I've stuck with Racket. The work on it continues to surprise me in many ways. I have Chez and Racket on my box, and Wasp Lisp. Now I can look forward to a fast Racket with scheme code I can dig into vs. C, which I am only ok at.
[+] abhi18av|9 years ago|reply
The very same delight, over here as well :)
[+] peatmoss|9 years ago|reply
The benchmarks for Chez Scheme are pretty impressive. Provided Racket-on-Chez is able to captitalize on that, this is pretty exciting.

Also, that makes it hypothetically possible that HN could end up running on Chez's VM because HN is written in Arc, which is I believe written in Racket, which may in the next year be written for Chez Scheme's VM.

[+] JoelMcCracken|9 years ago|reply
The last time I checked, arc required a pretty old version of racket that supported mutable cons cells.

Not sure if that's still true, but AFAIK all work on arc has been stalled for quite a while.

[+] codemac|9 years ago|reply
I think it may be faster to just port, though are there larger libraries that Arc depends on in Racket that you'd also have to significantly port?
[+] na85|9 years ago|reply
Is Chez "scheme all the way down"?
[+] abhi18av|9 years ago|reply
This is like a secret wish come true!