This repository is the iterative-design phase of the Rhombus project, which is about the design of a new language that is based on Racket. “Rhombus” is the project name and a placeholder name for a language name to be chosen later.
This repository also serves as a package to implement the current
Rhombus prototype. Installing the package makes #lang rhombus
work
and builds documentation for the prototype.
Resources
-
Prototype documentation as rendered by the snapshot package build
-
Older resources:
- A summary of possible goals
- References to some mailing list discussion
- A summary of potential syntax guidelines
- An index of syntax prior art
Participation
Anyone can participate in Rhombus design discussions. The Racket team's unofficial motto is anything we can do, you can do: programmers should feel empowered to participate in the creation of the languages they use. Discussions, pull requests, and issues are open to all, and a wide variety of perspectives is especially beneficial.
Using this GitHub Repository
Conversations as Discussion
GitHub discussions provide a forum for discussing Rhombus broadly, as opposed to discusssing details of specific proposals.
Issues as a Wish List
GitHub issues for this repository represent a kind of wish list. Post there for an idea about some way that you think a new language should be different than the current Racket language. Discuss other suggestions there.
Pull Requests as Draft Proposals
GitHub pull requests for this repository can represent more concrete proposals. Proposals here do not have to be exhaustive, but they should be concrete enough to enable discussion of the pros and cons of a specific solution. There can and should be multiple conflicting proposals for any particular problem or direction, especially at first. The intent is to enable brainstorming and discussion toward a future, more-complete proposal.
To make a draft proposal, start with "template.md" and create either a new ".md" file or a subdirectory containing a ".md" file and other supporting material (such as an implementation).
Pull Requests as Resource Updates
GitHub pull requests for this repository can also be suggestions to update resources listed above. These resources are intended to be uncontroversial summaries, although they may point toward controversial or conflicting perspectives.
For these kinds of pull requests, please include "[resource]" at the start of the pull request title.