frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Why I ever wrote Clojure

https://thesoftwarephilosopher.com/blog/2025-05-03-why-i-ever-wrote-clojure.html
89•sbjs•11mo ago

Comments

daveliepmann•11mo ago
>I suspect this is the real reason Clojure was created, I bet Rich was just really bored.

I notice too that a noticeable number of people pick up Clojure because it's new and shiny. As a longtime Clojurian I find that attitude can be disappointing to run into, like when you realize a growing friendship will die because they're not serious about living in your city.

I don't claim to know the man but the reasons Rich wanted Clojure are quite concrete, well documented, and rational. Java programs of the time were a particularly heinous form of OOP; we should not be surprised that a clever programmer would grow a preference for a dynamic, functional-first style. He found lisp superior (in interactivity, expressiveness, yadda yadda) and wanted to use it professionally.

To work in lisp required delivering something indistinguishable from a JAR (or other mainstream proglang executable). He had the realization that without immutable data structures baked into the language he'd always be subject to Other People's State.

If you think about these points logically they lead pretty straightforwardly to creating a (pragmatically) functional, dynamic, hosted lisp.

edem•11mo ago
he said somewhere that he was inspired by Whiteheas's book "Process and Reality"
sesm•11mo ago
That was in a talk called "Are we there yet?" where he explains Clojure's time model.
fulafel•11mo ago
Online version: https://archive.org/details/processreality0000alfr

Author is Alfred North Whitehead, the mathematician & philosopher.

dunk010•11mo ago
I distinctly remember in one of his talks he said words to the effect of “I wrote corporate C++ and Java for years and eventually realised I had to do something else, or else quit the industry”. So he took a year long sabbatical and created Clojure.
sbjs•11mo ago
I guess that confirms my theory.
nextos•11mo ago
Rick wrote jfli, a Java foreign language interface for Common Lisp, before working on Clojure. He was a seasoned lisper, and he wanted to do something both modern and practical.

It's very interesting to go through the bookshelf he read during his sabatical. He was inspired by many languages aside from CL, including Mozart/Oz, AspectJ, and Prolog.

The bookshelf list was originally on Amazon, committed by Rich, but now behind a login wall. However, a Goodreads clone is easy to access: https://www.goodreads.com/list/show/137472.Rich_Hickey_s_Clo...

daveliepmann•11mo ago
He didn't mean he'd quit out of boredom, he meant he'd quit out of frustration with proglangs that bite you in the ass when writing e.g. concurrent programs
zerr•11mo ago
Why not quite the niche though? Clojure doesn't make writing corporate CRUD apps enjoyable.
slowmovintarget•11mo ago
Incorrect.
epolanski•11mo ago
I don't think the particular niche matters, eventually everything becomes being a mundane job.

I know few people that made it in shiny businesses (Serie A and Champions League players like Fabio Liverani and Simone Pepe, or Massimiliano Rosolino swimming gold metal at Olympics) and they all absolutely either hated or found 99.9% of their career an endless marathon of mundane boring activities.

I'm not saying there aren't plenty of exceptions of people that like their job, and jobs that may make it easier, but it looks to me that most of people find their job mundane and boring most of the time.

zerr•11mo ago
Agree. Although, as opposed to physical performance activities, be it sports or music, where one of the key activities is to repeat the same thing thousand times, in software, we strive towards not repeating the same thing.
daveliepmann•11mo ago
He wasn't writing corporate CRUD apps, he was working on systems like radio broadcasting, voting machines, and Datomic, which involve significant concurrency challenges.
zerr•11mo ago
He did so much marketing that I believe he wanted to make a consulting business out of it from the day one.
daxfohl•11mo ago
As verbose as Java is, it was even worse 20 years ago. If Kotlin, or C# 3.5+ were the OOP lingua francas at the time, maybe there would have been less need to create something else.

But still, "why not"? The first "alt-lang" I remember was "boo", on the dotnet platform. IDK if they actually meant to popularize it, but it had some cool features C# (and J#) didn't have, so, why not?

kgwxd•11mo ago
I believe Clojure was written to write corpo software that is far more complicated that what most corpo devs are writing. It's just as boring to write basic CRUD apps in any language.
frou_dh•11mo ago
> I suspect this is the real reason Clojure was created, I bet Rich was just really bored.

Well he spelled out the motivations in numerous early presentations so I don't think he'd take kindly to the implication they were BS.

I remember a funny quote along the lines of, he felt the concurrent software he'd already written in C++ and Java had required "He-Man" levels of perspiration to actually get correct.

runeblaze•11mo ago
While I agree with the boredom premise (I was also bored!), the practicality of Clojure was also very important. In fact if I were to deploy something to prod today that is FP, then I either use Scala or Clojure.

Fintech benefits from concurrency, immutability and all, so obviously there is much more nuance to "why fintech uses Clojure".

daxfohl•11mo ago
Doesn't everyone benefit from those things? I didn't follow the fintech call-out here. Is fintech really that much different from other fields? I worked in it for a couple years and the only big difference I saw is how much of a pain all the regulatory hurdles are.
runeblaze•11mo ago
Yep my phrasing was not the best :X. You might know better ("couple years"). However my anecdotal observation is that the end result is that fintech drifts FP (heavy concurrency + immutability, ledgers and all) than your "average" tech. I genuinely don't know why, maybe correctness guarantees and ledgers are just so important.
daxfohl•11mo ago
FWIW I was mostly on the compliance side, so didn't have all that much direct exposure to the transaction side of things. But from the exposure I did have, I didn't see a huge difference. A transaction is a transaction. And the transactions were at the DB layer, so I wouldn't think the atomicity primitives built into the Clojure language would be all that useful.

Like anything, the middle tier should be largely stateless anyway, so using Clojure atomicity primitives in business logic may even be an anti-pattern.

Shoop•11mo ago
> I suspect this is the real reason Clojure was created, I bet Rich was just really bored.

Rich has written about the history and motivation behind Clojure here: https://dl.acm.org/doi/pdf/10.1145/3386321

teodorlu•11mo ago
History of Clojure is also available in video:

https://youtube.com/watch?v=nD-QHbRWcoM

bryancoxwell•11mo ago
I’ve watched quite a few of Rich Hickey’s talks and I really do not get the feeling that boredom was a driving factor in his decision to create Clojure
rads•11mo ago
Such a low quality article. The whole comment thread is just going to be about the flamebait of "I bet Rich was just really bored". Instead, the author could have listed the reasons they actually "loved it, and by the end I hated it", which would have led to an interesting discussion.
zem•11mo ago
I think it's unfortunate they threw the bit about hickey in there; the part about a shiny new language helping relieve the tedium of enterprise software was a good one
sbjs•11mo ago
I thought it was self explanatory. It had new idioms I had not yet learned and internalized, so I fully absorbed it. When that was finished, I needed something else to do the same thing with. It's like listening to a song on repeat 10-100 times (depending on the song) when you first hear it. You get everything you can out of it and move on when it's empty.
rads•11mo ago
What was the tipping point where you decided you got everything you could from learning Clojure and it was time to move on?
sbjs•11mo ago
Can't remember, was like 10 years ago. But basically after I finished mastering the last feature I needed to, probably macros.
whateveracct•11mo ago
I found Clojure to be a natural next step after I learned Scheme in my university schooling. The built in data structures blew my mind.
phyzome•11mo ago
Learning new things is great, sure!

But why speculate on Rich's motivations? He has spoken extensively on the subject. (Hint: It's not because he was bored.)

fulafel•11mo ago
Isn't the draw of mathematics the same way for lots of math-heads, they aren't necessarily interested in how meaningful real-world problems they are solving at the end.

Not sure if Clojure is that special here, it's probably the same with other appealing programming languages that have cultures distinct from default enterprise PL cultures.

inopinatus•11mo ago
This somehow reminds me of that time Jude Law explained to an interviewer that he is very good looking and therefore had to avoid roles for very good looking people in order to be taken seriously as an actor.
sshkuan•11mo ago
I suspect this is the real reason you wrote this, I bet you were just really bored.

That aside, I got into Clojure because churn everywhere else is exhausting. It's pragmatic with interop, you can use with the new shiny thing without leaving your garden or losing your sanity.

EDIT: you must have forgotten how bad (mostly) it is everywhere else.

no_wizard•11mo ago
My biggest contention with the article is around writing enterprise software

I find solving business problems exciting. I didn’t really get into this business to purely write code or only work with novel technologies. I got into to empower others to do things they otherwise wouldn’t, couldn’t, or didn’t think to do.

To me, the language I work with is such a small slice of the pie. The problems don’t even have to be novel, I simply like approaching a problem and solving it well, and hearing the feedback about how it helps.

daxfohl•11mo ago
I've gotten there, but only after about 25 years in the industry. I think when you're just starting out, you should be excited about different technologies and looking for excuses to try them out.
pgt•11mo ago
I think he's right, but it's fine. It's still progress.
rednafi•11mo ago
Relatable. I’ve been writing code for soulless corps for about seven years, and it can get exhausting. Add politics and the endless rat race for promotions, and you have a recipe for making good people either really bored or really unhappy.

I need the money to get by, but at the same time, it’s hard to get enthusiastic about writing yet another RPC service or RESTful CRUD. This is partly why ketamine-fueled principal engineers often decide to rearchitect the universe, add Rust to the network layer where it makes no sense, or go ham with SWIG interfaces.

A few things that have worked for me: switching stacks. I started in data science, moved to Python/Node backends, and then switched to distributed systems and databases using Go. Switching teams and companies can help, though more often you just end up trading one bad culture for another.

This is a hard problem to solve, and boredom is real. But the solution isn’t bringing in some funky, untested stuff just for the lolz. Too many teams allow engineers to make the stack look like a mandrill’s face and then suffer the consequences.

revskill•11mo ago
Crud is boring ?
froh•11mo ago
new languages are created to push the boundaries for manageable essential complexity, by reducing "accidental" complexity.

clojure's data structures for example enable simpler concurrent work on stupid enterprise data.

however.

I've seen favorite hot fancy XYZ bit rot in large enterprise code bases. the oh so bored original author long gone. boring architecture documentation missing. business critical underdocumented unmaintainable genius code. and I'll kneecap every greenhorn that tries to add such bored kid complexity in my vicinity.

get me right: rust and clojure and friends are great tools and you'll have my back if and where they are needed and add value. then we'll go all in. but no bored kid complexity. go and find yourselves some niche product companies, non enterprise, with hard tricky problems to solve and do genius programming there.

slowmovintarget•11mo ago
Clojure is burned-by-OOP simplicity, not bored-genius complexity.
froh•11mo ago
clojure is great! I was talking about introducing clojure/rust/whatever just for being bored.
perrygeo•11mo ago
It turns out Clojure is just a really good programming language, not a panacea. If you have to build soul-sucking software, it still sucks even in a great language. Technical cleverness isn't enough to distract you from a bullshit job forever.
senderista•11mo ago
interesting projects >> interesting tools

I’d rather work on an interesting technical problem in Java than a boring one in Haskell.

sbjs•11mo ago
To clarify, I don't mean that Rich didn't also have extremely good reasons to make Clojure, given he was using Java (and maybe C++) in 2007. They're not the best languages now, but they were so broken back then that they practically caused the language revolution that caused Clojure and Go and Node etc to flourish.
taylorallred•11mo ago
I connect with this article very deeply. There was a time when I came to a similar conclusion about rust. That is, its requirements for your code become a puzzle in themselves and make the job a little less boring but when the novelty wares off it’s not so fun. Avoiding boredom at work is a lifelong struggle of mine.

Endian wars and anti-portability: this again?

https://dalmatian.life/2026/04/03/endian-wars-and-anti-portability-this-again/
1•awilfox•3m ago•0 comments

Swift package AI inference engine generated from Rust crate

https://github.com/ondeinference/onde-swift
1•kampak212•4m ago•0 comments

Trump proposes steep cut to NASA budget as astronauts head for the Moon

https://arstechnica.com/space/2026/04/trump-proposes-steep-cut-to-nasa-budget-as-astronauts-head-...
2•whiteboardr•15m ago•0 comments

Mary Jo Foley: What the heck is going on with Microsoft lately?

https://www.geekwire.com/2026/mary-jo-foley-what-the-heck-is-going-on-with-microsoft-lately/
3•thunderbong•18m ago•0 comments

Quarto: An open-source scientific and technical publishing system

https://quarto.org/
1•ifh-hn•22m ago•0 comments

Systemd-free Modern Linux: artixlinux and dinit and labwc and noctalia shell

https://grigio.org/the-best-systemd-free-modern-linux-artixlinux-dinit-labwc-noctalia-shell/
1•grigio•23m ago•0 comments

SiftQL – Drop a CSV, write SQL, get charts. 100% in the browser

https://siftql.com
2•9vcm5dvdfj•25m ago•0 comments

Show HN: GraphReFly – Reactive graph protocol for human and LLM co-operation

https://graphrefly.dev/
1•clfhhc•25m ago•0 comments

Four things we'd need to put data centers in space

https://www.technologyreview.com/2026/04/03/1135073/four-things-wed-need-to-put-data-centers-in-s...
2•joozio•25m ago•0 comments

OpenClaw gives users yet another reason to be freaked out about security

https://arstechnica.com/security/2026/04/heres-why-its-prudent-for-openclaw-users-to-assume-compr...
3•joozio•31m ago•0 comments

Apple at 50, blind people and our allies shaping Apple accessibility innovation

https://nfb.org/resources/publications-and-media/access-on-podcast/apple-50-blind-people-and-our-...
1•sholladay•32m ago•1 comments

Show HN: Anos – a hand-written ~100KiB microkernel for x86-64 and RISC-V

https://github.com/roscopeco/anos
1•noone_youknow•35m ago•0 comments

The Web Is an Antitrust Wedge

https://infrequently.org/2026/04/the-web-is-an-antitrust-wedge/
3•genericlemon24•39m ago•0 comments

GitHub Watch

https://rohanadwankar.github.io/github_watch/
2•jonbaer•43m ago•0 comments

Musk asks SpaceX IPO banks to buy Grok AI subscriptions, NYT reports

https://finance.yahoo.com/markets/stocks/articles/musk-asks-spacex-ipo-banks-181543226.html
2•alex_suzuki•48m ago•0 comments

How to take down a US F-35 over Iran? Chinese engineer's prophetic tutorial

https://www.scmp.com/news/china/science/article/3348619/how-take-down-us-f-35-over-iran-chinese-e...
3•sixhobbits•53m ago•0 comments

Show HN: RemembrallMCP – code dependency graph for agents and memory

https://github.com/cdnsteve/remembrallmcp
2•cdnsteve•53m ago•0 comments

Sheets Spreadsheets in Your Terminal

https://github.com/maaslalani/sheets
2•_____k•59m ago•1 comments

Archaeologists discover wreck of Danish warship sunk by Nelson 225 years ago

https://www.theguardian.com/science/2026/apr/02/archaeologists-discover-wreck-danish-warship-sunk...
4•zeristor•59m ago•1 comments

Show HN: Design to Code

https://www.absl.design/
2•absolute7•1h ago•0 comments

FDA had already warned the self-proclaimed 'fastest growing company in history'

https://www.drugdiscoverytrends.com/the-new-york-times-spotlighted-medvi-the-fda-had-already-warn...
2•thm•1h ago•0 comments

Emotion concepts and their function in a large language model

https://www.anthropic.com/research/emotion-concepts-function
22•dnw•1h ago•5 comments

Show HN: Cursor Cmd+K like command generator for all terminals

https://github.com/64bit/commandOK
3•gigapotential•1h ago•0 comments

Anyone switch accounts for Claude Code, did you lose everything?

2•dpark2026•1h ago•0 comments

¡Haciendo Historia Celebrating PyCon US's First-Ever Spanish-Language Keynote

https://pycon.blogspot.com/2026/04/haciendo-historia-celebrating-pycon-uss.html
3•lumpa•1h ago•0 comments

Auralo: An nice new Radio App check it out

https://testflight.apple.com/join/mEtdrzZ5
2•marc0janssen•1h ago•2 comments

Trump fires Pam Bondi as US Attorney General

https://www.reuters.com/world/trump-fires-pam-bondi-us-attorney-general-cnn-fox-2026-04-02/
5•mgh2•1h ago•3 comments

AgentShift–One command migrates your OpenClaw agents to NemoClaw

https://agentshift.sh/
1•ogkranthi•1h ago•0 comments

Uber engineer alleges hostile 'boys club' culture, firing after cancer leave

https://archive.org/details/10127280
7•nickvec•1h ago•0 comments

Spath and Splan

https://sumato.ai/posts/2026-04-04-spath-and-splan.html
2•jasonmoo•1h ago•0 comments