1. Smalltalk:
the best system for
object-oriented *thinking*
http://stephane.ducasse.free.fr
http://www.pharo.org
2. A word of presentation
• Inria research director (was scientific deputee
2011-2014)
• Leads RMOD team (~20 people)
• founder and active developer of Pharo (http://
www.pharo.org
• founder of synectique.eu (company)
4. Properties we see
• Turtles all the way down
• Uniform and elegant
• Simple oo model
• But powerful to build really large applications
• Open system
• Learn from the system itself
17. The complete syntax
exampleWithNumber: x
“A method that illustrates every part of Smalltalk method syntax”
| y |
true & false not & (nil isNil) ifFalse: [self halt].
y := self size + super size.
#($a #a ‘a’ 1 1.0)
do: [ :each | Transcript
show: (each class name);
show: (each printString);
show: ‘ ‘].
^ x < y
18. A Pure OO World
Only objects!
mouse, booleans, arrays, numbers, strings, windows, scrollbars, canvas, files, trees, compilers, sound, url, socket, fonts, text,
collections, stack, shortcut, streams, …
19. Less is more!
No constructors, no static methods, no operators
No type declaration, no primitive types,
No interfaces, no need for factory
No packages/private/protected modifiers
No parametrized types
No boxing/unboxing
Still powerful
59. !
Message sends act as case statements
• But dynamic and open
• Can add a branch (define a subclass)
• Branches can be defined in different packages
60. OOP: the art of dispatching
Subclasses create your
vocabulary
61. To be able to select we need
classes
Operation1
Operation2
Attribute
Attribute
Fat Class
Class
Operation
A
Operation
B'
Operation
C'
Operation
Attribute
B
Operation
C
Vs.
65. • Uni. of Buenos Aires • Uni. of Bern • Uni. of
Maroua • Uni. of Brussels • Ecole des Mines de
Douai • Uni. de Savoie • Ivan Franko Nat. Uni. of
Lviv • Czech Technical Uni. • CULS Prague
• Uni. of Quilmes • Uni. of La Plata • Northern
Michigan Uni. • Uni. Technologica Nacional
(UTN) • Uni. Catholic of Argentina • Uni. of
Santiago • Uni. Policnica de Catalunya • Uni. de
Bretagne Occidentale • Uni. of Tomsk • Uni. of
Fernhagen • IT University of Copenhagen • Uni.
Cat del Sacro Cuore of Brescia
Pharo's Teachers
66. Lafhis (AR)
Software Composition Group (CH)
CAR (FR)
RMOD (FR)
Ummisco (IRD)
Reveal (CH)
Lysic (FR)
Pleiad (CL)
CEA-List (FR)
Uqbar (AR)
Research Groups
68. Books
Pharo by example http://www.pharobyexample.org
translated to french, merci!
translated to spanish, gracias!
translated to japanese, ありがとう!
Deep into Pharo http://www.deepintopharo.org
Numerical Methods
https://github.com/SquareBracketAssociates/NumericalMethods/releases
New books in preparation
Updated Pharo by Example
Entreprise Pharo
Fun with Pharo
69. www.pharo.org
• Turtles all the way down
• Uniform and elegant
• Simple oo model
• But powerful to build really large applications
• Open system
• Learn from the system itself