A language can be nominated for Language of the Month by posting an answer to this thread. We all vote on the languages we'd like to see featured. At the beginning of each month, the nomination with the highest net vote total is chosen as the Language of the Month. (This nomination process was modeled after Lit.SE's reading challenges.)
The person who nominated the language will post a new question on meta, declaring that language to be Language of the Month, with an answer to collect all related golf submissions, tips, and challenges during the month. (See the previous posts, linked below, for a good format to follow.)
- If the person who nominated the language is not able to make the post by the 3rd of the month, anyone else can make the post.
- If there is a tie in the voting, the tied language that was nominated earlier will be Language of the Month.
The chosen language will have a chatroom created for it, if it doesn't already have one. During the month, everyone who wants to participate will:
- Learn the basics of the language (if they don't know it already)
- Answer challenges in it (new ones or old ones, doesn't matter)
- Try to outgolf each other's answers
- Discuss all of the above in the language's chatroom
Past Languages of the Month will be added to a list at the bottom of this post. Their nomination posts should be deleted (preferably by the person who made the post) to reduce clutter.
What sort of languages should I nominate?
We hope to see a wide variety! But not every language is a good choice for Language of the Month. Some things to consider before nominating, and when voting on nominations:
- It should be somewhat general-purpose and possible to program in. Bubblegum isn't a good choice, because it's only capable of solving a small subset of challenges. Neither is Malbolge a good choice, because it's prohibitively hard to create a working program in it at all.
- It should have a freely available implementation. This can be TIO, some other online source, or a downloadable interpreter/compiler.
- It should be fairly stable. Most languages change over time, even well-established ones, so this is a subjective criterion. But if a language is likely to experience significant modifications in the next month, don't nominate it yet.
- It can be either esoteric or practical. Of course we like our esolangs around here, but it's also cool to study lesser-known "real" languages.
* Better rules of thumb are welcome. Here are a couple SEDE queries for estimating how commonly a language is used: a strict version (useful for languages with short names that could show up as false positives within other languages' names or URLs) and and a loose version (useful for languages whose headers frequently mention a flavor or version number with the name).
What should I include in a nomination post?
At a minimum, your nomination must include:
- The language's name.
- A link to a free implementation (or more than one, if available).
- A short description of the language, for those unfamiliar with it.
- Why you think this would make a good Language of the Month.
Ideally, your nomination should also include:
- Some links to documentation and other good resources for learning the language.
- A link to the language's tips question, if it has one.
You can also include ideas for one or more language-specific challenges that will provide an interesting experience beyond answering regular challenges in this language. These can be code-golf, fastest-code, king-of-the-hill, answer-chaining... you name it. Good language-specific challenges will focus on some aspect of the language that makes it unique, such as an ability or a weakness that most other languages don't have.
Feel free to re-nominate a language that was nominated last time but never won. You can copy over the old nomination post if you like. Languages that have previously been Language of the Month are not eligible.
List of past and current Languages of the Month
- March: Brachylog
- April: Brain-Flak
- May: MATL
- June: QBasic
- July: Japt
- August: Self-modifying Brainfuck
- January: Scala
- Feburary: Whispers
- March: Factor
- April: Vim
- May: Vyxal
- June: Red
- July: ARM
- August: k
- September: jq
- October: Lean
- November: Zsh
- December: BQN
- January: Add++
- February: tinylisp
- March: PARI/GP
- April: Curry
- May: Desmos
- June: J-uby
- July: Piet
- August: Knight
- September: Prolog
- October: Nim
- November: J
- December: Pip
- January: Elm
Don't forget to keep nominating and voting on languages for next month!