# Summer #lang Party

**URL:** <https://racket.discourse.group/t/summer-lang-party/1128>\
**Category:** Announcements\
**Tags:** event\
**Created:** [July 7, 2022, 3:24am UTC](https://racket.discourse.group/t/summer-lang-party/1128 "2022-07-07T03:24:07Z")\
**Posts on this page:** 19\
**Page:** 1

<div class="post-metadata">

**Author:** ![ben\_greenman](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/ben_greenman/32/632_2.png) [@ben\_greenman](https://racket.discourse.group/u/ben_greenman)\
**Post date:** [July 7, 2022, 3:24am UTC](https://racket.discourse.group/t/summer-lang-party/1128/1 "2022-07-07T03:24:07Z")

</div>

**Write a language with Racket this summer! Win prizes!**

 ![image](https://global.discourse-cdn.com/free1/uploads/racket/original/1X/cac63038b2ccb40dfcccf52bba7853f807c99d37.jpeg)

_Suggestions for languages are welcome too. See below!_

### Ground Rules

Any language counts as long as you helped to make it. Big or small, brand new  
or recently improved.

Submit as many times as you like.

Limit 1 prize per participant. Prizes TBD.

Teams welcome.

Open until October 1.

Everyone is welcome. Be good. Follow the Racket Friendly Environment Policy:  
[https://racket-lang.org/friendly.html](https://racket-lang.org/friendly.html)

### How to Submit

Submissions are accepted in any forum where Racket discussions happen.  
Announce your language, make sure Ben and/or Stephen see it, and you're in.

We recommend submitting via this link:

[https://github.com/lang-party/Summer2022/issues/new?assignees=&labels=&template=enter-the-lang-party.md&title=[entry+-+name%2Fdescription+of+language]](https://github.com/lang-party/Summer2022/issues/new?assignees=&labels=&template=enter-the-lang-party.md&title=%5Bentry+-+name%2Fdescription+of+language%5D)

(if GitHub is a problem please contact us directly as we are happy for submissions by other means)

Rough ideas and requests for help are welcome too:

[https://github.com/lang-party/Summer2022/issues/new?assignees=&labels=lang-request&template=lang-request.md&title=[Lang+Request]+...](https://github.com/lang-party/Summer2022/issues/new?assignees=&labels=lang-request&template=lang-request.md&title=%5BLang+Request%5D+...)

### Fine Print

This is an unofficial event run by Racket users (@spdegabrielle and @ben_greenman)

Submitted languages may use any software license.

Event homepage:  
[https://github.com/lang-party/Summer2022](https://github.com/lang-party/Summer2022)

For the text in each submission, however, we ask that you license it  
as CC BY 4.0.  
[https://creativecommons.org/licenses/by/4.0/](https://creativecommons.org/licenses/by/4.0/)

### Further Reading

This is a tiny list. Suggestions welcome!!

- Beautiful Racket  
[https://beautifulracket.com/](https://beautifulracket.com/)

- Mythical Macros tutorial  
[https://soegaard.github.io/mythical-macros/](https://soegaard.github.io/mythical-macros/)

- Macros and Languages in Racket book draft  
[http://rmculpepper.github.io/malr/](http://rmculpepper.github.io/malr/)

- Racket Guide: Creating Languages  
[https://docs.racket-lang.org/guide/languages.html](https://docs.racket-lang.org/guide/languages.html)

- Racket Docs search for all languages:  
[https://docs.racket-lang.org/search/index.html?q=H%3A](https://docs.racket-lang.org/search/index.html?q=H%3A)

- [Creating Languages in Racket - ACM Queue](https://queue.acm.org/detail.cfm?id=2068896j)

Edit: **All languages count**!

## Some tools that might help

- Rosette helps develop synthesis and verification tools for new languages - [The Rosette Guide](https://docs.racket-lang.org/rosette-guide/index.html) [Rosette: About](https://emina.github.io/rosette/)
- Turnstile help Racket programmers create typed languages- [The turnstile language](https://docs.racket-lang.org/turnstile/)
- Sham: A DSL for Fast DSLs - [[2005.09028] Sham: A DSL for Fast DSLs](https://arxiv.org/abs/2005.09028) / [GitHub - rjnw/sham: A DSL for runtime code generation in racket](https://github.com/rjnw/sham)
- [Writing Languages in Qi](https://docs.racket-lang.org/qi/Qi_Macros.html#%28part._.Writing_.Languages_in_.Qi%29)

## Example languages

An incomplete list of examples…

- Riposte (External DSL) [Riposte—Scripting Language for JSON-based HTTP APIs](https://docs.racket-lang.org/riposte/index.html)
- General purpose programming language e.g. Idris
- Embedded DSL e.g. Typed Racket.
- Hosted DSL e.g. Match, syntax/parse, Qi
- Datalog
- Scribble
- `#lang slideshow`
- add more here…

[![Racket](https://img.shields.io/badge/-Racket-darkred?logo=racket)](https://racket-lang.org)  
[![Discourse users](https://img.shields.io/discourse/users?label=Discuss%20on%20Racket%20Discourse&logo=racket&server=https%3A%2F%2Fracket.discourse.group)](https://racket.discourse.group/)  
[![Racket Discord](https://img.shields.io/discord/571040468092321801?label=Chat%20on%20Racket%20Discord&logo=racket)](https://discord.gg/6Zq8sH5)

---

<div class="post-metadata">

**Author:** ![countvajhula](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/countvajhula/32/65_2.png) [@countvajhula](https://racket.discourse.group/u/countvajhula)\
**Post date:** [July 7, 2022, 3:38am UTC](https://racket.discourse.group/t/summer-lang-party/1128/2 "2022-07-07T03:38:46Z")

</div>

This sounds like a lot of fun! 💃 Is this for #lang's only or would embedded and hosted languages also count?

Excited to see what Racketeers come up with :racket: 🏁 🏅 👍

---

<div class="post-metadata">

**Author:** ![spdegabrielle](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/spdegabrielle/32/95_2.png) [@spdegabrielle](https://racket.discourse.group/u/spdegabrielle)\
**Post date:** [July 7, 2022, 7:36am UTC](https://racket.discourse.group/t/summer-lang-party/1128/3 "2022-07-07T07:36:38Z")

</div>

> [@countvajhula](#):
>
> Is this for #lang's only or would embedded and hosted languages also count?

Embedded and hosted languages are very welcome, as are External DSLs.

All languages count.

I’ll change the top post

Best wishes  
Stephen

---

<div class="post-metadata">

**Author:** ![spdegabrielle](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/spdegabrielle/32/95_2.png) [@spdegabrielle](https://racket.discourse.group/u/spdegabrielle)\
**Post date:** [July 7, 2022, 10:00pm UTC](https://racket.discourse.group/t/summer-lang-party/1128/4 "2022-07-07T22:00:47Z")

</div>

I’ve updated the top post “ [Summer #lang Party](https://racket.discourse.group/t/summer-lang-party/1128) “ to add

- any type of language - there is no requirement to use `#lang` ( [17.3&nbsp;Defining new #lang Languages](https://docs.racket-lang.org/guide/hash-languages.html) )
  - e.g. Riposte is a command line tool, which executes Riposte scripts ( [Riposte—Scripting Language for JSON-based HTTP APIs](https://docs.racket-lang.org/riposte/index.html) )

- Some tools that might help
- Example languages

## Never made a language before? / Not sure where to start?

The Racket community welcomes beginners! ❤

- so just ask if you need help 😀

You can ask for help on

- [Racket Discourse](https://racket.discourse.group/c/questions/6)
- [Racket Discord](https://discord.gg/6Zq8sH5)
- [Racket Slack](https://racket-slack.herokuapp.com/)

Looking forward to seeing the first entries 😃

Stay cool and keep hydrated

Stephen

---

<div class="post-metadata">

**Author:** ![countvajhula](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/countvajhula/32/65_2.png) [@countvajhula](https://racket.discourse.group/u/countvajhula)\
**Post date:** [July 7, 2022, 11:47pm UTC](https://racket.discourse.group/t/summer-lang-party/1128/5 "2022-07-07T23:47:42Z")

</div>

In that case, might I also humbly recommend [Writing Languages in Qi](https://docs.racket-lang.org/qi/Qi_Macros.html#%28part._.Writing_.Languages_in_.Qi%29) to the attention of participants 🙂 Depending on the type of language you are trying to write, Qi may be a good starting point for it.

---

<div class="post-metadata">

**Author:** ![spdegabrielle](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/spdegabrielle/32/95_2.png) [@spdegabrielle](https://racket.discourse.group/u/spdegabrielle)\
**Post date:** [July 8, 2022, 12:22am UTC](https://racket.discourse.group/t/summer-lang-party/1128/6 "2022-07-08T00:22:47Z")

</div>

Thank you - that is a great idea - I’ve added it to the top post “ [Summer #lang Party](https://racket.discourse.group/t/summer-lang-party/1128) “

---

<div class="post-metadata">

**Author:** ![spdegabrielle](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/spdegabrielle/32/95_2.png) [@spdegabrielle](https://racket.discourse.group/u/spdegabrielle)\
**Post date:** [July 9, 2022, 3:22pm UTC](https://racket.discourse.group/t/summer-lang-party/1128/7 "2022-07-09T15:22:10Z")

</div>

Just added [Creating Languages in Racket - ACM Queue](https://queue.acm.org/detail.cfm?id=2068896j) to the [top post](https://racket.discourse.group/t/summer-lang-party/1128).

A great resource and highly recommended.

S.

---

<div class="post-metadata">

**Author:** ![spdegabrielle](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/spdegabrielle/32/95_2.png) [@spdegabrielle](https://racket.discourse.group/u/spdegabrielle)\
**Post date:** [July 17, 2022, 10:25pm UTC](https://racket.discourse.group/t/summer-lang-party/1128/8 "2022-07-17T22:25:14Z")

</div>

Very happy to report we have had four entries in the first week!

I’ve posted the first two in the new #languages category - and we will get to the others this week.

* * *

**Need help? Want to form/join a team ?**

Rough ideas and requests for help are welcome too - choose [Lang Request] ’Suggest a language, inspire collaborators’ and let us know

[https://github.com/lang-party/Summer2022/issues/new/choose](https://github.com/lang-party/Summer2022/issues/new/choose)

Best wishes

Stephen

PS Prefer chat? Try [![Racket Discord](https://img.shields.io/discord/571040468092321801?label=Chat%20on%20Racket%20Discord&logo=racket)](https://discord.gg/6Zq8sH5)

---

<div class="post-metadata">

**Author:** ![spdegabrielle](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/spdegabrielle/32/95_2.png) [@spdegabrielle](https://racket.discourse.group/u/spdegabrielle)\
**Post date:** [July 27, 2022, 6:35pm UTC](https://racket.discourse.group/t/summer-lang-party/1128/9 "2022-07-27T18:35:21Z")

</div>

We are up to day 10 and we have another three entries;

- `#lang gtp-measure/output/typed-untyped`
- F♭m aka f-flat-minor
- Budge programming language

You can find details of all the entries at [https://github.com/lang-party/Summer2022/issues](https://github.com/lang-party/Summer2022/issues)

Or post your ideas, suggestions or entries at [https://github.com/lang-party/Summer2022/issues/new/choose](https://github.com/lang-party/Summer2022/issues/new/choose)

[![choose](https://global.discourse-cdn.com/free1/uploads/racket/original/1X/ee49b49aa6bda39bcc8623b9b686189e62909e70.jpeg)](https://github.com/lang-party/Summer2022/issues/new/choose)

If you don’t have or want to use GitHub that is fine too. You can message either @spdegabrielle or @ben_greenman here on the racket discourse (click our handles), on [Racket Discord](https://discord.gg/6Zq8sH5) or on [Racket Slack](https://racket-slack.herokuapp.com/).

---

<div class="post-metadata">

**Author:** ![spdegabrielle](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/spdegabrielle/32/95_2.png) [@spdegabrielle](https://racket.discourse.group/u/spdegabrielle)\
**Post date:** [July 28, 2022, 5:51pm UTC](https://racket.discourse.group/t/summer-lang-party/1128/10 "2022-07-28T17:51:43Z")

</div>

We just got another entry to the [Summer `#lang` party](https://github.com/lang-party/Summer2022)

 ![image](https://global.discourse-cdn.com/free1/uploads/racket/original/1X/4a53e9e6d7de745612016615ca3d56800c54c785.jpeg)

Thanks @winny :racket:❤

Check out TinyBASIC at [Issues · lang-party/Summer2022 · GitHub](https://github.com/lang-party/Summer2022/issues)

---

<div class="post-metadata">

**Author:** ![spdegabrielle](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/spdegabrielle/32/95_2.png) [@spdegabrielle](https://racket.discourse.group/u/spdegabrielle)\
**Post date:** [August 3, 2022, 11:47am UTC](https://racket.discourse.group/t/summer-lang-party/1128/11 "2022-08-03T11:47:33Z")

</div>

It’s day 15 and we now have 10 entries and one suggestion!

The entries are far more diverse than I expected with languages for scripting demos, creating documents, and hardware description just to name a few.

The suggestion is an interesting one but might be too much of a challenge in the two months left for one person: Standard ML!

Is it even possible to implement the small subset of standard ML is used in [The Little MLer](https://mitpress.mit.edu/books/little-mler). (Maybe a team effort? message me if interested)

Check them out the submissions, or submit your own at [https://github.com/lang-party/Summer2022/issues](https://github.com/lang-party/Summer2022/issues)

best wishes  
Stephen

---

<div class="post-metadata">

**Author:** ![stchang](https://avatars.discourse-cdn.com/v4/letter/s/74df32/32.png) [@stchang](https://racket.discourse.group/u/stchang)\
**Post date:** [August 3, 2022, 1:45pm UTC](https://racket.discourse.group/t/summer-lang-party/1128/12 "2022-08-03T13:45:17Z")

</div>

> The suggestion is an interesting one but might be too much of a challenge in the two months left for one person: Standard ML!  
> Is it even possible to implement the small subset of standard ML is used in [The Little MLer](https://mitpress.mit.edu/books/little-mler). (Maybe a team effort? message me if interested)

Hi all, it sounds like there might be some interest in our "mlish" #lang: [GitHub - stchang/mlish](https://github.com/stchang/mlish)

It is an SML-inspired typed language that attempts to demonstrate that Racket-style extension capabilities can work in the typed world as well. Some features we've implemented, as libraries of course, are type classes and GADTs.

While it is very much a research prototype, we have spent a decent amount of time trying to build a small mlish code base that includes some Language Shootout Benchmarks, Okasaki's functional data structures, and even some Cornell FP course HW.

Feedback welcome. (Also, feel free to submit it to the Summer Party if you feel it would be appropriate)

---

<div class="post-metadata">

**Author:** ![spdegabrielle](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/spdegabrielle/32/95_2.png) [@spdegabrielle](https://racket.discourse.group/u/spdegabrielle)\
**Post date:** [August 3, 2022, 5:56pm UTC](https://racket.discourse.group/t/summer-lang-party/1128/13 "2022-08-03T17:56:16Z")

</div>

This is great! How did I never hear of this before?

When I got home tonight I’m trying this out.

TYSM.

Stephen

---

<div class="post-metadata">

**Author:** ![sschwarzer](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/sschwarzer/32/1940_2.png) [@sschwarzer](https://racket.discourse.group/u/sschwarzer)\
**Post date:** [August 8, 2022, 9:32pm UTC](https://racket.discourse.group/t/summer-lang-party/1128/14 "2022-08-08T21:32:50Z")

</div>

I won't have the time to work on any `#lang`, but I have a suggestion. 🙂

There's [GraphQL](https://graphql.org/), which describes a way to query or mutate online resources. It's somewhat similar to [REST](https://en.wikipedia.org/wiki/REST), but GraphQL allows a response to contain only fields that you specify in a query. Also, there are [GraphQL schemas](https://graphql.org/learn/schema/), which are typed. An example of a GraphQL schema is this description of the [ticket system API](https://git.sr.ht/~sircmpwn/todo.sr.ht/tree/master/item/api/graph/schema.graphqls) for Sourcehut.

A `#lang graphql-schema` file could be the actual schema file with the `#lang` line, to be able to directly process existing schema files. Importing a module in this language might be equivalent to define structs and possibly constructors and/or contracts for the types in the schema.

There's already some related Racket code here:

- [~williewillus/racket-graphql - sourcehut git](https://git.sr.ht/~williewillus/racket-graphql) (maybe this already covers much/most of the task?)
- [gql: what is graphql?](https://jadud.com/p/gql-01/) (repo: [GitHub - jadudm/graphql-racket: For exploring GraphQL in Racket.](https://github.com/jadudm/graphql-racket))

As another inspiration, [this page](https://graphql.org/code/) lists tools for other programming languages.

---

<div class="post-metadata">

**Author:** ![sschwarzer](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/sschwarzer/32/1940_2.png) [@sschwarzer](https://racket.discourse.group/u/sschwarzer)\
**Post date:** [August 8, 2022, 9:44pm UTC](https://racket.discourse.group/t/summer-lang-party/1128/15 "2022-08-08T21:44:40Z")

</div>

Another suggestion:

Something else I find intriguing are textual languages to create graphics from. Examples of Racket libraries are [Pict](https://pkgs.racket-lang.org/package/pict) or [MetaPict](https://pkgs.racket-lang.org/package/metapict), but I'd be especially interested in seeing examples of specialized graphics languages for certain applications, like [PlantUML](https://plantuml.com/).

Is there a type of diagram or other visualization you'd like to create from a text file? What would a language for this look like?

A variation could be to generate an intermediate text format instead of image files, for example [dot files](https://graphviz.org/doc/info/lang.html) for [GraphViz](https://graphviz.org/), if that seems appropriate.

---

<div class="post-metadata">

**Author:** ![ben\_greenman](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/ben_greenman/32/632_2.png) [@ben\_greenman](https://racket.discourse.group/u/ben_greenman)\
**Post date:** [August 16, 2022, 10:04pm UTC](https://racket.discourse.group/t/summer-lang-party/1128/16 "2022-08-16T22:04:52Z")

</div>

Prizes arrived!

They’re like stickers but reusable(!!) but only work on metal

 ![image](https://global.discourse-cdn.com/free1/uploads/racket/original/1X/c07ecf1eed47f287f4044bedefa23b86a8937956.jpeg)

---

<div class="post-metadata">

**Author:** ![spdegabrielle](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/spdegabrielle/32/95_2.png) [@spdegabrielle](https://racket.discourse.group/u/spdegabrielle)\
**Post date:** [August 28, 2022, 9:11am UTC](https://racket.discourse.group/t/summer-lang-party/1128/17 "2022-08-28T09:11:15Z")

</div>

There is a little over one month left for the **Summer #lang Party** ⏱👀  
Still time to get the LOP bug!

> **[GitHub - lang-party/Summer2022: Lang Party 2022](https://github.com/lang-party/Summer2022)**
>
> Lang Party 2022. Contribute to lang-party/Summer2022 development by creating an account on GitHub.

---

<div class="post-metadata">

**Author:** ![spdegabrielle](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/spdegabrielle/32/95_2.png) [@spdegabrielle](https://racket.discourse.group/u/spdegabrielle)\
**Post date:** [September 9, 2022, 10:22am UTC](https://racket.discourse.group/t/summer-lang-party/1128/18 "2022-09-09T10:22:45Z")

</div>

There is still time to join the [Summer #lang Party](https://github.com/lang-party/Summer2022/issues/new/choose)

Building a large language can take time, but have you considered a _little language_?

You might be able to do a little language in an afternoon or a weekend so there is plenty of time.

For inspiration maybe read [Programming pearls: little languages Jon Bentley (CACM, 1986)](https://doi.org/10.1145/6424.315691)

To get started you have a choice

- [17 Creating Languages](https://docs.racket-lang.org/guide/languages.html) in the Racket Guide (free)
- [Beautiful Racket](https://beautifulracket.com/) ($39 / $19)

And don’t forget to ask for help:

[![Discourse users](https://img.shields.io/discourse/users?label=Discuss%20on%20Racket%20Discourse&logo=racket&server=https%3A%2F%2Fracket.discourse.group)](https://racket.discourse.group/)  
[![Racket Discord](https://img.shields.io/discord/571040468092321801?label=Chat%20on%20Racket%20Discord&logo=racket)](https://discord.gg/6Zq8sH5)

Best regards

Stephen  
:beetle:

PS Maybe try [Writing Languages in Qi](https://docs.racket-lang.org/qi/Qi_Macros.html#%28part._.Writing_.Languages_in_.Qi%29)

---

<div class="post-metadata">

**Author:** ![ben\_greenman](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/ben_greenman/32/632_2.png) [@ben\_greenman](https://racket.discourse.group/u/ben_greenman)\
**Post date:** [September 15, 2022, 4:49am UTC](https://racket.discourse.group/t/summer-lang-party/1128/19 "2022-09-15T04:49:37Z")

</div>

Reminder: the summer lang party runs until the end of this month. Just a few weeks left!

As Alan Kay said, a computer is an instrument whose music is ideas. With Racket the instrument transcends itself, enabling new ways of ways of thinking playing and creating. 😀🌷🪐🎉

Of course anytime is good for making a new language. But now’s the only chance to win a lang party magnet along the way!
