git » jacl.git » commit 90c841f

paper changes

author Alan Dipert
2020-02-06 00:06:12 UTC
committer Alan Dipert
2020-02-06 00:06:12 UTC
parent 0b646cb0922b92e4f030efd5d5232c2a92eca647

paper changes

paper/jacl-els-2020.bib +7 -0
jacl-els-2020.tex => paper/jacl-els-2020.tex +138 -25

diff --git a/paper/jacl-els-2020.bib b/paper/jacl-els-2020.bib
new file mode 100644
index 0000000..8775d57
--- /dev/null
+++ b/paper/jacl-els-2020.bib
@@ -0,0 +1,7 @@
+@online{Somasegar12,
+author ={Soma Somasegar},
+year = 2012,
+title ="TypeScript: JavaScript Development at Application Scale",
+url ="https://web.archive.org/web/20121003001910/http://blogs.msdn.com/b/somasegar/archive/2012/10/01/typescript-javascript-development-at-application-scale.aspx",
+lastaccessed ="February 4, 2020",
+}
\ No newline at end of file
diff --git a/jacl-els-2020.tex b/paper/jacl-els-2020.tex
similarity index 79%
rename from jacl-els-2020.tex
rename to paper/jacl-els-2020.tex
index 50115fc..3215a6c 100644
--- a/jacl-els-2020.tex
+++ b/paper/jacl-els-2020.tex
@@ -35,7 +35,7 @@
 
 \begin{document}
 
-\title{JACL: A Common Lisp for Single-page Web Application Development}
+\title{JACL: A Common Lisp for Developing Single-Page Web Applications}
 
 \author{Alan Dipert}
 \email{alan@dipert.org}
@@ -45,28 +45,44 @@
 %% article.
 \begin{abstract}
   Single-page Web Applications (SPAs) are an increasingly popular
-  technique for implementing sophisticated and responsive Web-based
-  User Interfaces (UIs). Such applications are typically delivered as
-  one or more JavaScript files that are loaded and executed in users'
-  Web browsers. Interaction with the server is performed exclusively
-  by asynchronous exchange of serialized data, a technique known as
-  Ajax. Google's GMail Web application is a well-known example. In
-  response to the technical demands of SPAs, JavaScript and the Web
-  browser platform have evolved considerably in the past decade. In
-  the same period, SPAs grew in complexity and ambition, and languages
-  that compile to JavaScript --- but claim some advantage relative to
-  it, often with regard to the management of complexity --- have
-  increased in number and popularity. With a few exceptions, these
-  languages promote application architectures oriented around the
-  affordances of compile-time type systems, and a development workflow
-  characterized by alternating batch compilation with whole-program
-  reloading. In this paper, I introduce a new, Web browser-based
-  implementation of an extended subset of Common Lisp called
-  Javascript-Assisted Common Lisp or \textbf{JACL}. JACL is an
-  incomplete but ongoing effort to promote an interactive workflow
-  that improves the efficiency of SPA development without compromising
-  on the size or speed of deliverables, relative to contemporary
-  alternatives.
+  technique for implementing responsive Web-based User Interfaces
+  (UIs). SPAs are most commonly implemented in JavaScript.
+
+  In this paper I introduce JavaScript-Assisted Common Lisp (JACL), a
+  new Web-browser based implementation of an extended subset of 
+  Common Lisp. JACL promotes an interactive,
+  incremental, and bottom-up approach to developing SPAs in the Lisp
+  tradition. JACL is incomplete, but development is active and ongoing.
+
+  %%project goals are to:
+
+  %%\begin{itemize}
+  %%  \item Promote an \textit{interactive}, image-based development workflow supporting incremental, bottom-up development, in the Lisp tradition
+  %%  \item Integrate tightly with the Web browser platform
+  %%  \item Produce executables competitive in size and speed with those produced by other popular compiled-to-JavaScript languages
+  %%\end{itemize}
+
+
+%%In response to the technical demands of SPAs, JavaScript and the Web
+%%browser platform have evolved considerably in the past decade.
+%%
+%%
+%%  Google's GMail Web application is a well-known example. In response
+%%  to the technical demands of SPAs, JavaScript and the Web browser
+%%  platform have evolved considerably in the past decade. In the same
+%%  period, SPAs grew in complexity and ambition, and languages that
+%%  compile to JavaScript --- but claim some advantage relative to it,
+%%  often with regard to the management of complexity --- have increased
+%%  in number and popularity. With a few exceptions, these languages
+%%  promote application architectures oriented around the affordances of
+%%  compile-time type systems, and a development workflow characterized
+%%  by alternating batch compilation with whole-program reloading. In
+%%  this paper, I introduce a new, Web browser-based implementation of
+%%  an extended subset of Common Lisp called Javascript-Assisted Common
+%%  Lisp or \textbf{JACL}. JACL is an incomplete but ongoing effort to
+%%  promote an interactive workflow that improves the efficiency of SPA
+%%  development without compromising on the size or speed of
+%%  deliverables, relative to contemporary alternatives.
 \end{abstract}
 
 %%
@@ -113,7 +129,104 @@
 %% information and builds the first part of the formatted document.
 \maketitle
 
-%% \section{Introduction}
+\section{Introduction}
+
+The demand for SPAs in the past decade has continued to
+grow. Stakeholders and users continue to expect higher and higher
+degrees of sophistication and performance from Web applications.
+
+To satisfy these rising expectations, Web browser platform
+capabilities have advanced considerably. Beyond drastic improvements
+to JavaScript runtime and layout engine performance, browsers have
+also accumulated APIs for interacting with webcams and audio devices,
+sending and receiving low-latency data over WebSockets, obtaining
+location data, accessing the host filesystem, and more.
+
+The growing set of demands and platform capabilities, combined with
+the inherent limitations of the Web browser's security model, pose a unique
+set of challenges to today's SPA implementors.
+
+
+
+
+
+To satisfy these rising expectations, the stack of network computing
+standards, infrastructure, and technology supporting the SPA concept
+have all advanced considerably in the same period. HTTP/2, pervasive
+CDNs, JavaScript runtimes, and layout engines are a few notable
+examples.
+
+As the technology fabric supporting SPAs has moved forward, so too
+have the practices of application implementors.
+
+In the past decade, SPAs have grown considerably in ambition and
+complexity, and languages for SPA development that compile to
+JavaScript --- but claim some advantage relative to it, often with
+regard to large-scale development --- have increased in number and
+popularity.
+
+For the most part, these languages imply a development workflow
+characterized by alternating batch compilation with whole-program
+reloading, and an application architecture oriented around the
+affordances of static type-checking. Dart, TypeScript
+\cite{Somasegar12}, Elm, and Flow are some well-known examples.
+
+
+
+
+
+This paper presents JACL. As a Lisp, JACL promotes a
+compilation model oriented around the manipulation of a Lisp image. 
+
+a
+workflow oriented around the manipulation of a Lisp image, and as a
+Lisp, implies much less about application architecture while
+supporting interactive development and bottom-up design.
+
+\subsection{Tool Development}
+
+First, the batch compilation workflow impedes the production of
+development tools for combating complexity on a per-application
+basis. A compiler toolchain such as Grunt or Webpack must first be
+installed on the development machine, and such toolchains typically
+require extensive configuration and maintenance. This configuration
+activity, while a prerequisite, is orthogonal to SPA development in
+the sense that it's effected in a language and environment disparate
+from that of the SPA. For example, the toolchain platform is usually
+Node.js, while the SPA platform is that of the Web browser. Although
+Node.js and the Web browser are both programmed in JavaScript,
+significant differences between these platforms are likely to
+discourage per-application tool development.
+
+Development tools are usually created organically as part of the
+development process. The harder such tools are to create, the more
+application complexity developers must regularly inure themselves to.
+
+\subsection{Interactive Development}
+
+Second, static type-checking impedes interactive development, which is
+a well-known technique for rapidly producing high-quality
+software. Compilers that perform static type-checking are necessarily
+slower than those that do not, which increases ``cycle time.'' 
+
+
+
+%%  Google's GMail Web application is a well-known example. In response
+%%  to the technical demands of SPAs, JavaScript and the Web browser
+%%  platform have evolved considerably in the past decade. In the same
+%%  period, SPAs grew in complexity and ambition, and languages that
+%%  compile to JavaScript --- but claim some advantage relative to it,
+%%  often with regard to the management of complexity --- have increased
+%%  in number and popularity. With a few exceptions, these languages
+%%  promote application architectures oriented around the affordances of
+%%  compile-time type systems, and a development workflow characterized
+%%  by alternating batch compilation with whole-program reloading. In
+%%  this paper, I introduce a new, Web browser-based implementation of
+%%  an extended subset of Common Lisp called Javascript-Assisted Common
+%%  Lisp or \textbf{JACL}. JACL is an incomplete but ongoing effort to
+%%  promote an interactive workflow that improves the efficiency of SPA
+%%  development without compromising on the size or speed of
+%%  deliverables, relative to contemporary alternatives.
 %% ACM's consolidated article template, introduced in 2017, provides a
 %% consistent \LaTeX\ style for use across ACM publications, and
 %% incorporates accessibility and metadata-extraction functionality
@@ -569,7 +682,7 @@
 %% The next two lines define the bibliography style to be used, and
 %% the bibliography file.
 \bibliographystyle{ACM-Reference-Format}
-\bibliography{sample-base}
+\bibliography{jacl-els-2020}
 
 %%
 %% If your work has an appendix, this is the place to put it.