1. 31

  2. 2

    Does any one here use Racket? What’s the typical distribution method for a Racket program? I mean, does it compile to a single binary, or is like trying to distribute python?

    1. 5

      I do!

      You can create stand-alone executables using raco exe from the base distribution. This packs the runtime along with your code and any necessary libraries into a single executable. In that sense it’s somewhat like Python in that there are similar tools for Python (like py2exe and py2app), but, having used both, Racket’s is a significantly nicer experience. One of the reasons the experience is nicer (aside from being well supported because it’s essentially a part of the language) is because Racket gives you the ability of defining runtime paths to certain files that your application uses in such a way that the packaging system can keep track of those files and distribute them for you. Anyone who’s had to deal with setup.py and MANIFEST files and all of the various ways that exist to package data files with one’s application can probably imagine how nice it must be to be able to say

      ;; Assuming the file lives at ../resources/icon.png relative to the current module.
      (define-runtime-path an-icon
        (build-path 'up "resources" "icon.png"))

      and let the system figure out that it needs to include that file for you.

      1. 1

        Nice. Thank you for the info. Maybe I’ll check racket out then.