Tech News
← Back to articles

Seed: Interactive software environment based on Common Lisp

read original related products more articles

Seed

Seed is an interactive software environment. With it you can create and use computer programs in many ways. It is based on the Common Lisp language and runs inside the Web browser, allowing you to build software on a local or remote computer system, and it can present programs and their output using a wide variety of display modes. Seed depicts programs in the form of a tree grid, featuring glyphs that denote different functions and types of data. All of Seed's display modes share basic interface principles in common, so you can quickly feel at home with whatever way your program is presented.

Background

The Lisp family of programming languages offer unmatched flexibility in defining software, but this flexibility is not matched by the character strings most often used to express that software. Computer programs have hitherto been widely regarded as inextricable from and synonymous with character strings like the one you're reading now. While visual programming paradigms have made headway in a number of areas, most visual programming tools are tightly coupled to particular domains.

The choice of Lisp's creators to forego a detailed syntax in favor of symbolic expressions marked a turn down a road less traveled by language developers. Users may be confused by the sometimes homogenous, sometimes verbose nature of Lisp code, but the problem in these cases is not a shortcoming of Lisp -- it is a shortcoming of character strings. In the choice of a regular syntax for the language, Lisp was set on a path that could lead to programming beyond the limits of plain text. Seed is an effort to realize that destination: a language representation orthogonal to the language's structure.

These ideas are the foundation of Seed. Your experience with the system will determine their truth.

In Practice

Seed can be seen as a type of IDE. It integrates ASDF, the standard Common Lisp build system, and the software systems it's used to develop are often expressed as ASDF systems. These systems are divided into branches, each of which expresses input to and output from the system. In a given Seed system, there is typically a .seed file located in the package directory that specifies the system and the behavior of each branch.

The First Step: Installing and Running Seed

Seed depends on Common Lisp, ASDF and Quicklisp. The only Common Lisp implementation tested so far has been Steel Bank Common Lisp (SBCL). Seed also requires Node.js, NPM and Gulp to build parts of its Web interface. Install the required software if you don't have it, then clone this repository.

... continue reading