notes from Squeak presentation to local Smalltalk user group

Yanni Chiu yanni at rogers.com
Sat Apr 17 23:14:38 UTC 2004


Here are the notes I used for a presentation to
the local Smalltalk user group. Feel free to comment,
or to point out errors or omissions, in case there's
a next time.

The notes were opened in a file workspace, and the
font set to 36pt ComicSansMS (because it was the
narrowest font). I had a few projects set up with
some demos, using the 3.7 beta image.

The turnout was much lower than I expected.
I guess die-hard Smalltalkers are not necessarily
keen Squeakers. There was a non-Smalltalker who
showed up - so some hope for the future.

--yanni
-------------- next part --------------

Squeak

Toronto Smalltalk User Group
Thursday, April 15, 2004 - 6:30 p.m.
Yanni Chiu (email: yanni at rogers.com)





I. Squeak Overview

- it's a Smalltalk
- history, timeline, roadmap
- communities
- resources

II. Developing Applications Using Squeak

- code versioning system
  - change sets, file-in/out
  - Monticello

- GUI Widgets

- web-based application server
  - Comanche/KomHttpServer
  - swiki, SmallWiki
  - Seaside, HttpView2, Mewa

- modelling tools
  - Jacaranda/Connectors - UML diagram tool

- Panda - new tool



PART I - Squeak Overview


It's a Smalltalk
- system transcript, class browser, workspace, inspector, file browser

PLUS!
- projects (Morphic, MVC), object explorer
- Etoys - examples...
- "bit-identical" on a range of platforms, even PDA
- Genie
- VM/Interpreter is in image
  - written in Slang (Squeak subset - pidgin ST, also for plugins)
- JITTER, Exupery
- FFI
  - call named function in external library
  - deals with arg. conversion & DLL/so loading
  Plugin
  - compiled native code, written in Slang
  OSProcess
  - access native pipes and processes (Win32,*nix)
- sound & graphics
- networking:
  FTP, HTTP, IRC
  Celeste (mail reader) -removed from full
  PWS (personal web server) -removed from full
  Scamper (web browser) - not very complete
  Comanche/KomHttpServer -load from SqueakMap
- ANSI Compatibility
- OODB: Magma, MinneStore, OMNIBase, GOODS client, GemSqueak?
- RDB: PostgreSQL (3 clients), MySql driver, ODBC driver, SQLite
- other DB: Berkeley DB plugin, Glorp, ROE


History

- Smalltalk-72/76/80, Apple Smalltalk (c. 1985)
- prior to first Squeak release - see "Back to the Future"
- late 1996: Apple to Disney
- June 2001: SqueakCentral leaves disney
- ViewPoints Research (1 stays at Disney? the Morphic guy? John Maloney?)
- Nov. 26 2002: Alan Kay now at HP, seems to be working on Croquet


Timeline (from ftp://st.cs.uiuc.edu/Smalltalk/Squeak/)

  1.1/Squeak1.1.zip		Jul 07 1997
  1.13/1.13.tar.gz		Nov 21 1996
  1.16/1.16.tar.gz		Nov 21 1996
  1.17/1.17.tar.gz		May 20 1997
  1.18/1.18.tar.gz		May 20 1997
  1.19/1.19d.tar.gz		Oct 01 1997
  1.20/WinSqueak120.zip		Jun 30 1997
  1.21/FileIn-1.21-di.cs	Jul 17 1997
  1.22/1.22.tar.gz		Jan 17 1998
  1.23/1.23.tar.gz		Jan 17 1998
  1.3/1.3.tar.gz		May 26 1998 (Jitter1.3)
  1.31/Squeak1.31.zip		Feb 10 1998
  2.0/Squeak2.0.sea.bin		May 23 1998
  2.1/Squeak21.exe		Aug 19 1998
  2.2/Squeak2.2.sea.bin		Sep 24 1998
  2.3/Squeak2.3.sea.bin		Jan 15 1999 (Jitter-2)
  2.4/Squeak2.4b.sea.bin	Apr 23 1999
  2.5/Squeak2.5-mac.sea.bin	Sep 20 1999
  2.6/Squeak2.6.sea.bin		Oct 16 1999
  2.7/Squeak2.7.sea.bin		Jan 05 2000

  2.8/Squeak2.8.sea.bin		Aug 19 2000
    (Mac, BeOS, Sparc, Alpha, i686, PPC, MIIPS, Linux, Debian, BrowserPlugins)

  3.0/Squeak3.0-3552-MacOS-full.sit	Jun 26 2000
    (MacOSX, WinCE, OS/2, IPaq/ARM, MPEG, Genie)

  3.1 -- not on this server, but I have something called 3.1 on my disk

  3.2/Squeak3.2-4956-MacOS-Full.sit	Oct 28 2002

  3.3alpha/Squeak3.3a-4981.zip	Oct 04 2002 (ill-fated modules)

  3.4/Squeak3.4-5170-MacOS-Full.sit	Mar 04 2003
    (first Squeak Community release -- i.e. non-Apple and non-Disney release)

  3.5/Squeak3.5-5180.zip	Apr 11 2003
    (Mac, Unix-Linux, Win -- get other VM's elsewhere)

  3.6/Squeak3.6-5424-basic.zip	Oct 05 2003

  3.7alpha/Squeak3.7a-5816.zip	Mar 09 2004
  3.7beta/Squeak3.7b-5878.zip	Apr 05 2004

  N.B. update number is the suffix for image release name.

  The VM is maintained by various people (Win,Mac,*nix,PDAs).


Defunct

- Interval Pad (by Interval Research)
  - internet appliance
  - VMMaker, machine code compiler, web browser?

- Squeak World Tour (a.k.a. SWT/StableSqueak)
  - swt0.1 on June 1, 2001 was first and only release
  - "fork", developed "by invitation"
  - XML spec for GUI, with builder for MVC and Morphic

- Squeak 3.3 modules
  - community resistance (stayed with 3.2)
  - the modules changes required a leap
  - maybe the loss of SqueakCentral (i.e. Disney) was disruptive

- Squeak Foundation
  - would play a role like SqueakCentral
  - a financial structure to accept donations
  - stalled/dead?


Roadmap

- continue spliting image into: Minimal, Basic, Full
- package dependencies handled by SqueakMap
- 3.8/4.0 - 64-bit port, new image format, m17n, full closures
- Croquet, Tweak, TeaTime


Communities

"Deep Squeakers"
  - guides
  - BFAV [BUG] [FIX] [ENH] [GOODIE]
  - review process, harvesting party
  - squeak-dev mailing list is where discussion ensues
  - over 1000 registered on squeak-dev

"Casual Squeakers"
  - SqueakLand, Etoys
  - media authoring tool, schools & education

- Small-Land
  - education in a province of Spain
  - 8000 Linux PCs with Squeak

- Japanese Squeakers, AlanKay Project, m17n
  - language divide

- Croquet?

Resources
- mailing lists, websites, update stream, code repository, VM, etc.


Official Squeak Home Page:
	http://www.squeak.org

Squeak Wiki:
	http://minnow.cc.gatech.edu/squeak

Mailing lists & archives:
	http://lists.squeakfoundation.org

Chat (IRC)
	#squeak channel on irc.freenode.net

Squeak People:
	http://people.squeakfoundation.org

Squeak Map (from web browser, normally accessed from inside Squeak)
	http://map1.squeakfoundation.org/sm

SqueakSource
	http://kilana.unibe.ch:8888

Squeakland
	http://www.squeakland.org

Small-Land
	http://www.small-land.org

Croquet
	http://www.opencroquet.org
	- no download here, only 0.1 doc (was /.-ed, and not ready for release)
	- if you really want it, try:  http://www.reed.com/tealand/

Squeak News (c. 2001 e-zine)
	http://squeaknews.com
	- revived
	- all five original issues are now available for download or purchase


PART II - Developing Applications Using Squeak


Code versioning system
- change sets, file-in/out
- release & packaging - work is ongoing
- Monticello

Monticello
- install from SqueakMap. Created and maintained by Avi Bryant.

Description (from SqueakMap entry):

"Monticello is a distributed concurrent versioning system based on a declarative representation of Squeak source code. It allows packages to be safely saved, loaded and updated, and provides tools for branching and merging package versions. It does not depend on (and does not provide) any form of central repository."


[DEMO Monticello]


GUI Widgets
- raw Morphic
- BobsUI
- defunct SWT/StableSqueak
- nascent GTK+ native widgets
- "not ready for prime-time"


web-based application server
- Comanche/KomHttpServer
- swiki, SmallWiki
- Seaside, HttpView2, Mewa


Seaside
- install using SqueakMap, but more info. available at:
    http://www.beta4.com/seaside2
- Seaside is maintained and supported by:
    Avi Bryant and Julian Fitzell of Beta4 Productions

Description (from SqueakMap entry):

"A framework for building sophisticated web applications in Squeak. Develop for the web using reusable, embeddable components and unique call/return semantics for moving between pages.

Seaside requires a web server; the most commonly used is KomHttpServer."


[DEMO Seaside]


modelling tools
- Jacaranda/Connectors - UML diagram tool


[DEMO Jacaranda]


[DEMO Panda] - new tool


More information about the Squeak-dev mailing list