In this tutorial we learned about some optional steps that are helpful when we want to share a language:
Writing documentation using Racket’s specialized Scribble documentation language, which allows us to easily cross-reference documentation for other languages and libraries.
The "info.rkt" file, which defines package metadata that cooperates with Racket tools, like a version number, collection name, documentation path, and dependencies.
The package server, which lets us share our package with Racket users and easily issue updates, as well as automatically testing our package.
Between this tutorial and the second jsonic tutorial, we’ve now covered all the essential housekeeping tasks. Though these tasks are always optional, they’re typically part of a well-designed, well-engineered language.
The good news is that it’s the same process for any Racket-implemented language. This is a huge benefit of using Racket as an implementation platform. We spend less time reinventing the wheel, and more time coding up the parts that are specific to our new language. And if we can do it for jsonic, we can do it for any language.
But having covered all that, let’s get back to language design, and try making some languages that are more sophisticated than jsonic.