Skip to content

Commit 16f5728

Browse files
author
Steve Krouse
committed
more LP notes
1 parent 8dfe712 commit 16f5728

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

notes/bret-victor/learnable-programming.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,34 @@ I love how he explains the two ways to eliminate hiddden state:
188188
1. Make it non-hidden
189189
2. Show it
190190

191+
WoofJS improves on the way ProcssingJS (or the normal canvas API) exposes color changes by making them explicit extra local parameters to sprites, as opposed to implicit global state. However, WoofJS still has hidden global data in the form of variables as well as the attributes of sprites, which can be changed from anywhere in the code.
192+
193+
Scratch (and Bret's demo) show global variables by simply putting them on the screen (unless you choose to hide them.) Very straightforward.
194+
195+
Woah, the way he makes transformation matrixes understandable by visualizing them is beautiful! Why hadn't I thought of that?!
196+
197+
This is a great rule: "All state must be eliminated or shown."
198+
199+
## Create by reacting
200+
201+
### Get something on the screen as soon as possible
202+
203+
This is pretty straightforward. WoofJS does this well with autocomplete.
204+
205+
> Strangely, I don't actually know of any APIs that are intentionally designed with autocomplete in mind. I do know many APIs, such as Processing, that are designed for brevity, which is irrelevant in an environment with good autocomplete.
206+
207+
Well WoofJS was designed with autocomplete in mind. Typing out all the parameter names was never part of the deal. I knew those would be written for you.
208+
209+
### Dump the parts bucket onto the floor
210+
211+
Scratch does a pretty good job of this. WoofJS does a slightly worse job but still pretty good - and we're going to make it more like Scratch soon. Dynamicland makes this really interesting because you can literally dump the programming constructs on the literal floor (or put them on a bookshelf).
212+
213+
#### Direct manipulation
214+
215+
The direct manipulation stuff he shows here is also very cool.
216+
217+
TODO think about and/or find someone else's thoughts on the pros and cons of direct manipulation.
218+
191219
<script>
192220

193221
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){

0 commit comments

Comments
 (0)