Re: Why Lisp supposedly "sucks for game development"

From: Jack Palevich (lispgamemail_at_yahoo.com)
Date: 10/23/04


Date: 23 Oct 2004 08:33:19 -0700

Wow Kenny, good one! Pretending to be swayed by my arguments, but
actully cleverly rebutted each one. It really makes me want to
consider your point of view!

Oh wait, no it doesn't. It makes me think you must be a smug Lisp
weenie who doesn't know anything about the problem domain I'm
operating in.

Kenny Tilton <ktilton@nyc.rr.com> wrote in message news:<lpked.92344$Ot3.65492@twister.nyc.rr.com>...
> Jack Palevich wrote:
>
> > "xstream" <oc192np@attglobal.net> wrote in message news:<10ndjfp92ii2vee@corp.supernews.com>...
> >
> >>Has anyone seen anywhere a technical rebuttal to the positions this article
> >>takes?
> >>
> >>http://www.spies.com/~palevich/CLRScheme/WhyLispSucksForGames.htm
> >>
> >
> >
> > Hi everybody! I've written a response to some of the criticisms raised
> > in this thread, as well as some criticisms raised by an earlier thread
> > (last month) that I missed until now.
> >
> > http://www.spies.com/~palevich/CLRScheme/WhyLispStillSucksForGames.htm
> >
> > I hope it will help people understand my point of view.
>
> Definitely, and thanks for dropping by. You really have me in a panic,
> because I was hoping to do OpenGL from Lisp, but I can see that is out
> the window. Maybe I can pick your brain a little? It is a rare
> opportunity to have acces to someone with your deep games background.
>
> It is a shame some people accused you of being a troll. Posting not one
> but two pages that say something sucks should not be taken as a negative
> or provocative, not nowadays. I mean, when fans are yelling "Yankees
> suck!" or "Boston sucks!", certainly they mean no offense.
>
> In your first article you mentioned:
>
> > # They also say it's hard to find good Lisp programmers.
>
> Wow, did we luck out at CliniSys! We placed one ad and got resumes from
> names so big I recognized them, including one actual author of a Lisp
> compiler. My partner has been a technical recruiter for thirty years and
> says it was by far the strongest stack of resumes he'd ever seen.
>
> > # ex-ND programmers have mentioned that Lisp macros can make code
> written by other developers harder to understand.
>
> Tell me about it! But then, /all/ code is hard for me to read. I always
> have to go see what a function actually does, because I never trust the
> name. And as for understanding a class hierarchy, good luck! And I am
> talking about my own code.
>
> But the problem with macros is that they hide so many details in the
> name of making the code easier to follow. I'll tell you a little
> secret--every time I find a macro some other developer has written, I
> just macroexpand it and replace the macro code with the expansion. That
> just leaves the functions and class definitions to understand. Whew!
>
> > # Low performance, especially on modern processors
>
> uh-oh. This I did not know about. All the Lisps I use compile to native
> machine instructions. I was totally unaware the CPU could still figure
> out that they had come from Lisp and run them slower. That sucks!
>
> > # No module/library mechanism
>
> Yeah, why did they have to call it "packages"?
>
> > # No easy interface to C-based code
>
> Agreed. It must have taken me three frickin days to master that FFI crap.
>
>
> > # Lack of types makes it difficult to understand or safely modify large programs
>
> Check. I see some parameter called font height and I cannot tell if it
> is a number or a string or a structure or a character or a pointer --
> well, no, Lisp does not have pointers, but I also do not know if the
> font height is in pixels or twips or DPI, but if I could see it was an
> int -- ok, no, that would not do me any good. Never mind.
>
> In your follow-up:
>
> > Criticism 2: You say one reason Lisp sucks for games is that performance sucks.
> > But it doesn't have to suck: look at this example, by decorating my Lisp
> > code with tons of declarations, and thereby restricting my use of the
> > language to a subset that's the equivalent of C, then I can get
> > performance that's on par with C.
>
> Thank you so much for this. I thought I could get away with declarations
> in just the small amount of compute-intensive stuff. I did not realize
> the entire application would require declarations just to get 2% of the
> code humming.
>
> And I have been really dreading learning how to do declarations in Lisp.
> I could see easily a day of study going straight down the drain. I would
> much rather be using a language built around types, so i would be
> concentrating on them 24-7 and would be able to code up the necessary
> types for each variable and parameter in my sleep.
>
> > Criticism 5: You hate Lisp, therefore you suck.
> >
> > * I may suck, but it's not because I hate Lisp. I like Lisp quite a bit.
> > I just don't see it as useful for writing modern video games.
>
> Well, I guess one good suck deserves another, but c'mon, you are a
> Microsoft manager and C++ programmer considering using Lisp! These guys
> should be cheering you. If Microsoft turns its back on a language, it
> must be for good reason. Look at C# and Java. Microsoft was fully behind
> the Java bandwagon, and did not start C# until a court order stopped
> them from trying to fix it with great proprietary code that would have
> made much Java better, albeit no longer portable to other OSes. Lawyers!
>
> > * With the exception of Naughty Dog, nobody uses Lisp in modern game
> > engines, and few developers use Lisp even as a scripting language.
>
> Right, and when you consider how otherwise ubiquitous is the language,
> the low penetration of the games market really stands out.
>
> > Perhaps everyone else is stupid, or perhaps Lisp has issues.
>
> Good one! Programmers are not stupid. They all tried Lisp and voted with
> their feet. They use what works best. Just watch what all those Java
> programmers do when they find out about C#. if only Microsoft had some
> way to get the word out to developers.
>
>
> > Before you flame me too much, consider if your love of Lisp is
> > blinding you to its faults.
>
> I think it has. It must have! I am a really good programmer, just like
> you, but I have been using the program intensely for like eight years
> and only since reading your Web pages I have been noticing fault after
> fault. Now if only I could figure what I was in love with!
>
> >
> > Criticism 6: If you don't like Lisp, why did you write about it?
> >
> > * I'm trying to explain the drawbacks of Lisp to people who might be
> > considering using Lisp for their game engines. I wish an
> > article like mine had been available a few months ago, when
> > I was starting to research the possibility of using Lisp
> > for a game engine. All I found were cheerleading papers
> > about how wonderful and high performance Lisp was, and how it
> > was the perfect language for any large project.
>
> Bulent laughed at me when I said Lisp had won, but there you go. The
> hype on Lisp is so deep we need hip-waders. Shame on us, wasting three
> months of a Microsoft manager. I mean, it is so bad that even tho he had
> a Lisp-based undergraduate education at MIT (wow!) and used Lisp
> professionally for two years it took him /three months/ to unravel all
> the brainwashing.
>
> Hell, I only had to read the CLIM spec for twenty minutes before
> realizing... ohhhh, never mind.
>
> > * I also found a ton of misinformed speculation on the
> > suitability of Lisp for games.
> > It bothered me to see so much misinformation.
>
> Let me be the first of many games programmers to thank you for the extra
> trouble you took, and I commend your courage in standing up to the
> kneejerk attacks of these chauvinist jerks.
>
> If they give you any more abuse, just put up a Sucks III page, and keep
> it up until they understand the power a Microsoft C++ programmer has to
> direct the minds of developers. That'll teach them!
>
> You know, a year ago Lisp had to worry about rumors of our death. You
> have proved that, like polio, Lisp is back. I hope this time folks do
> not rest until it is truly stamped out.
>
> > * It's true that the sensible thing to do would be to
> > just ignore Lisp entirely. But for whatever reason, I
> > find I can't leave it alone. Back in the early
> > 80's it was pretty darn amazing, and I guess I'll
> > always have a soft spot in my heart for it.
> >
>
> It shows.
>
> :)
>
> kenny