Re: lisp used in game creation?
From: John Thingstad (john.thingstad_at_chello.no)
Date: Fri, 10 Sep 2004 13:36:21 +0200
On 10 Sep 2004 01:02:07 -0700, Manuel Simoni <email@example.com> wrote:
> "Anon" wrote in message news:<firstname.lastname@example.org>...
>> is Lisp used in the creation of some games??
> This page has some info about games written in Lisp, and some Lisp
Some of the things in this article are wrong.
>> Problems with Lisp:
>> No module/library mechanism
First the two are hardly equivalent.
For a module interface use defpackage.
No support for libraries in the standard but most implementations
support the creations of DLL's.
>> Lack of types makes it difficult to understand or safely modify large
Types adds to the clutter of creating a program, distracting him from
Having to specify types means that the data structure has to be known
up front before the
problem is fully understood. This leads to premature optimisations and
thus to less clear
and less efficient code.
So in my experience it has the opposite effect.
>> Macros makes code harder to understand
Macro's are a mechanism for providing high level abstractions related
problem at hand. Used correctly the make the code easier to understand.
(It can not make a bad programmer produce good code.)
>> Lisp has low performance by default. Low Performance is designed into
>> the language at several levels
Depends what you mean by default. If you need an array use an array!
>> Every variable can hold any type of data, with the type being
>> determined at run time. This makes it difficult >> to hold binary data
(make-array size :type 'byte) ... duh
>> The typical Lisp object system is too general to be able to run quickly.
Generality has little to do with it. More to the point is that the
class structure is
created and modified at runtime. And yes it is slower...
>> It's hard to tell cheap operations from expensive ones.
This is true and probably the best argument in the article.
>> Garbage Collection Pauses
Not on any lisp I have used. The typically use a generational garbage
eliminates most of the problem. However Java pauses on me..
-- Using M2, Opera's revolutionary e-mail client: http://www.opera.com/m2/