author | Alan Dipert
<alan@dipert.org> 2020-02-13 03:49:06 UTC |
committer | Alan Dipert
<alan@dipert.org> 2020-02-13 03:49:06 UTC |
parent | cfdfaa8c2a9578b8dac67ca9e5773fc862c1bac1 |
paper/jacl-els-2020.tex | +17 | -31 |
diff --git a/paper/jacl-els-2020.tex b/paper/jacl-els-2020.tex index ee9e94b..0c572d7 100644 --- a/paper/jacl-els-2020.tex +++ b/paper/jacl-els-2020.tex @@ -141,10 +141,11 @@ the following ancillary affordances: \item Ability to produce fast and small deliverable executables. \end{itemize} -In this paper, I will describe JACL's design and the current state of -its implementation. I will also outline major remaining work, such as -introduction of the Common Lisp Object System (CLOS) and the ability -to produce optimized deliverables. +In this paper, I will discuss several previous, similar efforts to +facilitate the use of Lisp on the Web browser platform. Then, I will +introduce novel aspects of JACL's design and implementation with +respect to these works. Finally, I will elaborate on the current state +of the implementation and outline plans for future work. \section{Previous Work} @@ -292,9 +293,9 @@ party tools, then its own internals could be simplified to a degree. \subsection{ClojureScript} A discussion of industrial Lisp technology in the SPA setting would be -incomplete without mention of ClojureScript. ClojureScript is, by a -wide margin, the most successful Lisp dialect for building SPAs, at -least with respect to public lists of known users [ref]. +incomplete without mention of ClojureScript. ClojureScript is probably +the most successful Lisp dialect for building SPAs, at least with +respect to public lists of known users [ref]. ClojureScript targets JavaScript, and is a dialect of an earlier language, Clojure, which targets Java Virtual Machine (JVM) @@ -309,30 +310,15 @@ to aggressive optimization by the Google Closure Compiler. In this respect, ClojureScript aligns closely with the JACL project goal of competitive application performance. In fact, the author's -experience with, and admiration for, ClojureScript is one of the -primary influences of the JACL project. - -However, ClojureScript's support for interactive development as -traditionally performed in Lisp systems is relatively -weak. Interactive REPLs exist, but they are neither as featureful nor -as central to the development workflow as they are in traditional -Common Lisp environments. Most of the tooling associated with -industrial ClojureScript SPAs is developed on the host, as part of a -JVM-based compiler toolchain. - -Between existing Lisp implementations, it is ClojureScript's success ---- as a mostly static language oriented around batch compilation and -whole-program reloading --- that renders suspect a central claim of -this paper: that Common Lisp and prioritizing interactive development -will make SPA development in Lisp easier and more practical than it -currently is with ClojureScript. - -Only progress on the JACL project will confirm or disconfirm that -suspicion. In the meantime, JACL development continues in the hope -that Lisp-based SPA development with JACL will be \emph{at least} as -practical and productive as it currently is with ClojureScript, but -with the added benefit of the special affordances of Common Lisp's -design combined with access to successful historical techniques. +experience with, and admiration for, ClojureScript is the reason the +ability to produce high-performance deliverables is considered a +crucial capability of JACL. + +Other than the fact that JACL is a Common Lisp and ClojureScript is +not, the biggest difference between the two is JACL's promotion of a +dynamic, interactive environment for SPA development. In contrast, the +the typical ClojureScript SPA development workflow is characterized by +alternating batch compilation and whole-program reloading. \section{Design and Implementation}