-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
159 lines (144 loc) · 5.18 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>How do Elm programmers write code?</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;700;900&display=swap" rel="stylesheet">
<link rel="stylesheet" href="reset.css" />
<link rel="stylesheet" href="main.css" />
</head>
<body>
<header>
<h1>How do Elm programmers write code?</h1>
<ul>
<li><a href="https://jlubin.net">Justin Lubin</a></li>
<li><a href="https://schasins.com">Sarah E. Chasins</a></li>
</ul>
</header>
<section>
<p>
As
<a href="https://elm-lang.org/">
Elm</a>
developers, we often hear things like…
</p>
<ul>
<li>
“First, define your types right; then, the rest of your program
will follow”
</li>
<li>
“Use your compiler as an assistant”
<span class="attribution">
(with thanks to
<a href="https://elm-lang.org/news/compilers-as-assistants">
Evan Czaplicki</a>)
</span>
</li>
<li>
“Make impossible states impossible”
<span class="attribution">
(with thanks to
<a href="https://www.youtube.com/watch?v=IcgmSRJHu_8">
Richard Feldman</a>, and, earlier,
<a href="https://blog.janestreet.com/effective-ml-revisited/">
Yaron Minsky</a>)
</span>
</li>
</ul>
<p>
…but what does that look like in practice?
</p>
</section>
<section>
<ul>
<li>
How do we actually construct types “right” in the first
place?
</li>
<li>
What aspects of the compiler do we really use as an assistant?
</li>
</ul>
<p>
I’m fascinated by these kinds of questions! If you are too,
<strong class="callout">
you might be interested in participating in an
<a href="https://cphs.berkeley.edu/">
IRB</a>-approved
research study I’m running!
</strong>
</p>
</section>
<section>
<p>
Participation entails installing an editor plugin I made that:
</p>
<ol>
<li>
Locally logs all changes you make to a programming project of your
choice.
</li>
<li>
Occasionally asks you to redact sensitive information and for
permission to upload the data to our server.
</li>
</ol>
<p>
We will publicly release these logs for researchers to analyze, which
we hope will help authors of tools for languages like Elm align their
tools to programmers’ needs and existing behaviors.
</p>
<p>
If you write Elm code and are interested in participating in this
study, please click the button below to go to our (non-binding) sign-up
survey:
</p>
<a class="big-button" href="https://docs.google.com/forms/d/e/1FAIpQLSes1bgsKcM8wAzIitpShJHFG0kuEPyn1vFGARTsZr2OCkSB6Q/viewform?usp=sf_link">
Go to Sign-up Survey!</a>
<p>
It’s worth mentioning that we will
<strong>not</strong>
publicly associate your identity with the data we publish. However,
someone could associate you with these logs if you leave personal
information unredacted or host the code elsewhere that has your
identity associated with it, like GitHub.
</p>
<p>
For more information, please feel free to take a look at our
<a href="https://github.com/plait-lab/edit-mirror/blob/main/docs/informed-consent.pdf">
informed consent form</a>!
</p>
</section>
<section>
<h2>About the authors</h2>
<p>
My name is
<a href="https://jlubin.net">
Justin Lubin</a>.
I’m a computer science PhD student at UC Berkeley working with my
advisor, Professor
<a href="https://schasins.com/">
Sarah E. Chasins</a>.
For the past year and a half, I’ve been studying how programmers
write code in statically-typed functional languages like Elm.
I’ve published a
<a href="https://dl.acm.org/doi/10.1145/3485532">
paper</a>
on this topic (with a
<a href="https://twitter.com/jplubin/status/1449159815058522115">
Twitter thread</a>
and
<a href="https://dl.acm.org/doi/10.1145/3485532#sec-supp">
video</a>,
too!), and, with this study, I’d like to significantly expand
some of the analyses I did for that paper. This will only be possible
with the help of programmers like you, so let’s make the future
of statically-typed functional programming even better—together!
</p>
</section>
</body>
</html>