Squeak Beginners Tutorial

Matthew Fulmer tapplek at gmail.com
Mon Sep 25 08:20:06 UTC 2006


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