






Squeak for Non-Native Speakers
Squeak for Non-Native Speakers, by Noel Rappin of EchoBridge.
Current draft: rappin.pdf
Promised Reviewers:
I made a first review but do not knwo how to reach you
so contact me ducasse@iam.unibe.ch
Stephane Ducasse http://www.iam.unibe.ch/~ducasse/
You can reach me at noel@echobridge.com
Thanks, Noel
Comments:
From Bruce O'Neel
I liked this chapter. A few very minor comments:
Under the art of browsing. Update - is this necessary after Scott's
recent changes? It seems that browsers do a good job updating themselves these days. Maybe no...
Alphabetize - pain probably should be pane :-)
Under saving, loading, and sharing.
It's true that these files are almost text. Certainly on the Mac
they are text files. Still, it might not be a bad idea to put something here so that people don't start converting them to their
native text format. That definitly ranks as one of the most common
problems on for new users on the Squeak mailing list.
Next paragraph. I don't think you have to update the browser.
Last paragraph in this section about filing out and loading change sets. It might be useful to mention the file into new change set option here.
Building with blocks - refactoring is probably a word not familiar to the non Smalltalk world. It should be familiar, but it probably isn't.
Very nice chapter!
cheers
bruce
Mark's Review of "Squeak for Non-Native Squeakers"
Noel, I really liked your chapter. Do keep your comfortable style. I don't think that this chapter should be a "lecture." You're writing for a professional audience that isn't interested in a lecture. I particularly like your references to Java and C++ – I think that's your main story: "For those of you who know another OO language, let me present how to get started in Squeak."
Please work on screenshots – that's the biggest weakness in your chapter. Some of your textual discussion will go away entirely with a screenshot, I think.
Issues
- First paragraph "web server, ...handwriting recognizer, cheese grater, and so on." Could you toss in a "(not really on that one)"? I could imagine someone deciding that BOTH handwriting recognizer and cheese grater were jokes.
- p.1 Bottom "previous Smalltalk" should probably be capitalized
- p.2 - you mention the "Sources file" but you haven't mentioned it yet. All the files should be on the accompanying CD, too.
- p. 3 - Do you know what happened to the numbering on the bullet list? I don't think it was supposed to be numbered. Is it that way in your image? I can fix in the final meld if it happens again.
- p. 3 "Squeak2.7.image" – offer this as an example, but image files can have other names. Maybe italicize, boldface, or System style the filename to make ti stand out. Also, the image file can be thought of as "all the objects in your system." I explain it to my students as a dump of memory of the Squeak virtual machine. That might be easier than using phrases like "compiled byte code" that they might not grok at this point.
- p.3: You start to talk about why the Squeak VM is so much smaller than Java's. Would it be worth it here (or soon after) to talk explicitly about VM<->image tradeoffs, that is, what gets put in the language (more flexible, slower) and what gets put in the VM (faster, less flexible, may make porting harder)?
- p. 4: The description of what the screen looks like will go away with a real screenshot, no?
- Also at top of p. 4: Is it "explorer" or "Explorer"?
- p. 5: Would a table be useful to explain red, yellow, blue for common platforms (Mac, UNIX, Windoze)?
- p. 5: You call it "System Menu," and I call it (in my book) "World or Desktop Menu" (Morphic or MVC, respectively). Does it have a name? Do you know?
- p. 5: A screenshot here of the parts of a window would be great
- p. 5 "desktop, a fact..." maybe "desktop–a fact..."
- p. 5: Italicize and define "project"?
- p. 6: Screenshot of workspace and Transcript
- p. 7: Screenshots of Inspector and Browser
- p. 9: Love the "empowered" comment
- p. 10: There is a place where <object><message< fails: ^ returnObject. Alan has explained this as "^ is a message send back to the calling object," which is a nice mental rationalization.
- p. 11: "The left side is evaluated first..." Not really. In Squeak, the left side is not actually evaluated. It's a litle dangerous to say that because there's an implication that the value of a variable could be "set" and "accessed" separate from the object itself, e.g., the concept of a pointer.
- P. 12 footnote: I couldn't figure out what "similar features" and "have one someday" referred to.
- p. 13. Missing period after "protected." Do you want to italicize protected as a keyword? Do you want to also say in here that class variables and methods are akin to Java statics?
- p. 14. Squeak has no explicit destructor methods, true, but there are ways of getting that with Weak Arrays. Worth a footnote?
- p. 15: Object doesNotUnderstand occurs at the end of the process. First, self is sent "doesNotUnderstand," and it can catch it, and eventually it can get up to Object. Or did I misinterpret what you were saying here?
- p. 20: ".st" looks lonely there with no typography or anything.
- p. 22: Careful about calling block arguments "temporary variables" Blocks in other dialects of Smalltalk DO have temporary variables, ala [:i | a b| i + a + b].
- p. 23: I think that the strongest reason for blocks is that you can create your own control structures. I think that that's something that you might want to mention at the top of 23 before entering into control structures at the bottom of 23 (Or at the end of 25)
- p. 26 "even gotten close" – does that pass Word's grammar checker? :-)
- p. 26: I make an argument that a collection is homogeneous in Squeak – it's all objects :-)
- p. 28: Perhaps some headings on the table would make it clearer what's up?
- p. 28 mid: "Which points out..." isn't a sentence – missing a subject and verb
- p. 29: Squeak strings are mutable – but not in length. Length is immutable.
- p. 29 mid: "beyond scope here" missing a word or two?
- p. 29 bottom: Where bags zoom is includes: To answer the question of whether an array holds some value requires a search. Asking a bag if it holds an object takes almost no time at all.
- What about showing something amazingly cool that novices could really use? I'm thinking of a tiny tutorial on the debugger, or a picture and description of the MethodFinder. Something to give them a leg up, without adding more than a page or two?
ullu ki dumm
Link to this Page