FAQ

InfoInfo
Search:    

Why another Lisp?

Spark-Scheme is my [WWW]my personalized Lisp. Its design was primarily driven by what I expected from a Lisp system. If you are looking for a pragmatic, easy-to-use Lisp, Spark-Scheme might be a good choice. Developing Spark-Scheme was a great learning experience too.

Why don't you just contribute to [WWW]PLT Scheme?

PLT Scheme and Spark share a common ancestry, as they both run on top of the [WWW]MzScheme Virtual Machine.

PLT Scheme is primarily a pedagogic programming environment. It is also a collection of domain-specific languages.

As I told earlier, Spark was designed to meet my personal needs. Spark strives to put simple and consistent libraries in the hands of the practitioner. But Spark is more than just a language implementation and assorted libraries. It can act as a stand-alone application server without depending on external databases and HTTP servers.

Please note that Spark do not keep up-to-date with MzScheme. In future, it might switch to another, or even a newly written virtual machine.

Is Spark compatible with [WWW]R6RS?

No, but it is fully compliant with [WWW]R5RS.

How does the Spark web framework compare with [WWW]PLT web server and [WWW]Seaside?

The Spark web framework (Fermion) is conceptually similar to PLT and Seaside. Spark binds a dynamically generated URL to the session state, but don't use continuations to manage state. This means that a servlet need not be a monolithic piece of code and the servlet writer need not learn a new API. The server-side logic can be factored out into several procedures (or even several libraries) and sequenced. Servlets can even be tested from the command-line as standalone scripts. Web applications that don't need server-side session management (the common type) can embed Spark code in HTML pages. Spark can also act as a [WWW]FastCGI server. See the Web applications tutorial for more information.

How is Spark better than Java/C#?

Spark share all the merits of Lisp: first class functions, dynamic typing, garbage collection and the ability to represent program as data. Spark is well suited for fast prototyping and exploratory programming. Spark gives a lot of freedom to the user. For instance, a particular paradigm is not enforced on the programmer. He is free to choose the style that best suits the problem at hand. If that paradigm is not currently supported by Spark, it can be extended to support it. Yes, new syntax can be added to the language, without touching the core interpreter or the Virtual Machine! Like all Lisps, Spark is "a programmable programming language". (Original quote by John Foderaro)

Also see:

[WWW]Revenge of the Nerds and [WWW]some other essays on Lisp by Paul Graham.
[WWW]Dangerous designs

What is Blithe?

Blithe is a [WWW]concatenative programming language that uses Spark-Scheme as its interpreter and runtime environment. You can read more about Blithe [WWW]here.

This is a Wiki Spot wiki. Wiki Spot is a 501(c)3 non-profit organization that helps communities collaborate via wikis.