Spark - Pre-Birth of a Modern Lisp

Author: Shlomi Fish

Revision History

Table of Contents

Some Spark Essentials
Spark is not another implementation of Scheme (or Common Lisp)
Spark will be a dynamic (so-called “scripting”) programming language
Spark aims to be popular and be actively used for real-world tasks
Spark does not aim to compete with C and friends
Spark will have a rich type system but won’t be strongly typed
Spark will be capable of being used for Scripting
Line Count:
Line Count Reloaded
Double-space a file
Number lines in each file
Note about command line magic
Spark will have nested namespaces
Spark will be more succinct than most Lisps, but not overly terse
Spark will be written in plaintext
Regexps and other important elements have dedicated syntax
C/Perl/etc. conventions
Spark will not encourage a proliferation of implementations
The first version of Spark will not be the ultimate Lisp
Why Lisp Has Been Unpopular
Some Implementation Details
Virtual Machine
Spark Licensing
Test-driven development


Spark is a Modern dialect of Lisp currently being planned. This document is not a formal functional (much less technical) specification for it, but rather a briandump of some of the conclusions I (= Shlomi Fish) have reached about the fundamentals of its behaviour. Nevertheless, some preliminary (and still subject to change) specification of it will be given and some code examples will brought.

Beside contemporary Lisp dialects such as Common Lisp, Scheme and Arc, Spark draws a lot of inspiration from other modern languages, paradigms, and technologies including Perl 5, Perl 6, Python, Ruby, Java and Haskell.