This is a presentation of the current state of Scheme standardization. I'll briefly review the history leading up to the creation of R7RS-small in 2013 and the first stage of R7RS-large in 2016. But most of the talk is about the upcoming Tangerine Edition, which will be voted on in early 2019, and the more or less definite plans for the editions to come after that. There will be lots of get-out-the-vote propaganda (anyone can vote who is interested) and lots of opportunities for questions.
Seed is a new interactive software environment that ties together visual
and textual programming built in Common Lisp. Seed allows you to create
and use programs with customized workflows and a wide variety of
interface modes, including text editors, spreadsheets, tree grids,
interactive vector graphics, 3D voxel environments and more. The system
was built to realize the following principle:
In Seed, there are not interfaces to programs.
In Seed, the interface is the program.
This talk will introduce you to Seed and help you understand its roots
and the problems it's intended to solve. Seed was inspired by my
experience with different software systems and their shortcomings, and
as such it's not just intended to solve a technical problem, but a human
problem that lies at the heart of all software design. Join me on May
8th to learn more.
DefDoc brings together the best of Common Lisp (macros and CLOS), TeX/LaTeX, XML, and CSS to provide a document creation system that allows flexibility at a greater number of levels than any comparable system. Learn how it models and renders documents using the full power of Common Lisp's macros, multiple inheritance, and multiple dispatch to allow your documents to be more maintainable than ever.
It has been twenty-two years since Kenny first shared Cells on comp.lang.lisp, twenty-seven years since CL’s Garnet shipped with a reactive KR module, and thirty-eight years since some guy named Steele based his PhD thesis on an elaboration of work he and Sussman had started on constraint programming. Steele credits Sutherland with the first work on constraints, and that goes back fifty-five years. Lisp has always led the way on reactive programming and the world has almost caught up.
 ftp:// http://publications.ai.mit.edu/ai-publications/pdf/AITR-595.pdf
This will be part experience report, part survey of the reactive field, part guide to evaluating reactive libraries, but most of all an opportunity to join with Kenny in guessing at what elemental essence of information has been tapped by the simple idea of a software spreadsheet cell such that it solved trivially (our experience, in order):
Ordering of dynamic interdependent GUI geometry;
The ostensibly ineluctable problem of managing interdependent state as applications grow, the reason Fred Brooks said “No Silver Bullet” was to be had;
The Grail of OO reuse;
Dynamic object persistence; and
We will begin by making sure the audience has a hands-on feel for reactive programming with a couple of light live-coding exercises with MatrixCLJS, a straight port to Clojure and ClojureScript of Common Lisp Cells.
The live-coding will exercise Matrix in two contexts: first, a dynamic web page built with Kenny’s new CLJS Tag framework; second, not one but two solutions to asynchronous Callback Hell. Along the way we will touch on some modest but handy extensions made to Cells during the port, such as standalone Cells (inspired by CLJS Javelin [ https://github.com/hoplon/javelin ]) and per-Cell observers.
If time permits, we will re-invent Cells over the keyboard following the same incremental evolutionary steps originally taken.
With the code in hand, Kenny will provide a definition of reactive programming and then share the checklist he uses for evaluating reactive libraries. Relevant here will be an understanding of so-called “reactive glitches” (in which a system’s state can momentarily lose consistency) and Kenny’s rigorous definition of data integrity -- first enunciated in The Cells Manifesto -- where “integrity” means “no glitches”.
With a solid understanding of reactive technology and Kenny’s checklist in hand, we will look at a sampling of other reactive efforts:
Steele’s “bridge too far” Constraint Programming Language;
Common Lisp Garnet’s KR;
Philip Eby’s Python Cells clone, Trellis;
Adobe’s C++ Adam;
RxJS hand-wired stream dataflow;
Lifting FRP such as Scheme FrTime, and CLJS Javelin;
We will close by reviewing our list of ostensibly hard problems and breaking down exactly how Cells trivially solved each, then contemplate together why exactly simple spreadsheet-like dataflow works so well in so many unanticipated ways.