~technomancy/fennel-lang.org

fennel-lang.org/survey/questions.fnl -rw-r--r-- 5.2 KiB
3cc0aa1dPhil Hagelberg Don't claim to be more efficient than Lua. 7 hours ago
                                                                                
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
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
(local questions [])

;; for next time
;; * break out Windows (WSL)
;; * mention luvit and hammerspoon
;; * separate out error messages compile time vs runtime
;; * why that lua version?
;; * add lite as a text editor
;; * break out editor/tooling problems, maybe even debugger specifically
;; * "how would you characterize" add "config/dotfiles" option
;; * add rust to languages list
;; * more granularity in "How long have you used fennel"
;; * "why luajit"?

(fn q [question type answers]
  (table.insert questions {: question : type : answers}))

(q "Versions and Ecosystem" :section)

(q "What versions of Fennel do you use?" :checkbox
   ["latest from git"
    "0.10.x"
    "0.9.x"
    "0.8.x"
    "0.7.x"
    "0.6.x"
    "0.5.x"
    "older"])

(q "What versions of Lua do you use? (PUC is 'regular' Lua)" :checkbox
   ["LuaJIT"
    "PUC 5.4"
    "PUC 5.3"
    "PUC 5.2"
    "PUC 5.1"
    "fengari"
    "luaj"
    "rembulan"
    "moonsharp"
    "luerl"
    "gopher-lua"
    "Other"])

(q "Do you use LuaRocks?" :checkbox
   ["Yes, to install applications/tools (luacheck, lua-repl)"
    "Yes, to manage libraries in my codebase"
    "No"])

(q "What OS do you use?" :checkbox
   ["MacOS"
    "Linux-based"
    "Other BSD-based"
    "Windows"
    "Other"])

(q "What text editor do you use for Fennel?" :checkbox
   ["Emacs"
    "NeoVim"
    "Vim"
    "VS Code"
    "Kakoune"
    "Vis"
    "Notepad ++"
    "Other"])

(q "Do you use readline in your repl?" :checkbox
   ["Yes"
    "No, the repl I use has readline features already (Emacs, etc)"
    "No, I haven't bothered to get it installed"
    "No, I don't find it useful"
    "No, I don't use the repl"
    "What is readline?"])

(q "Tell us a bit about yourself (remember, optional!)" :section)

(q "What is your age?" :number)

(q "How many years have you been programming?" :number)

(q "How many years have you used Fennel?" :number)

(q "What is your gender?" :text)

(q "Other than Fennel, what languages do you use regularly?" :checkbox
   ["Lua"
    "Clojure"
    "Javascript"
    "Java"
    "Python"
    "Ruby"
    "C"
    "C++"
    "C#"
    "Emacs Lisp"
    "Scala"
    "Go"
    "PHP"
    "Racket"
    "Scheme"
    "Common Lisp"
    "Kotlin"
    "Haskell"
    "OCaml"
    "Erlang"
    "Forth"
    "Julia"
    "Other"])

(q "Where did you hear about Fennel?" :text)

(q "Where do you discuss Fennel or interact with other Fennel developers?" :checkbox
   ["Libera Chat (IRC)"
    "Matrix"
    "The official mailing list"
    "Fediverse"
    "Twitter"
    "Reddit"
    "Hacker News"
    "Other chat platforms"
    "Nowhere =("
    "Other"])

(q "How do you use Fennel" :section)

(q "How would you characterize your use of Fennel?" :checkbox
   ["I use it for personal code that I haven't shared with others"
    "I use it to make games"
    "I use it at school"
    "I use it for web applications"
    "I use it for sysadmin tasks"
    "I use it to make music"
    "I use it for other hobby projects"
    "I use it at work (secretly)"
    "I use it at work (openly)"
    "Other"])

(q "What does your use of Fennel look like?" :checkbox
   ["I embed the whole Fennel compiler in larger programs"
    "I compile my Fennel code to Lua, which I then embed"
    "I use programs which have first-class Fennel support"
    "I compile standalone Lua programs"
    "I compile standalone binaries"
    "Other"])

(q "What programs do you use Fennel with?" :checkbox
   ["NeoVim"
    "LÖVE (love2d)"
    "TIC-80"
    "nginx/OpenResty"
    "awesome-wm"
    "Minetest"
    "NeoMutt"
    "mpv"
    "Other"])

(q "What are your favorite features of Fennel? (pick up to 5)" :checkbox
   ["Consistent and regular syntax"
    "Interactive development/repl"
    "Simple semantics"
    "Pattern matching"
    "Strict global checking"
    "Small size, low memory usage"
    "Community"
    "Speed"
    "Macros"
    "Access to Lua ecosystem"
    "Modules"
    "Metatables"
    "Coroutines"
    "Nil-argument checks"
    "Readable compiler output"
    "Require-as-include"])

(q "What are the biggest problems you have using Fennel? (pick up to 5)" :checkbox
   ["Reluctance to introduce new languages to projects with teammates"
    "Lua library ecosystem is relatively small"
    "Unfamiliarity with Lua"
    "Lack of immutable data structures"
    "Lack of static types"
    "Non-first-class arithmetic operators"
    "Need better editor/tooling support"
    "Portability across Lua versions"
    "Unclear documentation"
    "Confusing error messages"
    "Too slow (runtime)"
    "Too slow (compile time)"
    "Unclear how to build applications and libraries"
    "Unclear how to incorporate libraries into your build"
    "No runtime functions (need lume/luafun/penlight for common operations)"
    "Unpleasant community interactions"
    "No early returns"])

(q "If you haven't hacked on Fennel itself, why not?" :checkbox
   ["It already does everything I want"
    "I tried but I couldn't understand it"
    "I haven't found the time but I hope to in the future"
    "I'm intimidated by compilers"
    "I have hacked on the compiler"])

(q "Wrapping up" :section)

(q "What would you most like to see in a future version of Fennel?" :textarea)

(q "Do you have any code you've written in Fennel you would like to share?"
   :textarea)

(q "Any other comments?" :textarea)

(q "Submit" :submit)

questions