Mary's Scratch Journal Entry
Scratch is one billion times easier and more fun to learn than Java, but I agree with Anon's entry which notes that it could use more explanation. The "Help" function is seldom helpful, because the entries for each object are so brief. It took me a while to figure some basic stuff out-- for example, I created costumes for my sprites that made them invisible before I found the "hide" function. A one or two page text introduction could be helpful with this kind of thing. I would organize it into different objectives-- When To Start New Threads, How To Use Layers, When To Use Variables... OK now that I try I can see it's hard to see what people will want to use it for. Maybe a Wiki page is the best option, to keep track of FAQs and provide different levels of support.
I found that there are several different ways to do most of the things I wanted to do, and that was great. I never did figure out how to edit Sprites after creation, or to control where the talk bubble appears when you use the "say ___" tool, although I think there is probably a way to do both. I think people came up with some pretty amazing games and they were very different from one another, so as far as encouraging creativity goes, the exercise seems to me to have been a success.
One other thing: this is not related to programming, but I had a lot of trouble saving projects, and closing Scratch. I would press save but it would not give me any indication it had saved, and there was no Quit option in the menu, or graphical exit (the red dot in the upper left corner of a window for OSX) and so I had to force quit each time. Open apple Q didn't work, and the "Quit" function that appears when I clicked on the dock didn't do anything. Even though I always saved multiple times before force quitting, it would warn me that I would lose all unsaved data.
The connection between law and code that struck me was the importance and difficulty of predicting what your target audience will do, the impossibility of entirely understanding the perspective of the intended audience. When you are programming, you forget how literal-minded the computer is-- well you don't forget, precisely, it's just that people are no good at dealing with parties that are incapable of leaps of intuition, no matter how small. So you spend a lot of time debugging, trying to simplify what was originally too complex or undefined an idea.
When you are writing law, the issue is not that the citizen is literal-minded but that the behavvior of entire populations is impossible to predict. How do you write a law that people do not ignore, or hate (which hypothetically leads to repeal), or find it worthwhile to disobey? The answer is probably the same-- you write a good law by spending a fair amount of time debugging the original product. The difference is that the law takes effect, and starts to influence peoples lives, before it is perfected, whereas the computer program is not released until it is in pretty good shape.
- nesson here: yes, i haven't figured out layers yet myself, and yes, perceptive observation of relation among rigor, audience unpredictability, code and law.