author | Alan Dipert
<alan@dipert.org> 2020-02-07 13:59:40 UTC |
committer | Alan Dipert
<alan@dipert.org> 2020-02-07 13:59:40 UTC |
parent | 1c3ba63019099970f2006189eb5c6b66610ff7e5 |
paper/jacl-els-2020.tex | +19 | -21 |
diff --git a/paper/jacl-els-2020.tex b/paper/jacl-els-2020.tex index 62f3f77..fd5ac97 100644 --- a/paper/jacl-els-2020.tex +++ b/paper/jacl-els-2020.tex @@ -105,35 +105,33 @@ The demand for SPAs in the past decade has only grown. Users and stakeholders continually expect larger and more sophisticated SPAs. SPA implementors have responded by creating a widening variety of -special-purpose programming languages. Each new language promotes one -or more paradigms, application architectures, or development -workflows, and claim some advantage relative to the status quo. +special-purpose programming languages that compile to JavaScript. Each +new language promotes one or more paradigms, application +architectures, or development workflows, and claim some advantage +relative to the status quo. This paper presents one new such language, JavaScript-Assisted Common -Lisp (JACL). As an implementation of an extended subset of Common Lisp -(CL), JACL is informed not just by the author's SPA development -experience, but also by the sum of experience with Lisp since 1957 -through its specification as ANSI Common Lisp in 1994. - -While the Web barely existed in 1994, and JS didn't exist at all until -1995, many of the challenges inherent in large-scale industrial -application development were known long before the advent of the -Web. The design of CL is filled with hard-won knowledge about how to -overcome these challenges and rapidly build high-quality, -high-performance applications. +Lisp (JACL). JACL is as an implementation of an extended subset of +Common Lisp (CL). CL is a famously powerful and flexible language, and +a proven substrate for large-scale application development. + +While the Web had existed for only a few years by 1994, and JS didn't +exist at all until 1995, many of the challenges inherent in +large-scale industrial application development were known long before +the advent of the Web. The design of CL is filled with hard-won +knowledge about how to overcome these challenges and rapidly build +high-quality, high-performance applications. The primary goal of the JACL project is to ease the task of SPA -development by applying the design of CL to the challenges faced by -implementors. JACL is envisioned as the means to that goal, and to -have at least the following ancillary affordances: +development by applying the design of CL to the challenges now faced +by SPA implementors. JACL is envisioned as the means to that goal, and +to have at least the following ancillary affordances: \begin{itemize} - \item Support for a compelling interactive development experience in - the Lisp tradition. + \item Compelling interactive development experience. \item Ability to load source code from the host filesystem. \item Fluent interoperation with external JavaScript libraries. - \item Ability to produce competitively fast and small deliverable - executables. + \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