Software Needs Philosophers

Philippe Martin pmartin at
Sun May 21 20:48:53 CEST 2006

Xah Lee wrote:

> Software Needs Philosophers
> by Steve Yegge, 2006-04-15.
> Software needs philosophers.
> This thought has been nagging at me for a year now, and recently it's
> been growing like a tumor. One that plenty of folks on the 'net would
> love to see kill me.
> People don't put much stock in philosophers these days. The popular
> impression of philosophy is that it's just rhetoric, just frivolous
> debating about stuff that can never properly be answered. ?Spare me
> the philosophy; let's stick to the facts!?
> The funny thing is, it's philosophers who gave us the ability to think
> rationally, to stick to the facts. If it weren't for the work of
> countless philosophers, facts would still be getting people tortured
> and killed for discovering and sharing them.
> Does it ever strike you as just a teeny bit odd that after a brief
> period where philosophy flourished, from maybe 400 B.C.E. to ~100 C.E.,
> we went through a follow-on period of well over one thousand five
> hundred years during which the Roman Catholic Church enslaved
> everyone's minds and killed anyone who dared think differently?
> What's weirder is that we tend to pretend it didn't really happen. We
> like to just skip right over the dominance of religion over our minds
> for a hundred generations, and think of religion today as a kindly old
> grandpa who's just looking out for us kids. No harm, no foul. Let
> bygones be bygones. Sure, there were massacres and crusades and
> genocides and torture chambers with teeth grinding and eyes bleeding
> and intestines torn out in the name of God. But we were all just kids
> then, right? Nobody does that kind of thing today, at least not in
> civilized countries.
> We try not to think about the uncivilized ones.
> It was philosophers that got us out of that Dark Ages mess, and no
> small number of them lost their lives in doing so. And today, the
> philosophy majors are the butts of the most jokes, because after the
> philosophers succeeded in opening our minds, we forgot why we needed
> them.
> And if we stop to think about it at all, we think that it was other
> people, people who are very unlike us, who committed those atrocities
> in the name of Faith (regardless of whether it's faith in a god, or in
> a political party, or any other form of mind control carried out by
> force).
> We like to think we live in an enlightened age, but we don't. Humans
> haven't changed significantly in 10,000 years. We're still killing and
> torturing each other. It's apparently incredibly easy to decide to kill
> someone and then do it. Happens every day, all around the world.
> Torture, too.
> But those people are just people. If they had been born down the street
> from you, they'd have gone to school with you, been friends with you,
> learned to program with you, written blogs and comments, never tortured
> or killed anyone in the name of an idea. They'd have been you. Which
> means they are you; you just got lucky in where you were born.
> One of the commenters on my last blog entry expressed the fervent wish
> that I drop dead. To be sure, they qualified it with ?on the
> internet?. But if they really feel that way, especially about
> something as hilariously and absurdly unimportant in the Grand Scheme
> as whether the Lisp programming language has any acceptable
> implementations, then what does it say about us?
> Everyone who commented angrily on that blog entry was caught. I caught
> you, anonymous or not, being a religious fanatic. The only
> ?negative? commenter who doesn't appear to be a religious zombie
> was Paul Costanza (ironic, since he claims to be the opinionated one),
> who relegated his comments to pedantic technical corrections. They're
> welcome, of course; I'm always looking to correct any technical
> misconceptions I harbor. But they're moot, since even if I was wrong
> about every single technical point I brought up in that entry, my
> overall point ? Lisp is not an acceptable Lisp ? remains largely
> uncontested by the commenters.
> Some of them just don't get it, which is fine; no harm in that. If
> you've been using Lisp for years and years, and you've written books
> and articles and zillions of lines of Lisp code, then you're unlikely
> to remember anything about what it's like coming to Lisp for the first
> time. They're religious because they've forgotten what it's like to be
> a skeptic.
> But make no mistake; a substantial percentage of people who take a side
> in any programming language discussion that devolves into a flamewar
> know exactly what the other side means, and they want to invoke the
> Ultimate Censorship: drop dead! Killing someone, after all, is one of
> the best ways to silence them. You also have to burn all their
> writings, which is getting harder these days; hence the increased
> vehemence on the 'net.
> Those of you who've followed what I've written over the past year or so
> know where I'm going. I'm taking a stand, all right, and it's a very
> definite one. I'm finding myself drawn inexorably towards a single
> goal: stamping out technological religion, because I'm frigging tired
> of not being able to stick to the facts.
> FACT: Java has no first-class functions and no macros. This results in
> warped code that hacks around the problem, and as the code base grows,
> it takes on a definite, ugly shape, one that's utterly unique to Java.
> Lisp people can see this clear as day. So can Python folks, so can Ruby
> folks. Java people flip out, and say ?macros are too much power?,
> or ?what do u mean i dont understand u? or ?fuck you, you jerk,
> Lisp will NEVER win?.
> You think I don't hear ALL that, and much more, in the hate mail I get
> every day?
> I sure wouldn't want to be alone with a Java fanatic in a medieval
> torture chamber, because God only knows what they're capable of.
> Turn the mirror towards Python, and what happens? Funny, but the Java
> folks will mail me saying: ?yeah, I've always known I detested
> Python, and you really nailed exactly why. Thanks!? Meanwhile, Python
> folks are literally frothing at the mouth, looking for the ?Kill That
> Bastard? key on their 101-key keyboards.
> I turned the mirror towards Lisp yesterday. Had to go to the bathroom
> like nobody's business, and my wife was expecting me home any minute,
> so I rushed it out: just a few thoughts here and there. So the Gorgon
> only caught the tiniest glimpse of itself, but hell evidently hath no
> fury like that of a Lisper scorned, and all that.
> It doesn't matter that I rushed it out. I'm glad I did; spending any
> more time on it, trying to get it ?right? by looking up useless
> factoids like how you can override length's non-polymorphicness with
> some weird setting (when it plainly should just be the default), would
> have had the exact same net effect: Lisp zealots would have found some
> way to turn it into a flamewar. And I'd have been out 2 or 3 more
> hours.
> Let's call it a troll, then, because it was poorly researched; it was
> just some months-old recollections of pain I'd gone through last year
> trying to commit to Common Lisp, after another year of trying the same
> with various flavors of Scheme and finding them all wanting. As far as
> I'm concerned, Lisp is unacceptable today; it's my opinion and just
> that, but I'll stick with it.
> I still need Lisp; after you learn enough of it, it becomes part of
> your soul. I get my fix hacking elisp, and I do a lot of it. The
> commenters are quite right; I've never written anything substantial in
> Common Lisp, because in each of my serious attempts, there was too much
> friction. Risk/reward wasn't high enough, and believe me, I wanted it.
> But after many attempts, I've given up on Common Lisp. They won't let
> me use it where I work, and there are probably more Lispers per capita
> where I work, including some famous ones, than at any other big company
> in the world. If we can't use it where I work, then it's frigging
> unacceptable; that's the shortest proof I can offer.
> What I'm far more interested today is the situation that arises if you
> consider my post a troll. I'm far more interested in the social
> consequences of working in a world filled with religious fanatics of
> different religious persuasions. Especially given that it's a world in
> which ?natural religion? has, by and large, been marginalized
> through the work of philosophers.
> [ ? Peter Siebel is the author of the book Practical Common Lisp,
> 2005. (]
> Let's look at this world in a little more detail, starting with Peter
> Siebel's comment, which I believe is the most interesting. Peter said:
>     I was trying to figure out why on earth you spent so much time
> writing about something that you apparently don't like. Then it hit me:
> HCGS?. So thanks for your help.
> His first sentence speaks volumes about the sociology. His viewpoint is
> exactly what they teach us all as kids: If you don't have anything nice
> to say, don't say anything at all. We like to think people have a right
> to believe whatever they want, and that it's not nice to say mean
> things about other people's beliefs, especially when their livelihoods
> are at stake.
> That's where philosophers come in, folks. They pick your beliefs apart
> and show you in unforgettable ways the consequences of what you believe
> in. I'm no philosopher; I know basically nothing about it, but I can
> tell you I wish fervently that some great philosophers would come along
> and effect change in our technical society.
> Because if nothing else, I can see the consequences of the way we're
> thinking about things. One of many such consequences is that languages
> aren't getting any better, and the worst offenders are Lisp and Scheme,
> which by rights should be racing along the innovation curve faster than
> their supposedly less capable peers. But they've stagnated worse than
> any other non-dead language I can think of.[1]
> Programming languages are religions. For a long while now I've been
> mildly uncomfortable calling it ?religion?, but I don't feel bad
> about it anymore. They're similar enough. At the top of the language
> religion is the language itself; it serves as the deity and the object
> of worship.
> Like any other organized religion, there's always a Pope (or a
> politburo chairman, in countries where the government has brutally set
> itself up as what is for all intents the religion of choice): a
> spiritual leader that gives the religion the human touch. This person
> is almost always the language designer, of course. In Lisp's case it's
> complicated, because McCarthy, Sussman and Steele aren't very active as
> spiritual leaders for their languages anymore.
> Every major organized religion is a heirarchical government, and
> programming languages are no exception. You'll find equivalents of
> cardinals, bishops, priests and laity in programming language camps:
> the closer you are to the fire, to the spiritual center, the higher
> your rank. It's a great way to quantify your perceived self-importance:
> a high-score list, in effect. Great for the ego, but it makes you a
> piss-poor debater, because you're so emotionally invested in your
> status.
> You'd think your rank would be accrued by virtue of your technical
> and/or documentation contributions, but in practice it's usually more
> of a function of how many converts you've gained, how many followers
> you have, how much you've been spreading the Word.
> [? Paul Graham is a lisp dignitary. He is well known for having sold
> his ecommerce software written in lisp to for $49.9 million,
> among other things. See Paul Graham? and ]
> That's why Paul Graham isn't the Pope of Lisp. He's eminently
> qualified, but unfortunately he's a heretic. Notice that almost none of
> the commenters on my last blog mentioned the PG argument I made. The
> only one who did (as of this writing) tried to make it an argument for
> Common Lisp. Let's face it: you can't give those heretics too much
> press; people might start listening to them!
> Peter, are you beginning to understand why I write so much about
> something I apparently don't like? It's because I wanted to like it but
> found it fatally flawed, technically and culturally. It's as if I were
> a would-be convert to Roman Catholicism, but I can't bring myself to
> commit because I've seen too much of their role in creating a history
> that ironically we all wish we could rewrite.
> I was born and raised a Roman Catholic, and I renounced it when I was
> thirteen years old, after my Uncle Frank (a devout terrorist Catholic
> if there ever was one) told me to stop reading the Bible, that it would
> ?really screw a person up? to do that, that you needed someone to
> interpret it for you. That wasn't the only reason I renounced it, but
> it'll suffice for our purposes.
> Technologically I was born and raised an assembly-language programmer;
> at least that's what my first real job was, for 5 years after I got my
> CS degree. Assembly is just flagellation, though, and damned
> uncomfortable at that, so I joined the Church of Java for fully seven
> years. And practically at the very moment I'd finally tired of chafing
> at Java's limitations, Paul Graham came along and through his early
> essays, showed me Lisp. What a great new religion!
> Problem is, each time you switch religions, the next one has less
> impact on you. Once a Catholic, always a Catholic, they say. I don't
> know what that means for me, since I was raised by the
> assembly-language wolf, but it appears to mean that I'm never going to
> be enthralled with another programming language. And now that I've
> swallowed the red pill, what choice do I have? I need to try to show
> people what's out there.
> Interestingly, it was Peter Siebel's most excellent book, Practical
> Common Lisp?, that played the role of Uncle Frank and killed my
> desired to continue with Common Lisp. Peter was the first person to
> show me beast's underbelly. Every other Lisp book had pretended it was
> pure and beautiful and uncorrupted, because they left all the nastiness
> out as ?implementation-defined?. Once I saw what you really need to
> do in order to build something resembling a portable Lisp code base,
> and then had a few runs at it myself, I threw in the towel.
> I much prefer Lisp the idea to Lisp the implementation.[2]
> [ ? Fyodor_Dostoyevsky?, David_Hume?, Aristotle?,
> Jean-Paul_Sartre?, Ben_Franklin?, Galileo_Galilei?,
> Bertrand_Russell?, Albert_Einstein? ]
> I can tell you this: I've tried writing this essay for a year. I've
> tried fully a dozen times. I've tackled it from a dozen angles. I've
> wanted to say it ? software needs philosophers! ? so many times, in
> so many ways. We need great thinkers ? the Fyodor Dostoyevskys and
> David Humes and Aristotles and Jean-Paul Sartres and Ben Franklins and
> Galileo Galileis and Bertrand Russells and Albert Einsteins to show us
> the way through the Software Dark Ages we're in today: a time that will
> doubtless be remembered as every bit as mired in darkness and ignorance
> as the Dark Ages themselves.
> But I've failed. This isn't the essay I wanted to write, because I'm
> neither a great thinker nor a great writer. However, you might be: if
> not now, then perhaps someday. So I think it's better to get the idea
> out now than to hoard it in the hopes of someday writing a
> world-changing essay.
> For those of you who were surprised at the suddenness and vehemence of
> the Lisp community's backlash to my little rant, I hope I've helped
> shed a little light, helped you see its inevitability. Basically
> they've had a lot of practice. Lisp is one of the oldest technology
> religions, and they've both experienced and doled out their share of
> religious persecution.
> But that's not the lesson you should take away. The lesson is that they
> are you. Whenever you hear someone ranting about something you take for
> granted as wonderful and praiseworthy, and you're wondering why they
> don't leave well enough alone so we can all get back to our incestuous
> cheerleading, just remember: we went from the Dark Ages to our
> reeeeasonably enlightened society today by questioning our most
> cherished beliefs.
> So keep questioning them.
> [ ? R6RS refers to the Scheme Lisp language's upcoming specification.
> See Scheme programming language? ]
> [1] Yes, I've read all of R6RS. It's a lukewarm compromise that punts
> on most of the important issues. It's not going to make Scheme any more
> successful than it is today, which to me feels practically criminal; it
> was their one big chance to break out of the rut they're in. But it
> doesn't matter. Let's pretend this footnote is just a troll. If your
> hackles went up, then you're a techno-religious zombie, and I hope in
> my lifetime to find you a cure. Try your best to think about that long
> and hard before responding.
> [ ? SLIME is a emacs mode for lisp programing. See
> ]
> [2] For the record, the commenter I agree the most with is the one who
> said the problem basically boils down to an IDE issue. SLIME doesn't
> cut it, either, as beautiful as SLIME is. Can't use it on Windows to
> save your life, for instance. But that's one of a thousand problems
> with the Lisp IDE situation; it's pointless to try to discuss them all
> in blogger. It's probably pointless to discuss them at all, because
> it's just going to make me more miserable that no decent IDE exists for
> Lisp, except for Emacs-as-Elisp-IDE. Which is why I get my Lisp fix by
> hacking elisp these days.
> ----
> This post is archived at:
> and
> This essay is reported with permission.
>    Xah
>    xah at
>  ?

No Xah :-) many of us want you to stay healthy !


More information about the Python-list mailing list