Why Facebook chose Haskell, a functional programming language that ranks 23rd in overall popularity on Github, to build its complex anti-spam system
Facebook's New Spam-Killer Hints at the Future of Coding — Louis Brandy pauses before answering, needing some extra time to choose his words.
Context & Ripple Effects
In 2015, Facebook engineer Louis Brandy explained why the company built its anti-spam system on Haskell — a functional language sitting just 23rd in GitHub popularity rather than one of the mainstream options. The choice framed a recurring question at Facebook: when correctness at massive scale matters more than ecosystem size, which languages win?
The company has kept answering that question with non-mainstream picks. It later built Zoncolan, a static analysis platform scanning 100M lines of code, and by 2016 was using Rust before formally joining the Rust Foundation alongside Amazon, Google, Microsoft, and others.
First-order effects
- Engineers on Facebook's anti-spam effort had to work in a functional paradigm far outside GitHub's top-20 habits, making internal training and tooling — not external talent pools — the immediate bottleneck.
- Spam defense got a type-system-level safety net: Haskell's compiler catches whole classes of bugs before deployment, reducing the surface that systems like SapFix would otherwise have to patch after the fact.
Second-order effects
- A production win at Facebook's scale gave other platforms permission to treat niche languages as viable for core infrastructure, reinforcing the pattern behind Facebook's later Rust Foundation membership alongside Amazon, Google, Huawei, Microsoft, and Mozilla.
- Tooling investment followed the language choice — the same instinct produced Zoncolan, which scans Facebook's entire 100M-line codebase in under 30 minutes, showing how non-mainstream stacks push companies to build their own verification infrastructure.
Third-order effects
- If the pattern holds — correctness-critical systems pulling operators toward functional and memory-safe languages regardless of GitHub rank — language selection shifts from popularity contests to fit-for-purpose decisions, with big platforms as proof points rather than the ranking charts.
The trend: Large platforms are increasingly adopting niche functional and systems languages like Haskell and Rust for high-stakes infrastructure, decoupling production language choice from raw GitHub popularity.