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
|