/Language Design

Programming Languages That Blew My Mind

- David Teller tl;dr: “Ranking by order in which I discovered these languages. In most cases, I’m going to attach features to languages that were not the first language to have such features. It’s not meant to be a misattribution, just to showcase how I was exposed to such features.”

featured in #564


How To Build A Query Language In Python

tl;dr: “I walk through how to build a query language in Python. No required knowledge of query languages is required to follow this guide. You will find this article easier to understand if you have some knowledge of trees.”

featured in #554


You Should Make A New Programming Language

- Nicole Tietz-Sokolskaya tl;dr: “You use a programming language as a tool of thought even when you're away from the keyboard. This makes it ripe for learning. You will learn a lot if you make a new programming language.” Notably, you will learn about grammar, language design, parsing and runtime execution. Nicole shares a couple of easy ways to get started. 

featured in #541


Toolbox Languages

- Hillel Wayne tl;dr: “A toolbox language is a programming language that’s good at solving problems without requiring third party packages. My default toolbox languages are Python and shell scripts, which you probably already know about. Here are some of my more obscure ones.” Hillel guides us through several languages along with their useful features. 

featured in #533


In Praise Of Nushell

- Lars Yencken tl;dr: “Nushell is a non-POSIX shell implemented in Rust and based around the concept of structured data. Non-POSIX means that everyday commands like ls, mkdir, find and rm have been redefined to work better with structured data, and that things like environment variables are configured differently to common shells like bash and zsh. Having to re-learn everyday things is big cost, but Nushell comes with a lot of big benefits that outweigh these costs.” Lars gives us an introduction. 

featured in #493


Planner Programming Blows My Mind

- Hillel Wayne tl;dr: “Picat is a research language intended to combine logic programming, imperative programming, and constraint solving. I originally learned it to help with vacation scheduling but soon discovered its planner module, which is one of the most fascinating programming models I’ve ever seen.”

featured in #491


Maybe Everything Is A Coroutine

- Adam Nelson tl;dr: Adam was inspired to develop a language in which all functions are coroutines, which has several cool features: (1) A type system in which coroutines are basically state machines. (2) A typed (algebraic) effect system based on coroutines. (3) A powerful exception system based on simple sum types. And more. 

featured in #490


Turing Completeness

- Vijay Ramamurthy tl;dr: Polar, a language designed for permissions, is not Turing complete. That's a good thing because you need your permissions queries to be low latency and not run forever. Read our proof on why Polar isn't Turing complete and why that's a good thing.

featured in #481


Name Before Type: Why ‘age int’ Is Better Than ‘int age’

- Ben Hoyt tl;dr: Ben advocates for placing a variable's name before its type in programming language declarations, as seen in languages like Go and Rust. The author argues that the name holds more semantic meaning and should be more prominent, enhancing code readability. Examples from Go illustrate the benefits of this approach. The author calls for future language creators to adopt the name-before-type syntax for clarity and understanding.

featured in #437


Lua: The Little Language That Could

- Matt Blewitt tl;dr: “Lua is probably my favourite “little language” — a language designed to have low cognitive load, and be easy to learn and use. It’s embedded in a lot of software, such as Redis. It’s also used as a scripting language in games such as World of Warcraft and Roblox via Luau. This post is a brief love letter to the language, with some examples of why I like it so much.”

featured in #418