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. ( http://gigamonkeys.com/book/).] > > 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 Yahoo.com for $49.9 million, > among other things. See Paul Graham? and http://www.paulgraham.com/ ] > > 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 > http://common-lisp.net/project/slime/. ] > > [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: > http://steve-yegge.blogspot.com/2006/04/software-needs-philosophers.html > > and > http://xahlee.org/Periodic_dosage_dir/_p/software_phil.html > > This essay is reported with permission. > > Xah > [EMAIL PROTECTED] > ? http://xahlee.org/
No Xah :-) many of us want you to stay healthy ! Philippe -- http://mail.python.org/mailman/listinfo/python-list