From 90d555c27f3f46d0f8951d91efd691582fb28a0e Mon Sep 17 00:00:00 2001 From: "ajeffrey@roblox.com" Date: Tue, 20 Jul 2021 11:06:15 -0500 Subject: [PATCH] Suggestions on the HATRA paper from Robert Melly --- papers/hatra21/bibliography.bib | 4 ++-- papers/hatra21/hatra21.pdf | Bin 1295137 -> 1295172 bytes papers/hatra21/hatra21.tex | 9 +++++---- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/papers/hatra21/bibliography.bib b/papers/hatra21/bibliography.bib index 544c0941..8c401d2e 100644 --- a/papers/hatra21/bibliography.bib +++ b/papers/hatra21/bibliography.bib @@ -73,7 +73,7 @@ } @InProceedings{WellTyped, - author = {Philip Wadler and Robert Bruce Findler}, + author = {Philip Wadler and Robert B. Findler}, title = {Well-typed Programs Can’t be Blamed}, booktitle = {Proc. European Symp. Programming}, year = {2009}, @@ -81,7 +81,7 @@ } @InProceedings{Contracts, - author = {Robert B, Findler and Matthias Felleisen}, + author = {Robert B. Findler and Matthias Felleisen}, title = {Contracts for Higher-order Functions}, booktitle = {Proc. Int. Conf. Functional Programming}, year = {2002}, diff --git a/papers/hatra21/hatra21.pdf b/papers/hatra21/hatra21.pdf index 21afba6aa469219a48eefd1246e7f725a6deb0a3..cb77af0806ad31ac676c059acadc0965092d248b 100644 GIT binary patch delta 20879 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 JYWnJA{|5_dOpyQp delta 20826 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 WJep(Pmm0$pAqh4x3MC~)PeuxUYePo> diff --git a/papers/hatra21/hatra21.tex b/papers/hatra21/hatra21.tex index 4f595bbd..a44ad80b 100644 --- a/papers/hatra21/hatra21.tex +++ b/papers/hatra21/hatra21.tex @@ -39,7 +39,7 @@ \begin{abstract} Luau is the scripting language used in creating Roblox experiences. It is a statically-typed language based on the dynamically-typed Lua language, - and uses type inference to infer types. These types are used in the + with type inference. These types are used in the IDE, for example when providing autocomplete suggestions. In this paper, we describe some of the goals of the Luau type system, focusing on where the goals are different from those of other type systems. @@ -77,7 +77,7 @@ 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}, as the professional development studios bring high-quality experiences to the platform, and the beginning creators -contribute to the energetic creative community. +contribute to the energetic creative community, and will form the next generation of developers. \subsection{Goal-driven learning} @@ -91,7 +91,8 @@ The user experience of developing a Roblox experience is primarily a and deploys 3D assets such as terrain, parts and joints, and provides them with physics attributes such as mass and orientation. The user can interact with the experience in Studio, and deploy it to a Roblox -server so anyone with the Roblox app can play it. +server so anyone with the Roblox app can play it. Physics, rendering +and multiplayer are all immediately accessible to all creators. \begin{figure} \includegraphics[width=0.48\textwidth]{studio-mow.png} @@ -104,7 +105,7 @@ At some point during experience design, the user of Studio has a need which can't be met by the physics engine alone. ``The stairs should light up when a player walks on them'' or ``a firework is set off every few seconds.'' At this point they will discover the script -editor, seen in Fig.~\ref{fig:studio}(b), and the Luau programming language. +editor, seen in Fig.~\ref{fig:studio}(b). This onboarding experience is different from many initial exposures to programming, in that by the time the user first opens the script