[plt-scheme] Scheme or Lisp?
Tim,
Scheme and lisp are very similar, and both are great languages (so much for
flame wars). If you know one it's pretty easy to learn the other. The
main differences are:
-- Scheme is much cleaner in its design (e.g. only one namespace for
functions and variables, consistent naming conventions). Core scheme
also has a shorter learning curve.
-- Common lisp has a huge set of functions and data types built-in which
are very handy, but learning them will take you a while. Many schemes
(e.g. PLT scheme) also have lots of libraries and data types, but other
schemes don't.
-- Very good common lisp compilers to native code exist. Some scheme
compilers to native code exist as well (e.g. bigloo) but I don't think
they can produce code that runs as fast as the best lisp compilers.
-- The macro systems of the two languages work differently. The lisp
system is quite simple but it's easy to shoot yourself in the foot. The
scheme system is more complex, but much safer.
-- Scheme has first-class continuations (call/cc), lisp doesn't. Some of
the PLT researchers have written papers on how to use continuations
for web-based programs which may be of interest to you. Continuations
are a pretty tricky subject, but they're very powerful.
-- Scheme has better tutorial material (e.g. How to Design Programs, SICP).
-- Scheme has the DrScheme IDE, which is excellent. I gather there are
excellent lisp IDEs out there, but I've never used one.
What's more important than the choice of scheme vs. lisp is to choose a
good implementation, because scheme and lisp implementations vary a lot.
For scheme I swear by PLT scheme. For lisp I like both clisp and sbcl
(Steel Bank Common Lisp).
HTH,
Mike
> From: Tim Johnson <tim at johnsons-web.com>
> Date: Mon, 4 Oct 2004 19:15:23 -0800
>
> For list-related administrative tasks:
> http://list.cs.brown.edu/mailman/listinfo/plt-scheme
>
> I would welcome comments that would aid me in making a choice between
> learning scheme or lisp.
>
> My specific circumstances are that my income comes primarily from
> web-based database programming.
>
> Although I've learned at least a dozen programming languages in my time,
> I concentrate primarily on C, python, and rebol these days. Rebol, not
> well known, appears (to me) to be the most scheme(or lisp)-like, and my
> experience with rebol has lead to my interest in scheme/lisp.
>
> All of the languages that I currently work in have robust resources for
> CGI, database access and web content rendering. It appears that both
> scheme and lisp communities provide such resources as well.
>
> My R&D time and budget is limited, I'd like to investigate both
> languages thoroughly, but that is probably not feasible.
>
> Comments, pointers to existing discussions on this subject will be
> appreciated. I'm not interested in introducing an argument over
> languages.
>
> TIA
> tim
> --
> Tim Johnson <tim at johnsons-web.com>
> http://www.alaska-internet-solutions.com
>