Re: My thoughts on C# and gaming.

Mat Noguchi <[email protected]>
Newsgroups gmane.games.devel.sweng
Message-ID <D7F4D9E414140644BF099886C28C663627F53ABC27@bngexchange01.bungie.bng.local>
Christer is right. (I really need to be less subtle.)

I'll try to put a different spin on it: LISP is a great *computing* language. From a computation perspective, code and data can be treated with the same syntax. And if all I cared about was correct computation (and in most cases I don't really care about that much else), I would be perfectly content using LISP for everything.

Unfortunately, LISP isn't just a language; it's a language plus an expected runtime environment. The more features I use from LISP that don't map well to the platform or resource constraints I run under, the less I can use LISP for most of what I do. (I'm intentionally ignoring Linear-LISP here.)

This is important because it means that by itself, I cannot use LISP. If I boned up on implementing LISP I could probably use it for things like making a super awesome fractal evaluator for an SPU. And ultimately I should probably do that. But as it stands, the amount of knowledge and practice I need to accumulate to accomplish such a feat is unrealistic compared to what I can do right now in a language that bashes me over the head with those runtime constraints upfront. 

On the other hand, C++ is a horrible language to write code in, but for the most part, I don't really care. Because (for the most part) I know how to express constraints either as types, asserts, or narrow interfaces, I find that I am just as productive including a constant overhead of additional (keyboard) typing. I've written editors in C++ and I've been much more cognizant of fundamental issues with observers, listeners, event handling, dynamic registration and revocation of event listeners, data synchronization, etc. than most people here who work on complex tools with UIs in higher level languages.

MSN
-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of [email protected]
Sent: Wednesday, January 27, 2010 3:54 PM
To: [email protected]
Subject: Re: [Sweng-Gamedev] My thoughts on C# and gaming.

Emil Dotchevski wrote:
> Right, but can you work with code as if it were data? Can you create
> code dynamically like you can create data dynamically? From that point
> of view, it is the same.

Mat Noguchi's point, I believe, was that code and data are not treated
identically in LISP, but people often incorrectly imply that is the
case. Specifically, you can hold pointers to compiled functions, but
you cannot manipulate the compiled function as if it was a LISP data
structure. (This of course makes perfect sense.)

The fact that I can compile code on the fly in LISP, through built-in
mechanisms in the language, is a completely different issue.

I can, of course, also compile code on the fly in C or C++ in exactly
the same sense that LISP can, but it is not a built-in mechanism in
the language, and it would require system-specific manipulation to
do a system() call to the compiler, loading up the compiled code
into memory, and calling it. Any good programmer should be able to
write the code to do this. It's still a completely different point
from what Mat made.


Christer Ericson, Director of Tools and Technology
Sony Computer Entertainment, Santa Monica

_______________________________________________
Sweng-Gamedev mailing list
[email protected]
http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com
_______________________________________________
Sweng-Gamedev mailing list
[email protected]
http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.