Squeak Beginners Tutorial

Andrew Norrie mail at AndrewNorrie.net
Mon Sep 25 12:45:14 UTC 2006


Matthew

Firstly let me say that I am quite new to Smalltalk and Squeak though  
I am quite experienced with a number of other programming languages.  
In some ways I wish I had not ignored Smalltalk for so long.

For the most part I agree with your comments. I found working through  
the Cincom VisualWorks tutorial a little less than interesting. The  
information they present is solid but the subject didn't hold my  
attention.

Seaside, for all its merits, wouldn't be a good choice for a  
beginners tutorial. Having to explain the concept of Seaside before  
the tutorial even begins is a distraction that is best avoided. I  
don't mean to detract from Seaside, I just believe that web  
development is too specific a topic for an introduction to Squeak.

A graphical environment is presented as soon as Squeak starts. It  
would seem silly to ignore it.

I'm not sure of you target audience but I see no reason to exclude  
novice programmers. Smalltalk is good choice for a first language to  
learn. This doesn't mean there needs to be a wordy explanation of  
concepts like looping and flow control. To the contrary.

Consider 'The C Programming Language' by Brian Kernighan and Dennis  
Ritchie. A book that describes a language that is syntactically much  
more complex than Smalltalk without making assumptions the reader is  
an experienced programmer. Their style is to use concise explanations  
that are illustrated by short snippets of code so as not to bore more  
knowledgeable readers. Some people may say that this is a difficult  
book to read. I would suggest that is more to do with the subject  
than it's presentation. Smalltalk that has a higher degree of  
readability would lend itself to this style of writing.

I first learned programming in the '80s on computers that had simple  
graphics and built in BASIC interpreters. In a few of lines you could  
get them to draw something. It was easy and it was fun. Squeak is the  
only modern platform I know of that shares this same spirit. It  
deserves to be made more accessible.

Anyway I'm willing to help and I've rambled enough for now.


Drew


On 25/09/2006, at 6:20 PM, Matthew Fulmer wrote:

> On Sun, Sep 24, 2006 at 10:41:23AM -0400, Chris Kassopulo wrote:
>> Cincom has a pair of tutorials that are excellent.  They are  
>> intended for
>> people with little programming and no smalltalk experience.  They  
>> contain
>> lots of graphics and lots of links to more detailed information.   
>> You are
>> guided through developing an application that analyzes web log  
>> stats by
>> first coding in a workspace and and then moving your code to  
>> methods.  The
>> first tutorial creates the classes and methods.  In the second you  
>> develop
>> a gui for the application and package it.  Along the way you learn  
>> the
>> basics of using smalltalk.  By the end you hunger for more.
>>
>> While I'm sure you have your own ideas of content, you would do  
>> well to
>> look over their material:
>>
>> http://www.cincomsmalltalk.com/userblogs/cincom/blogView? 
>> content=tutorials
>
> <personal_opinion>
>
> This is an excellent tutorial, and I hope our squeak tutorial
> can be of similar quality. However, I think this tutorial is
> unsuitable to a reader who is already familiar with blocks,
> loops, classes, and methods. If one understands these topics,
> the density of new information in the first tutorial is very
> low. Our tutorial should be much shorter and denser, since we
> are assuming that the reader already understands blocks, loops,
> classes, and methods. I did not look at the second tutorial.
>
> Also, the example of reading a log file did not seem very
> interesting or exciting to me; it is also not a typical
> application of Squeak.
>
> </personal_opinion>
>
> My idea for a demo application is a mock stock ticker. It would
> consist of two components:
>
> 1.  A data "retrieval" class. This would not retrieve real data,
>     but would make  up companies and numbers and send that data
>     to a client. It would mostly be a wrapper around a
>     Dictionary or something similar; it would be an easy first
>     class to write.  It would also serve to introduce the reader
>     to Collections and to the System Browser.
>
> 2.  A StockTickerMorph. This would take the data from the server
>     class and present it in a "scrolling ticker" widget similar
>     to the one on TV. Again the real functionality is minimal,
>     but it would illustrate how easy it is to create custom
>     animated widgets in Squeak and Morphic (I am assuming it is
>     easy).
>
> I admit that I am partial to pretty animations, and am not
> really interested in routine tasks like parsing log files.
> Also, I want to show the reader that Squeak not only makes
> "easy" things easy (log file inspection), but also makes "cool"
> things easy (animated widgets). I believe that is (or should be)
> a major selling point for Squeak.
>
> I realize I disagree with some of you about what should be in
> the tutorial, and what applications are interesting. Most of
> this disagreement can be summarized in three words: Morphic vs.
> Seaside. I am on the Morphic side, and Bakki and Chris seem to
> be on the Seaside side (Jason and Derek have not expressed an
> opinion). I cannot predict whether a beginner will be more
> interested in rich client development (Morphic), or web
> development (Seaside), and a including both in a single tutorial
> would make the tutorial broad rather than focused. Thus, I
> think that we should include one in the tutorial and save the
> other for later.
>
> Why should Morphic be in the beginners tutorial, rather than
> Seaside?
> * Morphic comes with the default Squeak image
> * Craig Latta wants a beginners tutorial on Morphic
> * Morphic is "cooler" than web development
>
> We could maintain a separate Seaside tutorial. However, we do
> not currently have the organizational capacity to focus on more
> than one project. I have said before:
>
> The reason that previous documentation efforts failed is the
> lack of focus. To succeed, we must press ahead. There is no
> "ahead" unless we set a goal and work toward it. Our current
> goal is reasonably small and well-defined. By achieving a small
> goal, we will prove to the community and to ourselves that we
> can achieve progressively bigger and better goals. Focus on the
> task at hand; everything else will come in time.
>
>> I am also willing to edit and prepare content provided by others.
>
> Welcome to the team!
>
> -- 
> Matthew Fulmer
>
>




More information about the Squeak-dev mailing list