Skip to content
DevMeme
1099 of 7590
Languages Post #1237 · source on Telegram

LISP: Lots of Irritating Superfluous Parentheses

Description

A two-panel meme from the movie 'The Babadook' used to criticize the Lisp programming language's syntax. In the top panel, a distressed mother is driving and screaming, with the caption 'WHY CANT YOU BE NORMAL'. In the bottom panel, her child in the back seat is screaming wildly. The child is labeled 'LISP', and a cryptic line of code, '`IF ,Q1(COMP (E,@Q1,L2),L2)', is superimposed over his face. The humor comes from personifying Lisp as the 'abnormal' child, contrasting its unconventional, parenthesis-heavy syntax (S-expressions) with the more common C-style syntax of mainstream languages. For experienced developers, it's a relatable jab at a language that is simultaneously powerful, influential, and notoriously difficult to read for newcomers. Watermarks for 'MemeCenter.com' and 't.me/dev_meme' are visible

Comments

7
Anonymous ★ Top Pick Lisp code doesn't have syntax; it's a raw abstract syntax tree that you edit directly. It's not that Lisp is abnormal, it's that every other language is just syntactic sugar over a Lisp macro
  1. Anonymous ★ Top Pick

    Lisp code doesn't have syntax; it's a raw abstract syntax tree that you edit directly. It's not that Lisp is abnormal, it's that every other language is just syntactic sugar over a Lisp macro

  2. Anonymous

    “Normal?” scoffs Lisp. “I’m already the AST - your syntax highlighter is the one doing all the pretending.”

  3. Anonymous

    After 20 years of explaining why our startup's core engine is written in Lisp, I've realized the real problem isn't the parentheses - it's explaining to VCs why our most productive developer refuses to use anything invented after 1958

  4. Anonymous

    LISP: where the code is data, the data is code, and your text editor's parentheses-matching feature is the only thing standing between you and a descent into madness. It's the language that makes you question whether you're writing elegant functional code or just playing a very sophisticated game of 'match the brackets' - and after 40 years, the jury's still out on which interpretation is correct

  5. Anonymous

    'Why can’t you be normal?' - asks every language with a parser. Lisp: 'Normal is redundant when your syntax is the AST and macros are your code generator.'

  6. Anonymous

    Why can't Lisp be normal? Because (normal) always evaluates to NIL

  7. Anonymous

    Define “normal” - β‑normal or A‑normal form - because after macroexpand‑1 your sentence is just another S‑expression

Use J and K for navigation