update with moar feedback

This commit is contained in:
Lily Brown 2021-08-04 13:43:59 -07:00
parent feeb75b1fe
commit 92a00e9415
2 changed files with 20 additions and 18 deletions

Binary file not shown.

View file

@ -26,17 +26,17 @@
\begin{document}
\title{Position Paper: Some Goals of the Luau Type System}
\title{Position Paper: Goals of the Luau Type System}
%% \author{Lily Brown}
%% \author{Andy Friesen}
%% \author{Alan Jeffrey}
%% \affiliation{
%% \institution{Roblox}
%% \city{San Mateo}
%% \state{CA}
%% \country{USA}
%% }
\author{Lily Brown}
\author{Andy Friesen}
\author{Alan Jeffrey}
\affiliation{
\institution{Roblox}
\city{San Mateo}
\state{CA}
\country{USA}
}
\begin{abstract}
Luau is the scripting language that powers user-generated experiences on the
@ -69,9 +69,11 @@ as supporting goal-driven learning, non-strict typing semantics, and
mixed strict and non-strict types. Particular focus is placed on how
these goals differ from traditional type systems' goals.
\section{Human Aspects}
\section{Needs of the Roblox platform}
\subsection{Heterogeneous developer community}
Need: \emph{a language that is powerful enough to support professional users, yet accessible to beginners}
Quoting a Roblox 2020 report \cite{RobloxDevelopers}:
\begin{itemize}
\item \emph{Adopt Me!} now has over 10 billion plays and surpassed 1.6 million concurrent users earlier this year.
@ -80,14 +82,14 @@ Quoting a Roblox 2020 report \cite{RobloxDevelopers}:
\end{itemize}
This demonstrates the heterogeneity of the Roblox developer community:
developers of experiences with billions of plays are on the same
platform as children first learning to code. Moreover, \emph{both of
these groups are important}. The professional development studios
bring high-quality experiences to the platform, and the beginning creators
contribute to the energetic creative community, forming the next generation of developers.
platform as children first learning to code. Both of these groups are important to
support. The professional development studios bring high-quality experiences to the
platform, and the beginning creators contribute to the energetic creative community,
forming the next generation of developers.
\subsection{Goal-driven learning}
Goal: \emph{support learning how to perform specific tasks organically}
Need: \emph{organic learning for achieving specific goals}
All developers are goal-driven, but this is especially true for
learners. A learner will download Roblox Studio with an
@ -123,7 +125,7 @@ specific task with as much help as possible from tools.
\subsection{Type-driven development}
Goal: \emph{enable users to leverage types in their development process}
Need: \emph{a language that supports large-scale codebases and defect detection}
Professional development studios are also goal-directed (though the
goals may be more abstract, such as ``decrease user churn'' or
@ -158,7 +160,7 @@ types are introduced gradually, through API documentation and type discovery.
Type inference provides many of the benefits of type-driven development
even to creators who are not explicitly providing types.
\section{Types}
\section{Goals of the type system}
\subsection{Infallible types}
Goal: \emph{provide type information even for ill-typed or syntactically invalid programs.}