# Language nominations for the "Learn You a Lang for Great Good" chat event

We've decided we'd like to give the "Learn You a Lang for Great Good" chat event $$\{}^*\$$ a go. As a brief overview, this event would be:

For around an hour (or as long as participants want) every two weeks, discussion in The Nineteenth Byte is primarily about a specific programming language. This includes CMCs that are relevant to the language in some way, discussion and questions about that language, and anything else that directly relates to the language in some way

This would also include having a couple of users around who are familiar with the language to help others learn and provide some basic information. Exactly what role these users would have (hands on teaching, just watching and answering questions, etc.) is up to them.

Currently, the plan is to add two new events to The Nineteenth Byte's schedule for this event, on every second Wednesday, alternating between 00:00UTC and 12:00UTC, staggered with BMG. This would mean the first event would happen at 00:00UTC on the 18th of August. If there is opposition to this schedule however, please leave a comment below with a better suggested time/day and we can change it if necessary.

However, this thread is mainly to collect nominations for languages. Unlike Language of the Month, this event isn't primarily intended to showcase languages. Instead:

• Please vote on languages you'd like to learn

This in an effort to avoid the most popular languages on the site "dominating" this event, and to give space to languages that have been overlooked or underused. That said, ultimately, please vote how you feel is most appropriate.

Please also include some justification for why you believe the language would be a good language for people to learn, and why they'd be interested in learning it.

$$\{}^*\$$: Name chosen in this poll

• I think instead of having a voting system like BMG, it might be good to just randomly select from all positively suggested languages. Maybe have a weighting based on how upvotes it has
– Jo King Mod
Aug 13 '21 at 1:12
• @JoKing I somewhat deliberately didn't include anything like "The highest voted answer will be used in the event", so that when the event happens we have more freedom to decide which language we'd like, and that decision can be part of the event. This would also allow people who want to be "teachers" to say "Oh, I won't be free for that one, could we do it next time instead?" I think upvoting answers you like is a good way to show preference, and we can include that when we decide, but that the final decision should be made at the time, rather than in advance Aug 13 '21 at 1:16

# Quipu

Quipu was Learned for Great Good during the event on 1 September 2021

An esoteric language inspired by the knotted strings used by the Inca for bookkeeping. The program consists of one or more "threads," each of which is composed of "knots." Each thread is laid out vertically, so programs look like this:

1& 1& 1&
[] ++ []
/\    1%
\n    --
/\    3&
==
0&
??


I don't know this language, but it looks fascinating and I want to learn it.

• Easily my favourite of all the picks. Looks very interesting, unexplored and the original developer also has some other very interesting projects. Aug 13 '21 at 8:25

# ><>

><> was learned for great good during the event on September 14, 2021

A quite interesting esoteric 2D language, and it's quite fun to fiddle with.

Cascade was Learned for Great Good during the event on 28 September 2021

Cascade is a 2D language based on branching trees that is intuitive to understand but hard (and therefore fun??) to golf. If you've ever seen an ASCII art diagram like:

    ^
/ \
^   c
/ \
a   b


Then you're already halfway to knowing the syntax

Underload was learned for great good during the event on October 27 2021

One of the classic tarpits. It's programs are in bijection with those in Unlambda, another classic tarpit, see here for details.

Underload is a stack-based esoteric programming language that works along similar lines to Muriel. It was created by User:ais523 in 2006. Although not technically speaking a functional language, its evaluation operator ^ (which is the only form of flow control) makes programming in it functional in practice.
~~ Esolangs.org

## Lost

Lost was learned for great good on December 8th, 2021

Lost is a 2-D programming language where the start position and direction of the ip are entirely random.

Lost wouldn't make a very good LOTM, since it is really hard to use and can only solve particular challenges. However it's perfect for this event.

Lost is an "easy to learn, hard to master" sort of language. It only has a few commands and the way it behaves is easy to follow. However the twist of lost makes writing even basic programs a challenge and gives the language a lot of depth. There are techniques and strategies to learn, and pitfalls to avoid.

Plus it's just fun to play around with such a unique language.

# Zsh

zsh was learned for great good on December 22nd, 2021

Zsh is a Bourne shell derivative which apparently specialises in having far too many ways to do some things, of which the shortest is always inconvenient, and no obvious way to do a lot of other things. Thanks to its liberal forgiveness of errors, it is very abusable, which is a great feature for code golf and makes competing in it particularly fun.

• An awesome and practical interactive shell and scripting language, not just useful for golfing
• Often among the most concise of the practical languages used on CGCC, with an ELO of about 1050
• It's also very good at restricted source, especially for a non-esoteric language
• Documentation is occasionally hard to find, so I will be teaching you :)

# BQN

BQN was Learned for Great Good during the event on 13 October 2021

As a practical language, it might be best to only work with some of it for time reeasons.

• I enjoyed learning a bit of BQN for great good. Would you consider nominating it for Language of the Month? Oct 28 '21 at 19:32
• @DLosc I think this is a good idea, though I'm not sure I'm up to coordinating it. Oct 29 '21 at 13:54

# ///

/// was Learned for Great Good during the event on November 10th, 2021

A minimalist language based on string substitution. The only command is repeated string substitution with /pattern/replacement/. And yet... it's been proven Turing complete!

# Stack Cats

Stack Cats was learned for great good on January 5th, 2022.

All programs in Stack Cats are horizontally symmetric and each command either undoes itself or has another command that undoes it, which is pretty cool, although it makes nontrivial programs hard to write (although <(edoc)*(code)> can be used, I think (corrected by Aiden4)).

• The construct is <(edoc)*(code)>, or some similar abuse of (). Aug 13 '21 at 0:06
• @Aiden4 Fixed, thanks.
– user
Aug 13 '21 at 0:14

# Vyxal

Vyxal was learned for a great good during the event on January 19 2021

Ideally, we'd focus on the more prac-lang features (such as defined functions, control flow, variables, that sort of stuff) instead of the golfing features (such as compressed strings, niche elements, golfing tips, that sort of stuff).

# Scala

Scala was previously the language of the month for January (see that post for more detailed information on Scala). It blends OOP and FP into a concise, expressive package. While it has some advanced features that couldn't be learned in an hour, the basics are probably easy to grasp, especially those involving code golf, which is what we're most interested in here :). It's got an extensive standard library and lots of syntactic sugar, which are great for golf.

I (user) can help people out during the event, and anyone else who has some familiarity with Scala is encouraged to do so too.

# Desmos

It's an online graphing calculator, but you can still solve many mathematical/graphical coding challenges with it. It's interesting to play around with, that's for sure.

Also, only a few people use Desmos in code golf; I think more people should definitely try it out :D

Not actually too sure if Desmos should be nominated for LOTM or for this, so I decided to do both.

An event with this name just isn't complete without the language that started it all.

Haskell is a computer programming language. In particular, it is a polymorphically statically typed, lazy, purely functional language, quite different from most other programming languages. The language is named for Haskell Brooks Curry, whose work in mathematical logic serves as a foundation for functional languages. Haskell is based on the lambda calculus, hence the lambda we use as a logo.

# BitCycle

A 2D, queue-based language where programs manipulate streams of bits flowing around the playfield. Think ><> meets Bitwise Cyclic Tag. Since it's so low-level, it makes all but the simplest challenges tricky to solve, which I think fits well with the CMC format of this event. And boy is it satisfying to watch the bits flow through your code once you get it working!

So far, Jo King and I are the only ones who've posted answers in BitCycle. (Jo King is much better at it than I am.) I'd love to introduce it to more people.

• Not anymore :) And I agree, it is very satisfying. Aug 13 '21 at 22:31

# Flobnar

Flobnar is the lesser known sibling of the Befunge family of languages, described by the creator as "[getting] Befunge-93 drunk to see what would happen". It is a semi-functional 2D language that is many respects similar, but not quite the same as Befunge. It is more akin to my own language Cascade (previously featured on LYAL), in that many operators will split the execution and evaluate their respective branches separately.

A Rust interpreter is available on TIO.

# F#

Its syntax is pretty lightweight, like Haskell's (although it looks like it's less concise). Looks like it'd be an interesting language to golf in, but there aren't a lot of F# answers here.

# tinylisp

A minimalistic Lisp dialect. It has only 16 builtins, which makes it easy to pick up for a one-day chat event. But because Lisp is powerful, this small set of builtins can be combined to solve a wide variety of tasks. tinylisp is particularly good at functional programming and list manipulation.

# Jelly

• One concern I have about Jelly (and APL) is that there are already rooms dedicated to learning the languages. That's not to say they're a bad idea, but just something to consider Aug 12 '21 at 19:20

# Lean Mean Bean Machine

Lean Mean Bean Machine, or LMBM is a 2D language inspired by Plinko machines. It's a small language with a reasonable amount of symbols (or "pegs"), enough that trivial tasks are still trivial, but not so much that non-trivial tasks aren't interesting.

It's also available on TIO!, however that version is slightly outdated in that | has slightly different behavior, the o peg is broken, and the , and . pegs don't exist.

# Forte

Forte is a weird and wonderful language with BASIC-like syntax and an execution model based on redefining integers. It has no conditional or looping constructs; to get conditional or looping behavior, you have to redefine the line numbers your program uses.

I'm no expert on Forte, but I can teach the basics. It's also got a good Esolangs article, and it's on TIO. I think it would be really fun for LYAL.

# Piet

Piet is an esoteric language in which programs are images. For example, here's a Hello World program:

This unusual format means Piet is a bit awkward to score for code golf, and it hasn't been used much on this site. Such rules considerations shouldn't be an issue for learning it in chat, though. I love the idea of a colorful programming language, and I'd like to learn more about it.

# Malbolge

This is the hardest programming language. Still learnable, but hard to program in. I can teach the basics.