Skip to content

[meta] Add a Prior Art section to the RFC template - #243

Open
hgoldstein wants to merge 3 commits into
masterfrom
hgoldstein/add-prior-art-to-template
Open

[meta] Add a Prior Art section to the RFC template#243
hgoldstein wants to merge 3 commits into
masterfrom
hgoldstein/add-prior-art-to-template

Conversation

@hgoldstein

@hgoldstein hgoldstein commented Aug 13, 2026

Copy link
Copy Markdown

Like most engineering, language design heavily benefits from looking at prior art, and the vast majority of language features have prior art in a widely used programming language:

  • Having similar features look and behave similarly helps widen the pit of success: it's good that a while loop in Luau and one in JavaScript work roughly the same.
  • You can dodge known pitfalls with commonly implemented features: as of this writing we are using other implementations of classes to prove out the design for classes in Luau.
  • Other languages with extensive RFC processes can provide hints and reasoning for direction on our RFCs, for example the FAQ about why Javascript uses the # sigil to mean private.

This can also apply to prior art for library functions. If we're adding a new math function, do other languages standard libraries have the same functions? The same constants?

This is worth adding a section to push all RFC writers in the right direction.

@InfraredGodYT

Copy link
Copy Markdown

I never thought about an approach like this, but I could see it being widely used across future RFCs.

@bradsharp

Copy link
Copy Markdown
Contributor

Supportive of us adding this. We should also include a point about the existing language design being a key piece of prior art. For example if we introduced a new global called array then you would create one through array.create for consistency with table.create or coroutine.create rather than calling it something like array.init.

@nnullcolumn nnullcolumn left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

are there any examples of other projects which have this as part of their RFC process? /j

i am in support of this idea, but i think we could probably deliberate a bit over the organization and reading flow

Comment thread TEMPLATE.md
## Prior Art

* Do other programming languages have similar features? What do those look like? How do they compare and contrast to this design?
* What supporting features do those languages have that might _not_ be included in this design?

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i think "supporting features" should be defined better or replaced with "related features" so that people are less likely to take mental shortcuts (maybe?)

Comment thread TEMPLATE.md

* Do other programming languages have similar features? What do those look like? How do they compare and contrast to this design?
* What supporting features do those languages have that might _not_ be included in this design?
* Are there other similar features or libraries in Luau already? How does this feature align with _those_ features in terms of naming, syntax, and semantics?

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

naming, syntax, and semantics

i would replace with "naming, syntax, or semantics" or "naming, syntax, and/or semantics"

Comment thread TEMPLATE.md

## Prior Art

* Do other programming languages have similar features? What do those look like? How do they compare and contrast to this design?

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"How do they compare and contrast to this design" might invite very shallow comparisons especially so late into the body. Maybe it'd be better to include this section below Motivation, above Design, and rework the wording to something along the lines of "What design considerations are unique to luau or that feature which are different here?" That way we flow from Motivation -> Similar Designs + Declaring Unique Constraints -> Design

Comment thread TEMPLATE.md

## Prior Art

* Do other programming languages have similar features? What do those look like? How do they compare and contrast to this design?

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do other programming languages

I'd be tempted to change this to "other software projects", prior art can come from almost anywhere

Comment thread TEMPLATE.md
## Prior Art

* Do other programming languages have similar features? What do those look like? How do they compare and contrast to this design?
* What supporting features do those languages have that might _not_ be included in this design?

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

re: languages -> projects(?)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants