/Language Design

Fixing The Next 10,000 Aliasing Bugs

tl;dr: The author highlights 3 cases studies that reflect a common bug - “an invariant was violated thanks to multiple aliased references to the same value… The problem comes when there are multiple references to the relevant data, and another reference observes this temporarily violated invariant.” The author discusses how this could inform future language design decisions and the emergence of alias types.

featured in #395


A Few Programming Language Features I’d Like To See

- Neil Madden tl;dr: "I’ve long thought it was time for a bit more experimentalism to return to programming language design, and not just for type systems! Maybe these ideas will inspire you to think up some whacky new programming languages." Neil discusses E’s quasi-literal syntax, Datalog / Prolog as a sub-language, Teleo-Reactive programs, and more.

featured in #382


Microfeatures I'd Like To See In More Languages

tl;dr: "Since I spend a lot of time in niche obscure languages, I also encounter a lot of cool QoL features that most people might not have seen before. Here’s a few of them!" Hillel discusses: (1) Number representations. (2) Balanced string literals. (3) Generalized update syntax. (4) The Chapel power hour. And more.

featured in #378


An Informal Comparison Of Several Programming Languages

- Gabe Durazo tl;dr: "This repository implements the same simple backend API in a variety of languages. It's just a personal project of mine to get a feel for the languages, and shouldn't be taken too seriously. So far I've built it in C#, Typescript (Deno), Elixir, Go, Rust, and Scala." Gabe discusses his thoughts on each implementation. 

featured in #363


Software Mimicry

- Hillel Wayne tl;dr: "Mimicry is when software X reimplements at a higher level a core feature of software Y. The produced facsimile has some, but not all, of the same properties, enough to “look like” it’s the same thing but missing many of the nuances. This exists in every kind of software. One language can mimic another, a library can mimic a language, a database engine can mimic a product, etc."

featured in #348


Wrong By Default

- Kevin Cox tl;dr: "The moral of the story is that the best way to avoid bugs is to make them difficult to write. Ideally make bugs harder to write than correct code. defer and try-with-resources are “wrong by default” and require explicit work on behalf of the programmer to become correct."

featured in #318


In Defense Of Complicated Programming Languages

- Jakob Nybo Nissen tl;dr: "All the language features in the examples above - classes, advanced types, and the borrow checker - have an important trait in common: They all feel like they emerge spontaneously from existing code independently of whether the language designer has thought about them. In that sense, they are the best kind of feature; instead of adding new things to worry about, they merely provide a vocabulary and tooling for dealing with already existing problems."

featured in #306


A Love Of Languages

tl;dr: "There is so much to learn, to experiment with, to experience. There are thousands of languages out there, each with their own story to tell, and their own way of telling that story. We should never settle for just one language or one way of doing something, because new languages and new approaches change how we view the world."

featured in #298


A Brief Introduction To Esoteric Languages

- Hillel Wayne tl;dr: Includes (1) Brainfuck, the most famous Esoteric language with a compiler of 240 bytes, (2) Shakespeare, a language designed to look like a Shakespeare play, (3) Piet, a visual programming language in the truest sense: every Piet program is an executable picture.

featured in #230


Hello World

- Drew DeVault tl;dr: Drew counts the number of syscalls a language performs when printing "Hello World." This should take 2 syscalls but, for most languages, there's a lot more happening under the hood.

featured in #168