33
Squeak www.squeak.org Marcus Denker www.iam.unibe.ch/~denker University of Bern

Squeak · Implemented in Smalltalk (Cincom) Smalltalk enables Rapid prototyping of complex tools Very fast turnaround Agile development. Languages for Evolution Languages do not support

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Squeak · Implemented in Smalltalk (Cincom) Smalltalk enables Rapid prototyping of complex tools Very fast turnaround Agile development. Languages for Evolution Languages do not support

Squeak

www.squeak.orgMarcus Denker

www.iam.unibe.ch/~denker

University of Bern

Page 2: Squeak · Implemented in Smalltalk (Cincom) Smalltalk enables Rapid prototyping of complex tools Very fast turnaround Agile development. Languages for Evolution Languages do not support

Topics

History: The Dynabook

Squeak Overview

Projects using Squeak

Squeak: A Tool for Research

Page 3: Squeak · Implemented in Smalltalk (Cincom) Smalltalk enables Rapid prototyping of complex tools Very fast turnaround Agile development. Languages for Evolution Languages do not support

History

Alan Kay 1968: The Dynabook Vision

Xerox PARC 1972-1980: Smalltalk

Disney 1997 - 2001: Squeak

Page 4: Squeak · Implemented in Smalltalk (Cincom) Smalltalk enables Rapid prototyping of complex tools Very fast turnaround Agile development. Languages for Evolution Languages do not support

The Dynabook

A Dynamic Mediumfor Creative

Thought

Page 5: Squeak · Implemented in Smalltalk (Cincom) Smalltalk enables Rapid prototyping of complex tools Very fast turnaround Agile development. Languages for Evolution Languages do not support

Xerox PARC: Smalltalk

Page 6: Squeak · Implemented in Smalltalk (Cincom) Smalltalk enables Rapid prototyping of complex tools Very fast turnaround Agile development. Languages for Evolution Languages do not support

SqueakPrototyping Environment

Based on Smalltalk 80

Adds Multimedia features

Color and 2D Graphics

3D, Sound, Networking...

Etoys prototype for kids

Page 7: Squeak · Implemented in Smalltalk (Cincom) Smalltalk enables Rapid prototyping of complex tools Very fast turnaround Agile development. Languages for Evolution Languages do not support

Squeak: Overview

DEMO

Page 8: Squeak · Implemented in Smalltalk (Cincom) Smalltalk enables Rapid prototyping of complex tools Very fast turnaround Agile development. Languages for Evolution Languages do not support

Viewpoints

Tweak: Scripting + UI

Croquet

Coke/Pepsi/Cola

Rethinking Language Implementation

Page 9: Squeak · Implemented in Smalltalk (Cincom) Smalltalk enables Rapid prototyping of complex tools Very fast turnaround Agile development. Languages for Evolution Languages do not support

Squeak.org

Community squeak.org

Lots of cool projects

Some demos later

Sadly not much coordination

Working together is very hard!

Page 10: Squeak · Implemented in Smalltalk (Cincom) Smalltalk enables Rapid prototyping of complex tools Very fast turnaround Agile development. Languages for Evolution Languages do not support

Squeak 3.9

Merged back Squeakland + SmallLand + SCG + Impara + Seaside (NetStyle)

New Features:

Traits, Pragmas, Services, Look

A ****lot**** of changes!

Page 11: Squeak · Implemented in Smalltalk (Cincom) Smalltalk enables Rapid prototyping of complex tools Very fast turnaround Agile development. Languages for Evolution Languages do not support

Projects

Sophie

Impara: Plopp3d, ....

Croquet

OLPC

Seaside

Page 12: Squeak · Implemented in Smalltalk (Cincom) Smalltalk enables Rapid prototyping of complex tools Very fast turnaround Agile development. Languages for Evolution Languages do not support

Plopp3d

DEMO

Page 13: Squeak · Implemented in Smalltalk (Cincom) Smalltalk enables Rapid prototyping of complex tools Very fast turnaround Agile development. Languages for Evolution Languages do not support

Sophie

Open-source multimedia publication and run-time frameworks

Flash + iMovie + PDF

Completely new text + font implementation

Page 14: Squeak · Implemented in Smalltalk (Cincom) Smalltalk enables Rapid prototyping of complex tools Very fast turnaround Agile development. Languages for Evolution Languages do not support

Sophie Project

http://sophieproject.org/

DEMO

Page 15: Squeak · Implemented in Smalltalk (Cincom) Smalltalk enables Rapid prototyping of complex tools Very fast turnaround Agile development. Languages for Evolution Languages do not support

Open-Croquet

Immersible and collaborative system

http://www.opencroquet.org

version 1.0 is out

Page 16: Squeak · Implemented in Smalltalk (Cincom) Smalltalk enables Rapid prototyping of complex tools Very fast turnaround Agile development. Languages for Evolution Languages do not support
Page 17: Squeak · Implemented in Smalltalk (Cincom) Smalltalk enables Rapid prototyping of complex tools Very fast turnaround Agile development. Languages for Evolution Languages do not support

Qwaq Forums

http://qwaq.com/

Page 18: Squeak · Implemented in Smalltalk (Cincom) Smalltalk enables Rapid prototyping of complex tools Very fast turnaround Agile development. Languages for Evolution Languages do not support

OLPC: $100 Laptop

Page 19: Squeak · Implemented in Smalltalk (Cincom) Smalltalk enables Rapid prototyping of complex tools Very fast turnaround Agile development. Languages for Evolution Languages do not support

Seaside

http://www.seaside.st/

Free seaside hosting

Support for Ajax

scriptaculous.seasidehosting.st/

http://seachart.seasidehosting.st/

Page 20: Squeak · Implemented in Smalltalk (Cincom) Smalltalk enables Rapid prototyping of complex tools Very fast turnaround Agile development. Languages for Evolution Languages do not support

www.dabbledb.com

Seaside-based

venture capital funded

www.dabbledb.com

Page 21: Squeak · Implemented in Smalltalk (Cincom) Smalltalk enables Rapid prototyping of complex tools Very fast turnaround Agile development. Languages for Evolution Languages do not support

CMSBox

cmsbox.com

Page 22: Squeak · Implemented in Smalltalk (Cincom) Smalltalk enables Rapid prototyping of complex tools Very fast turnaround Agile development. Languages for Evolution Languages do not support

Part II: Research

Why use a kids system for Research?

Especially Software Engineering?

Page 23: Squeak · Implemented in Smalltalk (Cincom) Smalltalk enables Rapid prototyping of complex tools Very fast turnaround Agile development. Languages for Evolution Languages do not support

Example: SCG

Software Evolution

Two directions

Reengineering

Language support for Evolution

Page 24: Squeak · Implemented in Smalltalk (Cincom) Smalltalk enables Rapid prototyping of complex tools Very fast turnaround Agile development. Languages for Evolution Languages do not support

Reengineering

Analyzing existing source code

Understanding big systems

Enabling future evolution

Software Visualization

Page 25: Squeak · Implemented in Smalltalk (Cincom) Smalltalk enables Rapid prototyping of complex tools Very fast turnaround Agile development. Languages for Evolution Languages do not support

Moose

http://moose.unibe.ch/

Example: Chronia

Reengineering Environment

Many Plugins

Page 26: Squeak · Implemented in Smalltalk (Cincom) Smalltalk enables Rapid prototyping of complex tools Very fast turnaround Agile development. Languages for Evolution Languages do not support

Moose

Implemented in Smalltalk (Cincom)

Smalltalk enables

Rapid prototyping of complex tools

Very fast turnaround

Agile development

Page 27: Squeak · Implemented in Smalltalk (Cincom) Smalltalk enables Rapid prototyping of complex tools Very fast turnaround Agile development. Languages for Evolution Languages do not support

Languages for Evolution

Languages do not support Evolution

How to support Evolution better?

Page 28: Squeak · Implemented in Smalltalk (Cincom) Smalltalk enables Rapid prototyping of complex tools Very fast turnaround Agile development. Languages for Evolution Languages do not support

Squeak for Prototyping Languages

Completely open

Reflection

VM easy to modify

Simple

Simple Syntax

Dynamic Typing

Page 29: Squeak · Implemented in Smalltalk (Cincom) Smalltalk enables Rapid prototyping of complex tools Very fast turnaround Agile development. Languages for Evolution Languages do not support

TraitsClasses composed of Traits

Collection of methods

No state

Pioneered in Squeak

Scala, Perl6, Fortress, Slate

Page 30: Squeak · Implemented in Smalltalk (Cincom) Smalltalk enables Rapid prototyping of complex tools Very fast turnaround Agile development. Languages for Evolution Languages do not support

ChangeboxesProvide first class model of Change

History always available

even at runtime

System can be run in old version

Page 31: Squeak · Implemented in Smalltalk (Cincom) Smalltalk enables Rapid prototyping of complex tools Very fast turnaround Agile development. Languages for Evolution Languages do not support

Other groups...

HPI Potsdam (Germany)

University of Savoie (France)

Ecole des Mines de Douai (France)

Cadence Design Systems Inc. (USA)

Page 32: Squeak · Implemented in Smalltalk (Cincom) Smalltalk enables Rapid prototyping of complex tools Very fast turnaround Agile development. Languages for Evolution Languages do not support

Thats it...?

... for now

Questions?

Next?

Page 33: Squeak · Implemented in Smalltalk (Cincom) Smalltalk enables Rapid prototyping of complex tools Very fast turnaround Agile development. Languages for Evolution Languages do not support

Possible topics...Reflection

Metaprogramming and Refactoring

Bytecode + Bytecode Transformation

Examples of how to use dev tools

Monticello, Browser...