March 24, 2026
Penguins vs. pandas vs. Namibia?!
Data Manipulation in Clojure Compared to R and Python
Clojure stans hype the penguins while skeptics yell “Namibia alert”
TLDR: A new post compares Clojure’s Tablecloth with R and Python tools on a penguin dataset, showing similar basics across languages. Commenters split between praising Clojure’s clean, immutable feel and warning about adoption hurdles and the “NA eats Namibia” gotcha—fueling a lively, teachable clash of styles and ecosystem realities.
A side‑by‑side showdown of data tricks just dropped, pitting Clojure’s Tablecloth against R’s tidyverse and Python’s pandas/polars on the adorable Palmer Penguins. The post walks through reading a CSV of penguins, peeking at columns, and sorting rows—basic stuff—but the comments turned it into a soap opera. One camp is swooning over Clojure’s clean, immutable style (think “no surprise changes” rules), calling it the sleeper hit for data wrangling. Another camp says: calm down, pandas and polars can be written immutably too, and anyway Clojure’s real issue isn’t the code—it’s adoption.
The loudest take came from a veteran who insists Clojure is amazing for transforming data, while soumyaskartha laments it “never got the data science crowd,” blaming distribution over tech. Then mharrison enters with a counterpunch: “good pandas/polars can be immutable too.” But the comedy crown goes to olivia-banks, who drops the “Namibia problem”: if “NA” (often used for “missing”) is auto‑treated as empty, what happens to the country Namibia? Cue penguin memes about countries disappearing into the void. Meanwhile QubridAI frames it as a culture clash—functional vs. imperative (step‑by‑step) styles—turning a simple penguin dataset into a philosophy debate. Verdict? The post teaches the basics, but the crowd is still arguing over hype, habits, and whether “NA” eats nations.
Key Points
- •The post previews a course (co-developed with Daniel Slutsky) that translates common data science tasks into Clojure.
- •It compares Clojure/tablecloth with R (tidyverse/dplyr, readr), Python (Pandas), and Polars using the same dataset.
- •The Palmer Penguins dataset is provided as a CSV from a public URL to standardize comparisons.
- •Missing-value handling is detailed: tablecloth treats "NA" as missing by default; readr requires na="NA"; Pandas already recognizes "NA"; Polars uses null_values="NA".
- •Basic exploration operations (head, column names, select/filter/order) are shown side-by-side across the four libraries.