back

by iLemming·18d ago·view on hn ↗
You clearly and obviously have little or none of practical, genuine experience working with experienced Lispers, and driving your opinions from a book-read definitions rather from actual, battle-tested work.

Your line up of Lisp and Haskell next to one another is already telling - the two cultures can't be more different. Haskell culture historically have selected for people who enjoy theory for its own sake. Lisp culture genuinely prizes getting-shit-done attitude.

> What scales and works is simple and boring.

Java was exotic in 1996 and boring by 2006. If "boring" just means "widely adopted and familiar", then your notion just collapses to "what's popular is popular". True and absolutely pointless and empty.

I reckon, you're piggybacking on Dan McKinley's "Choose Boring Technology", but his point was that the innovation tokens are scarce. That is a good and true argument. But it's about organizational risk budgets, not language virtue. It says nothing about Haskell or Lisp being bad or impractical - it says being different is expensive, and you'd better be buying something with that expense. I personally disagree with that argument (in this case), because I have effectively proven that Lisp's bus factor is much smaller than even of Python or JS/TS, because modern Lisp dialects are far simpler and less convoluted and easier to train into. The experience difference and angle of opinions of two Python/JS experts can be dramatic. Having two Lispers talking "the same" language is far more plausible in practice. Not to mention that ROI from hiring a practicing Lisper (regardless of the business stack) more likely to exceed of a programmer without such knowledge.

Let me remind you that Python was considered a niche scripting toy at some point when it was the same age of [niche] Clojure today. It got boring by riding two waves that had nothing to do with the language design: web (Django/Flask) and then, decisively, being in the right place and time when scientific computing and ML needed a glue language.

Boring things survive by mass, inertia, and being unremarkable - COBOL endures because ripping it out of banks is too expensive, not because anyone loves it. Lisp survives by being remarkable - by smaller population who see the thing the majority can't, regenerating the flame across dialects out of conviction, not inertia.

What scales and works is boring, that is true. Lisp is not that, never will be, and doesn't care. What has enduring value survives regardless of adoption - that is Unix, SQL, lambda calculus itself. I'm sure you won't be arguing that any of these are impractical. Anyone can wholeheartedly accept every new rising and falling, boring COBOL and chase every new hype cycle, or just quietly keep feeding on truly everlasting ideas. Or, like in my case, nothing stands in your way of combining both - I use plenty of boring languages at work, and efficiently utilize Lisp for my personal computing. Because the darn thing just fucking works!

1 comments
> Lisp culture genuinely prizes getting-shit-done attitude.

SICP tells me otherwise.

SICP is not intended as a how-to-program manual, it attempts to lay the foundation for a big chunk of computer science. “How To Design Programs” might be a better choice for someone learning Scheme. (But SICP will turn some of the people on to CS as a discipline.)
Are you using a 42 year old book to find flaws in my argumentation? Let's talk real, contemporary numbers.

NuBank: from ~12M customers in 2019, grown to 25M in a year, then to 48M at IPO a year later, then to 114M in 2024, to 131M in 2025 - 991.67% growth within 6 years and still going. Not in theory, not conceptually, not because "SICP has told them". They did get-the-shit-done. Not acknowledging that Datomic and Clojure has something to do with this succes would be simply a dishonest gesture.

Walmart - the canonical "Clojure at scale" story. The eReceipts system processed every purchase across 5,000+ US stores plus online/mobile, built and maintained by just 8 developers. Architect Anthony Marcar's line after Black Friday: the system "handled its first Walmart Black Friday and came out without a scratch". They cited 5-10x less code than alternatives.

Apple - known for using Lisp for a long time.

Metabase - open-source BI. ~46k GitHub stars.

Amperity - customer data platform, "99% Clojure" - their own quote.

Netflix - been using Clojure since forever. Watch their talk from the last year's Conj. It's eye-opening on stability of complex systems.

Cisco - malware analysis platform. Multiple huge Clojure projects: IROH - Incident Response Orchestration Hub, CTIM/CTIA - Cisco Threat Intelligence Model and API, etc.

Braintree/PayPal - payments backend. CircleCI. Grammarly (this guys are on SBCL)

And that's just a short list of actual, real, profitable businesses built with and maintained using Lisp. I don't know what "SICP has told" you, but maybe you just need to look around, things have changed a bit since then.

I mean, both Scheme and CL have good libraries and a set of standards.
Okay, but what that has to do with preferring strong CS theoretical grounds vs. cutting corners to get-the-shit-done?

My initial point was about cultures - Haskelites are typically very smart, extremely mathy, and they'd often choose certain ways even if it takes them forever and requires reading and analyzing dozens of academic papers, just because "Galois was a genius and we can make this theory fit here, because then we can center infinite divs on infinitely large DOM entities...", then publishes a paper "Coequalizers for Vertical Alignment: A Comonadic Approach"

A Lisper would be like: "Ahem... I wrapped the whole thing in a macro. Yes, it evals a string. Yes, the string is generated by another macro. No, I will not be explaining it. It shipped Tuesday, it prints money, it works. Gotta go, kids need dinner.."

You forgot about HAKMEM under PDP10 assembly/ITS/MacLisp/Macsyma (these three/four ovelapped)
So, Haskell people smart, other people dumb?

Also, where do you go from "preferring strong CS theoretical grounds" to "cutting corners"? They don't have to be mutually exclusive.

That garbage collection that Haskell has? Guess where that came from. The whole "functions as data to pass around", guess where that came from. It was those pesky lispers on a Tuesday.

Edit: typo

> Haskell people smart, other people dumb?

Da hell you're talking about, friend? I said nothing about "people", or them being smart or dumb; just a difference in cultural stereotypes.

Now you're ironically "proving the point" I didn't make by saying some dumb shit and pulling me into this pit too. If I was actually smarter I'd probably just ignored it. Reminds me Billy Madison quote: "everyone in this room is now dumber for having listened to it. I award you no points, and may God have mercy on your soul."

>cultural stereotypes.

Again, check HAKMEM from ITS/Maclisp/PDP10's (The OS from Richard Stallman took all the ideas for GNU Emacs, the GPL license, the free software movemement and whatnot). Lisp itself accounts for tons of papers and innovation.

SICP, as beautiful and good as it is, is probably responsible for a large amount of the misconceptions and negative thoughts about Lisp. SICP isn't a Lisp book, it's a Scheme book, and the Scheme culture is at least as different to Lisp (Common Lisp and its ancestors all the way back to McCarthy) as Java is to Python.
I know both CL and Scheme, thanks. And both philosophies overlap a lot. Heck, there's an Scheme interpreter in PAIP as en exercise...

I'd woudn't consider SICP negative, the same with all the good CL books (Intro to Symbolic Computation, Paradigms of AI Programming...)

Both are the ur-examples on how to grasp the basic of CS well.