/Language Design

Survey Of System Languages 2024

tl;dr: In case you missed it, there’s a whole new generation of low-level programming languages being created right now. Rust demonstrated vividly in 2016 that there is a massive unmet need in this space, and it has spawned a bunch of successor languages, though none of them have really hit the relative big-time like Rust has. I’m one of those programmers that has spent 20 years or so asking “can we please do low-level code in anything besides C and C++?” so I wanted to take an actual look at the languages I know about and do a bit of compare-and-contrast.

featured in #576


Why Numbering Should Start At Zero

- Edsger Dijkstra tl;dr: "The above has been triggered by a recent incident, when, in an emotional outburst, one of my mathematical colleagues at the University -not a computing scientist- accused a number of younger computing scientists of 'pedantry' because -as they do by habit- they started numbering at zero."

featured in #569


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