Welcome to Lang Jam, a weekend coding jam. It carries much of the spirit of game jams, where teams create a video game in a weekend. In Lang Jam, you and your teammates will create a programming language based on the theme for that jam.
The next jam is 17-19 Feb 2023. It will begin on the 17th of Feb at 9pm UK time. The theme will be announced when the jam starts. You can visit the jam repo
- Part 1: You have 48 hours to complete the code to your project and submit your PR to the repo (which will be announced when the theme is announced at the start of the jam). This will close on the 19th of Feb at 9pm UK time
- Part 2: You have 12 total hours over the following 48 hours to work on the website and documentation for your project. Be sure to link to this website in the project you submit in part 1. This ends on the 21st of Feb at 9pm UK time
#0003 - The third lang jam theme was "Beautiful Assembly". The third lang jam started on Friday the 22nd of July at 9pm UK time and ran in two parts:
- Part 1: You have 48 hours to complete the code to your project and submit your PR to the repo (which will be announced when the theme is announced at the start of the jam). This will close on the 24th of July at 9pm UK time
- Part 2: You have 12 total hours over the following 48 hours to work on the website and documentation for your project. Be sure to link to this website in the project you submit in part 1. This ends on the 26th of July at 9pm UK time
#0002 - The second Lang Jam started on Friday the 3rd of December at 7pm UK time and ran for 7 days, ending on 7pm on the following Friday (the 10th of December). It's theme was "patterns". In this time, you were allowed 48 total hours to work on code and 12 total hours to work on documentation and presentation. Projects are here.
#0001 - The inaugural theme was "first-class comments". The first Lang Jam was held on Friday the 20th of August, starting at 7pm UK time (Timezone translator: https://dateful.com/eventlink/1037709179) and ran for 48 hours, ending at 7pm on Sunday the 22nd of August. Submissions can be found in the jam repo. You can watch a video of the winners.
Each team will submit a PR that will create a directory named after their language which includes the project source code and build instructions for the language. Note: as part of Lang Jam 3, you'll also submit a link to the website you'll use for documentation. In this directory, there will also be a file that includes the GitHub handles of the team members. The PR for each project needs to be submitted before the end of the jam. We will provide a directory template each team can use.
A team can use personal repos to develop ideas before they're ready to show them publically, but to count as part of the jam, the team's final code needs to be submitted as a PR before the jam's cutoff time.
For the length of time the jam will run, including the start and end times, please see the Upcoming Lang Jam section above. This will list all the specific rules about that jam.
Each jam will have a theme. Your projects should build on that theme and show that theme in their final design. You can build an interpreter or a compiler, so long as it can run or build examples of code in the programming language you create.
Anyone, from any age, from anywhere in the world. You can join by yourself or as part of a group.
While the most important part of any jam is to enjoy it, it's also exciting to have a good competition. Each team's projects will be judged based on feedback from other participants and onlookers who try the project out and vote on how they like best based on three criteria:
- Creativity
- Uniqueness
- Fun
Of these, JT will pick their top picks and create a video showing off the winners.
You can code in any programming language you'd like to create your project, so long as the language is part of the Debian/Ubuntu or Arch package repo (or one of the language-specific repos, like Rust's cargo). Please limit build steps of the project to three or fewer.
Along with your project, which may be a compiler or an interpreter, you'll want to provide a set of examples showing how the language works as well as some documentation explaining the language itself so that new users can try it out.
You can use any libraries you'd like to help build your project - lexical analysers, parser generators, codegen frameworks like LLVM, you name it.
If you are looking to find a group or chat with other participants, we have a discord.
You can have a team of just yourself or any number team members.
You retain the rights to your project. The only rights I ask for are to be able to host the code in a repo that's part of this GitHub organization, for me and others to use the code when evaluating winners and, if you're a winner, to make a video about your project.