mirror of
https://github.com/luau-lang/luau.git
synced 2025-04-10 22:00:54 +01:00
update with moar feedback
This commit is contained in:
parent
feeb75b1fe
commit
92a00e9415
2 changed files with 20 additions and 18 deletions
Binary file not shown.
|
@ -26,17 +26,17 @@
|
||||||
|
|
||||||
\begin{document}
|
\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{Lily Brown}
|
||||||
%% \author{Andy Friesen}
|
\author{Andy Friesen}
|
||||||
%% \author{Alan Jeffrey}
|
\author{Alan Jeffrey}
|
||||||
%% \affiliation{
|
\affiliation{
|
||||||
%% \institution{Roblox}
|
\institution{Roblox}
|
||||||
%% \city{San Mateo}
|
\city{San Mateo}
|
||||||
%% \state{CA}
|
\state{CA}
|
||||||
%% \country{USA}
|
\country{USA}
|
||||||
%% }
|
}
|
||||||
|
|
||||||
\begin{abstract}
|
\begin{abstract}
|
||||||
Luau is the scripting language that powers user-generated experiences on the
|
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
|
mixed strict and non-strict types. Particular focus is placed on how
|
||||||
these goals differ from traditional type systems' goals.
|
these goals differ from traditional type systems' goals.
|
||||||
|
|
||||||
\section{Human Aspects}
|
\section{Needs of the Roblox platform}
|
||||||
\subsection{Heterogeneous developer community}
|
\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}:
|
Quoting a Roblox 2020 report \cite{RobloxDevelopers}:
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item \emph{Adopt Me!} now has over 10 billion plays and surpassed 1.6 million concurrent users earlier this year.
|
\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}
|
\end{itemize}
|
||||||
This demonstrates the heterogeneity of the Roblox developer community:
|
This demonstrates the heterogeneity of the Roblox developer community:
|
||||||
developers of experiences with billions of plays are on the same
|
developers of experiences with billions of plays are on the same
|
||||||
platform as children first learning to code. Moreover, \emph{both of
|
platform as children first learning to code. Both of these groups are important to
|
||||||
these groups are important}. The professional development studios
|
support. The professional development studios bring high-quality experiences to the
|
||||||
bring high-quality experiences to the platform, and the beginning creators
|
platform, and the beginning creators contribute to the energetic creative community,
|
||||||
contribute to the energetic creative community, forming the next generation of developers.
|
forming the next generation of developers.
|
||||||
|
|
||||||
\subsection{Goal-driven learning}
|
\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
|
All developers are goal-driven, but this is especially true for
|
||||||
learners. A learner will download Roblox Studio with an
|
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}
|
\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
|
Professional development studios are also goal-directed (though the
|
||||||
goals may be more abstract, such as ``decrease user churn'' or
|
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
|
Type inference provides many of the benefits of type-driven development
|
||||||
even to creators who are not explicitly providing types.
|
even to creators who are not explicitly providing types.
|
||||||
|
|
||||||
\section{Types}
|
\section{Goals of the type system}
|
||||||
\subsection{Infallible types}
|
\subsection{Infallible types}
|
||||||
|
|
||||||
Goal: \emph{provide type information even for ill-typed or syntactically invalid programs.}
|
Goal: \emph{provide type information even for ill-typed or syntactically invalid programs.}
|
||||||
|
|
Loading…
Add table
Reference in a new issue