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