Lisp or Scheme?

Started by
6 comments, last by Erik S. Andersson 18 years, 10 months ago
I took the first in our university's sequence of programming courses because, once upon a time, I was going to be a CSci major. That changed, but I still program on my own time. Thing is, that was the only experience I've had with Scheme and I've had none with Lisp. I really enjoyed our time with Scheme and am thinking about checking out either Scheme or Lisp again. Now, I'm wondering what the differences between Scheme and (Common?) Lisp are, since if you mention one someone is bound to mention the other. What are the pros and cons of each? Also, I know there was just a thread about Lisp implementations, but I'm not sure that it provided me with the information I would need to choose an implementation. Is there an implementation that fits the following criteria? - Free, as in beer - Free, as in I can redistribute my program under a license of my choice along with enough of the implementation to run it - Runs on Windows XP (Cygwin and the like don't count) - Suitable for game development (seeing as this is gamedev.net, after all), not as a scripting language, but as in the language the game is written in - Access to relevant libraries (preferably free, as above) for game development (2D/3D graphics, sound, IO, networking, etc.)
Advertisement
Lisp has more mainstream support in terms of IDE's, compilers, libraries, and the like. However, Scheme is no slouch. Check out Dr. Scheme.
Lisp is, in my opinion, horrible. It takes all the elegance and simplicity of a functional language (such as Scheme), and then heaps on shortcuts, special cases, and more outdated legacy baggage than any other language, all in the service of being "multiparadigm". Now, this baggage does buy you flexibility, and many expert programmers find Lisp to be great for development; but if you enjoy a mostly-pure functional style and don't want to spend days trying to grasp the full functionality of Lisp, stick to Scheme.
Are you Brandon Van Every?
Quote:Original post by Sneftel
Lisp is, [...]outdated legacy baggage[...]
Well, you have to understand that when Common Lisp was standardized, it wasn't entirely outdated.

I'm all in favor of a new CL standard, but unfortunately those that would be needed for such an undertaking have no desire to participate in it and anything without them would be worthless. The best you can do is to use the psuedo defacto-standard libraries, but finding them can be rather difficult.
"Walk not the trodden path, for it has borne it's burden." -John, Flying Monk
Quote:Original post by flangazor
Are you Brandon Van Every?


No, but I've lurked in news groups long enough to know why you'd think that. Really, they were honest questions. I was really interested in Scheme when I took the class, but, like I said, that was the extent of my CSci career. I like functional programming, but most of my experience in that direction has been tinkering with Haskell. I love it for its purity, but it seems to be mostly for academics with only a few "real world" programs, and those in non-game applications. For example, graphics libraries seems to be more proof of concept than anything usable.

Aside from OCaml and other members of the ML family, Scheme/Lisp seemed my best bet. I really liked as much as I saw of Scheme, and it seems one of the more "practical" functional languages (along with OCaml and SML). Since I usually hear Lisp and Scheme mentioned in the same conversations, I thought maybe I'd ask how they compare. Not so much "which is better?" as "what are the differences?". Knowing the differences, I can decide which better suits my needs.

As far as the implementation question goes, I don't think the requirements are too extreme (at least not as extreme as Brandon Van Every). Free because I'm a poor college student who may want to show others what he's done. Windows because that's what I and my friends run. Not Cygwin because I know where to find Linux if I need/want it (that's why OCaml was a no go, it really seemed to want Cygwin before it would run on my computer).

Perhaps "suitable for games" sounds like a bit much, but really I'm not that strict. Some implementations seem really focused on teaching (e.g. Hugs for Haskell) and not really suited for actual applications. That's really all I was going for.
Quote:Original post by Sneftel
Lisp is, in my opinion, horrible. It takes all the elegance and simplicity of a functional language (such as Scheme), and then heaps on shortcuts, special cases, and more outdated legacy baggage than any other language, all in the service of being "multiparadigm". Now, this baggage does buy you flexibility, and many expert programmers find Lisp to be great for development; but if you enjoy a mostly-pure functional style and don't want to spend days trying to grasp the full functionality of Lisp, stick to Scheme.


I disagree, I have used Common Lisp as a toy language, blissfully ignoring most of what makes it a power language designed for experts (packages, OOP, special variables, big standard, etc.) without encountering unusual amounts of pain.


Quote:Original post by Way Walker

Also, I know there was just a thread about Lisp implementations, but I'm not sure that it provided me with the information I would need to choose an implementation. Is there an implementation that fits the following criteria?
- Free, as in beer
- Free, as in I can redistribute my program under a license of my choice along with enough of the implementation to run it
- Runs on Windows XP (Cygwin and the like don't count)
- Suitable for game development (seeing as this is gamedev.net, after all), not as a scripting language, but as in the language the game is written in
- Access to relevant libraries (preferably free, as above) for game development (2D/3D graphics, sound, IO, networking, etc.)


Give Corman Lisp a try. It's free to use, you can compile 1MB exe files, it's reasonably fast, and the FFI seems to work (I got SDL/OpenGL to work in trivial applications). You need to pay the $200 to distribute applications.
I agree with DrScheme if you want Scheme and Corman Lisp if you want Lisp. Corman is probably free enough for most purposes, once you get to the stage where you actually distribute something commercially you can probably afford the $200. If you don't use to much ffi and similar it shouldn't too much of a problem to use the same code on other Lisps like CMUCL or SBCL on Linux, both of these are good and completely free.

CLISP and GCL both have license problems when it comes to games development, and I fear that a lot of Schemes are mostly very basic implementations since it is a pretty simple language to implement (except for some things that aren't universally supported among the Schemes).

This topic is closed to new replies.

Advertisement