The Language of Game Development

Recommended Videos

Tamayo

New member
May 16, 2014
40
0
0
Oh, yes, Lisp is brilliant. It is the third high-level computer language, and the first and best dynamically-typed language. Good Lisp compilers (and it's hugely easier to write a good Lisp compiler than a good C++ compiler) can produce code almost the quality of a good Fortran compiler. Yes, that means that well-written Lisp programs are often faster than well-written C programs.

Paul Graham said:
What's so great about Lisp? And if Lisp is so great, why doesn't everyone use it? These sound like rhetorical questions, but actually they have straightforward answers. Lisp is so great not because of some magic quality visible only to devotees, but because it is simply the most powerful language available. And the reason everyone doesn't use it is that programming languages are not merely technologies, but habits of mind as well, and nothing changes slower.
Yes, as I said, Lisp is weird. Lisp "has no syntax", as Graham says; well, it has some, but the syntax of Lisp is really, really minimal, so much so that Lisp programs are easily manipulated as data by Lisp programs---yes, even by themselves. This property, which has been dubbed "metacircularity", used to be rare amongst programming languages.

It isn't any more. C++ achieved metacircularity when someone noticed that templates were a Turing-complete language in themselves. Smalltalk and Ruby and Python have it because they use metaclasses for class creation. Java and C# have very clunky reflection facilities. Perl 5 and Perl 6 are dialects of Lisp, though Perl programmers don't like that comparison. (Javascript is a dialect of Lisp, too, but that's harder to perceive.) The advantage of metacircularity is metaprogramming: by writing programs, one can create the programming language that is most suitable for one's endeavour. That sounds great. It is great. It is far, far easier to use C++ now after the STL and the Boost libraries have adopted template metaprogramming than it was before, and you can still hack the bare metal if you have to.

Still, the use of metacircularity for metaprogramming is easiest where it is most natural, and that is in Lisp. Consequently, Lisp programs use a lot of it. It has been observed that Lisp programmers from different companies cannot read each others' code, due to the fact that by heavy use of metaprogramming, they are essentially using different languages. Contrast the backlash against C++ templates by many people, including John Carmack: templates are difficult to use correctly and compilers don't often compile them correctly. People don't like reading code with templates, because they're opaque and confusing and not absolutely necessary to most tasks; but they do make C++ more powerful (in Graham's sense above) than its ancestor C.

So yes, Lisp is weird in the same way that C++ templates are weird, and Lisp's weirdness works when C++'s doesn't always. It's still weird though.
 

Tarfeather

New member
May 1, 2013
128
0
0
Scars Unseen said:
It's not like you can just go out and make a game independently.
The kind of people who make games independently are the most talented and ambitious types. Those don't really need an article like this to get started with programming. Unless you're referring to real amateur games that are just there as fun little projects, in which case I'd actually recommend something like GameMaker etc.
 

Scars Unseen

^ ^ v v < > < > B A
May 7, 2009
3,028
0
0
Tarfeather said:
Scars Unseen said:
It's not like you can just go out and make a game independently.
The kind of people who make games independently are the most talented and ambitious types. Those don't really need an article like this to get started with programming. Unless you're referring to real amateur games that are just there as fun little projects, in which case I'd actually recommend something like GameMaker etc.
I'm sure you're aware, but it's highly unlikely that any of those talented and ambitious types sprung full grown from the head of Ada Lovelace, born with an innate gift for algorithms. Everyone starts somewhere, and "what language should I use" is a pretty common question among budding programmers.