Introducing Seed, an interactive software environment built on ASDF

Andrew Sengul ml at imagegardenphoto.com
Wed Nov 1 21:55:30 UTC 2017


Hi everyone,

I've created a new software environment based on Common Lisp and it'd be
great to get your feedback. Called Seed, this system can be used to
create Lisp programs and interact with them in many ways. It's a bit
like a web-based IDE, but unlike most IDEs, it uses a visual programming
language as its foundation.

Seed displays Lisp code in the form of an interactive tree grid. It's
possible to create customized interface elements within the tree grid;
these elements are converted into Lisp code for compilation. A simple
example is a color picker for use choosing colors inside a HTML
template. Drop-downs and toggle switches are also easy to insert, and
these elements can be composited to create more sophisticated
interfaces. And unlike Emacs and other editors that are designed around
text files, Seed is designed around editing ASDF systems.

When using Seed, the top-level interactive elements are called "systems"
- contrast to "buffers" in Emacs. Each Seed system is an ASDF system
with particular extensions. Specifically, Seed systems all have a .seed
file in their source directory that defines their behavior within the
scope of the Seed environment.

Check out this video to see Seed in action and a brief tutorial:

https://vimeo.com/237947324

This is a slide deck that goes into further detail:

https://www.dropbox.com/s/ssjd05bmrfnzg5e/SeedPresentationTechnical.pdf?dl=0

I don't know if Seed is the first general-purpose visual programming
environment, but I'm sure its paradigm is among the most flexible. It is
implemented as a Web application, with each atom and form within a Lisp
program represented by a module manifested using the React framework for
JavaScript. Because Seed's interface is implemented in React, the entire
ecosystem of React components can be brought to bear when building
custom software interfaces.

Ready to try Seed out yourself? It's free software and the repo is here:

https://github.com/phantomics/seed

The installation instructions start here:

https://github.com/phantomics/seed#the-first-step-installing-and-running-seed

Read the usage tutorial here:

https://github.com/phantomics/seed/wiki/Introductory-Tutorial

So far, only SBCL has been tested. This is alpha software and you will
encounter bugs aplenty.

I envision Seed as something that could one day encompass most of the
desktop productivity functions that people now use office apps for. The
data-driven nature of the interface will make it easy to mash up and
modify these tools to design custom workflows.With Lisp's homoiconicity
it may even be possible to develop machine learning algorithms to tailor
Seed systems to the jobs they're intended to do. Emacs has always been
seen as the flagship of Lisp-based environments, but because of its
byzantine interface and its tight coupling to the text buffer as the
main interactive unit, I can't see a future where Emacs is usable by
regular people for desktop productivity. I think Seed may be able to get
there.

Let me know what you think of Seed, particularly as an ASDF use case. Best,

Andrew Sengul




More information about the asdf-devel mailing list