← LibraryBlog · Business

Weird Languages

Paul Graham
✓ Source-grounded

To unlock the full potential of programming, you must move beyond 'glue' programming and explore 'weird' languages that offer unique ways to express and think about problems.

Read the original

In one sentence

To truly understand what programming can do, you must move beyond the "glue" of popular languages and explore "weird" languages that enable you to express—and therefore think—about problems in ways that are impossible in mainstream environments.

Why read this (and who it's for)

This is for the "competent" programmer who feels they have mastered the standard stack but finds themselves hitting a ceiling of expression. It solves the problem of intellectual plateaus: the realization that most of what we do is just arranging existing library calls. By reading this, you will learn how to identify the "0.5%" of programming that constitutes true innovation and how to use "weird" languages as a tool for expanding your mental models of what is possible.

The big idea

Most programming is a "glue" activity. Graham argues that 99.5% of what we do involves calling library functions and stitching them together. Because all popular languages are equally good at this, it is easy to spend an entire career operating within the "intersection" of popular languages without ever exploring the true boundaries of what programming can achieve.

The "weird" 0.5% of programming is where the real interest lies. "Weird" languages—those that are difficult to use or unconventional—are not weird by accident. Their weirdness is a signal that they allow for a form of programming that goes beyond simple glue-work. They offer a space of "program-manipulating techniques" that are not yet fully explored.

The ultimate goal of exploring these languages is not just to learn a new syntax. It is to learn how to "say" things you couldn't say before. By learning to express complex ideas in a weird language, you fundamentally change how you think about problems, expanding your conceptual reach beyond the limitations of common, "safe" programming.

Key ideas

The 99.5/0.5 Split

The Intersection of Popularity

Intentional Weirdness

Language as a Solution

Linguistic Expansion of Thought

Frameworks & tools

The "Weird Language" Expansion Framework

Use this to break out of the "glue" programming plateau:

  1. Identify a "Weird" Language: Find a language that is considered "weird" by the mainstream but has a community of smart, capable users.
  2. Identify the Intersection: Determine what you can currently say in your "normal" languages (the glue).
  3. Find the "Impossible" Expressions: Identify what you can say in the weird language that would be "impossibly inconvenient" to say in your normal languages.
  4. Internalize the New Logic: Practice expressing those specific ideas until they become part of your mental toolkit for solving problems.

Memorable examples & stories

Lisp Macros

Lisp macros are the quintessential example of "weird" programming. They allow you to manipulate the program itself, enabling you to build a custom language for a specific problem. Lesson: Use macros to create a domain-specific language (DSL) when the standard library feels like it's fighting your problem.

The "Intersection" of Popularity

Graham describes the space where most programmers live—the area where all popular languages overlap in their ability to glue library calls together. Lesson: Awareness of this "safe" zone is necessary to recognize when you are merely performing glue-work rather than solving a core architectural problem.

Key quotes

"99.5% of programming consists of gluing together calls to library functions. All popular languages are equally good at this." Why it matters: This identifies the "trap" of modern development—the ease of glue-work can mask a lack of deep architectural exploration.

"The weirdness of the good ones usually implies the existence of some form of programming that's not just the usual gluing together of library calls." Why it matters: It reframes "weirdness" as a feature of high-leverage programming.

"In the process of learning how to say things you couldn't previously say, you'll probably be learning how to think things you couldn't previously think." Why it matters: This is the ultimate "why"—the goal is cognitive expansion, not just a new skill.

How to apply it

This week

Ongoing

Common pitfalls

Connects to

If you remember only three things

Internalize it

Fidelity note

This summary is grounded in the provided text. Because the original text is a very short essay (approx. 250 words), the summary focuses on the logical implications of Graham's arguments rather than a wide breadth of external topics. The "Common Pitfalls" and "Connects to" sections are derived from the logical conclusions of his argument regarding the "Glue" vs. "Core" distinction.

Keep going — related reads

More from Paul Graham