View this PageEdit this PageAttachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide
Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007

Discussion 3 - Stephen Ake

Part I

1. A problem that I have come across in Squeak (and have been very annoyed at) is the extreme lack of documentation. This lack of documentation is prevalent all across the board, in that there is not a good, authoritative reference to the entire class hierarchy, and there is usually only terse documentation on the method level. In Java, for example, one can view the entire JDK specification either in print or online. This contains nearly exhaustive information about how each class works, its superclasses, its different constructors, its different methods that take different arguments, etc. In C and C++, the standard library is largely standardized by ANSI (even though the C/C++ standard library is not as high-level as Java or Squeak). Something as trivial as viewing all the methods of a class and their arguments on a single page or screen is virtually impossible in Squeak. Method names are not always obvious (e.g., extent: changes the height and width of a Morph), and must usually be found by brute force or trial and error. Some people claim that "the code documents itself", but I have found, at best, that to understand much of the Squeak's code (especially in the Morphic classes) requires a steep learning curve. I have partially overcome this problem by asking questions on the newsgroup, seen the professor do demonstrations in class, and searching minnow.cc.gatech.edu for answers.

2. Something I really like about Squeak is the ability to instantly execute any line of code anywhere. This is possible by typing a line of code - in a Transcript, an Inspector, a Debugger, or many other text-viewing programs in Squeak - and typing Alt-D (Command-D on Macs, I think) - and the code is executed. This makes it very easy to debug a program because one can execute lines of code, 1 at a time, until something doesn't work.

Part II

Thanks to Russell Myers for the bit about the layout tool. I'll look into that for my teams' upcoming milestones with the different layouts we will need.
Thanks to Daniel Engel for info about the hierarchy browser - hopefully it will come handy when I need enumeration of all the methods a particular class has.

Links to this Page