a clean innovative, open-source...
TRANSCRIPT
![Page 1: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/1.jpg)
http://www.pharo-project.org
A clean, innovative, open-source Smalltalk
![Page 2: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/2.jpg)
Roadmap
Short intro
User community
Look at syntax and runtime
Coding Session
Future
![Page 3: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/3.jpg)
In a nutshellPharo = language + IDE + update mechanism
Pure object-oriented programming language
Dynamically typed and trait-based
Open and flexible environment
Platform for Seaside and Aida/Web web frameworks
![Page 4: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/4.jpg)
Pharo?A progressive, open-source Smalltalk platform
for professional use.
StableBugs fixed fastBut innovative
![Page 5: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/5.jpg)
![Page 6: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/6.jpg)
Pier
![Page 7: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/7.jpg)
Pier
![Page 8: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/8.jpg)
iPhone
![Page 9: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/9.jpg)
Smalltalk with OO-Database
Pharo is the IDE
![Page 10: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/10.jpg)
Companies
netstyle.ch
cmsbox.com
Pinesoft
Smallworks
Agilitic.be
Inceptive.be
GemStone
SW Gmb
Denker2Denker
...
![Page 11: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/11.jpg)
Universities
Annecy
Lugano
Bern
Douai
Lille
Santiago
Bruxelles
...
![Page 12: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/12.jpg)
Getting started
Model
Tools
Syntax
![Page 13: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/13.jpg)
A Simple and Pure Model
Everything is an object instance of a class
Public methods
Protected attributes
Single inheritance
![Page 14: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/14.jpg)
Everything happens by sending messages to objects 1000 factorial / 999 factorial (Smalltalk isCool) ifTrue: [‘Yeahh’] #(1 -2 3) collect: [ :each | each abs ]
![Page 15: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/15.jpg)
Running Pharo
![Page 16: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/16.jpg)
Do it, print it
You can evaluateany expression
anywherein Pharo
![Page 17: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/17.jpg)
Standard development tools
![Page 18: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/18.jpg)
Standard development tools
![Page 19: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/19.jpg)
Debugger, explorer, inspector
![Page 20: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/20.jpg)
Syntax in a nutshell
![Page 21: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/21.jpg)
3 kinds of messages
Unary messages
Binary messages
Keywords messages
5 factorialTranscript cr
3 + 4
3 raisedTo: 10 modulo: 5
Transcript show: 'hello world'
![Page 22: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/22.jpg)
From Java to Smalltalk
postman.send(mail,recipient);
![Page 23: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/23.jpg)
Removing
postman.send(mail,recipient);
![Page 24: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/24.jpg)
Removing unnecessary
postman send mail recipient
![Page 25: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/25.jpg)
But without losing information
postman send mail to recipient
![Page 26: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/26.jpg)
postman send: mail to: recipientpostman.send(mail,recipient);
![Page 27: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/27.jpg)
(Msg) > Unary > Binary > Keywords
from left to right
No mathematical precedence
Precedence
![Page 28: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/28.jpg)
S.Ducasse
RMod
2 + 3 squared
28
![Page 29: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/29.jpg)
S.Ducasse
RMod
2 + 3 squared> 2 + 9
29
![Page 30: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/30.jpg)
S.Ducasse
RMod
2 + 3 squared> 2 + 9> 11
30
![Page 31: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/31.jpg)
S.Ducasse
RMod
Color gray - Color white = Color black
31
![Page 32: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/32.jpg)
S.Ducasse
RMod
Color gray - Color white = Color black
32
![Page 33: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/33.jpg)
S.Ducasse
RMod
Color gray - Color white = Color black> aColor = Color black
33
![Page 34: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/34.jpg)
S.Ducasse
RMod
Color gray - Color white = Color black> aColor = Color black> true
34
![Page 35: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/35.jpg)
| p pen |p := [email protected] := Pen new.pen up.pen goto: p; down; goto: p+p
Statement and cascades
Temporary variablesStatement
Cascade
![Page 36: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/36.jpg)
S.Ducasse
RMod
Block Closures: aka Function
fct(x) = x * x + x
|fct|fct:= [:x | x * x + x].
36
![Page 37: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/37.jpg)
S.Ducasse
RMod
Function Application
fct (2) = 6fct (20) = 420
fct value: 2 > 6fct value: 20 > 420[:x | x * x + x] value: 2>6[:x | x * x + x] value: 20>420
37
![Page 38: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/38.jpg)
S.Ducasse
RMod
#(15 10 19 68) do: [:i | Transcript show: i ; cr ]
38
![Page 39: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/39.jpg)
S.Ducasse
RMod
#(15 10 19 68) do: [ :i | Transcript show: i ; cr ]
39
![Page 40: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/40.jpg)
S.Ducasse
RMod
1 to: 100 do: [ :i | Transcript show: i ; space]
40
![Page 41: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/41.jpg)
S.Ducasse
RMod
1 to: 100 do: [ :i | Transcript show: i ; space]
41
![Page 42: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/42.jpg)
S.Ducasse
RMod
1 to: 100 by: 3 do: [ :i | Transcript show: i ; space]
42
![Page 43: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/43.jpg)
S.Ducasse
RMod
1 to: 100 by: 3 do: [ :i | Transcript show: i ; space]
43
![Page 44: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/44.jpg)
<= aPoint ! "Answer whether the receiver is neither! below nor to the right of aPoint."
! ^ x <= aPoint x and: [y <= aPoint y]
A typical method in Point
Method name Argument Comment
Return Binary messageKeyword messageInstance variable
Block
(2@3) <= (5@6) true
![Page 45: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/45.jpg)
Creating classes
Send a message to a class (!)
Number subclass: #Complex! instanceVariableNames: 'real imaginary'! ...! category: 'ComplexNumbers'
![Page 46: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/46.jpg)
Future
![Page 47: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/47.jpg)
...cleaner
started to run SmallLint... and fix
![Page 48: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/48.jpg)
...smaller
small image is 2 Mb
![Page 49: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/49.jpg)
...faster
![Page 50: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/50.jpg)
Update ~1000 Bug-reports closed
470 Updates
Release Candidate Planned: October 2009 ;)
![Page 51: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/51.jpg)
Past Actions+ Major Cleanups (MVC, eToys)+ New UI Look / TrueType+ Tools+ Block Closures+ Lots of bugfixes and small improvements+ Preferences clean up+ MIT license clean
![Page 52: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/52.jpg)
What we dream about
Better toolsnext generation refactoring
Better infrastructureAnnouncements
New compilers
First class packages
Minimal core
Logging
Integration Server....
So that people can invent their future
A flexible infrastructure to be able to reinvent itself
![Page 53: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/53.jpg)
Everybody can help
Reporting bugsConfirming bugsWriting testsWriting examplesWriting commentsSimple contributing fixesDeep discussion...
![Page 54: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/54.jpg)
ProcessFIX/
ENHANCEMENTIn PharoInbox or
Changesets
Discussed on Mailing-
list
BUG Tracker
Integrated Rejected
BUG
Discussed on
Discussed on
Described
Described
Other version
![Page 55: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/55.jpg)
Pharo SprintsMay 2008 BernJuly 2009 BernOctober 2009 LilleNovember 2009 Buenos Ares
Free accessPossible funding support for October 2009
![Page 56: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/56.jpg)
Books
Pharo by example is out
Pharo by example vol. 2 on preparation
![Page 57: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/57.jpg)
ThanksHans Beck
Alexandre Bergel Cedric Beler
Torsten Bergmann Matthias Berth Ralph Boland
Noury Bouraqadi Brian Brown
Gwenael Casaccio Damien Cassou Nicolas Cellier Gary Chambers
Miguel Coba Gabriel Cotelli Carlos Crosetti Cyrille Delaunay Simon Denier
Marcus Denker Ramiro Diaz Trepat Stephane Ducasse
Morales Durand Hernan Stephan Eggermont
Luc Fabresse
Matthew Fulmer Hilaire Fernandes
Julian Fitzell Tudor Girba Sean Glazier
Norbert Hartl Dale Henrichs Reinout Heeck
Eric Hochmeister Keith Hodges
Henrik Sperre Johansen Pavel Krivanek Adrian Kuhn
Adrian Lienhard Andreas Leidig
Mariano Martinez Peck Dave Mason
John McIntosh Johnaton Meichtry
Eliot Miranda Hernan Morales Durand
Philipp Marshall Jannick Menanteau
Yann Monclair Oscar Nierstrasz
David J Pennell Joseph Pelrine Alain Plantec Damien Pollet Lukas Renggli Jorge Ressia
Mike Roberts Robert Rothwell
David Rotlisberger Michael Rueger
Bill Schwab Niko Schwarz Igor Stasenko
Francois Stephany Serge Stinckwich
Mathieu Suen Lawrence Trutter Andrew Tween
martin von loewis Juan Vuletich Steven Wirts
Hernan Wilkinson
![Page 58: A clean innovative, open-source Smalltalksdmeta.gforge.inria.fr/Presentations/PharoForNonSmalltalker.pdf · Pharo = language + IDE + update mechanism Pure object-oriented programming](https://reader034.vdocuments.site/reader034/viewer/2022050504/5f95d8eb32c65535e00248a2/html5/thumbnails/58.jpg)
Join Us!
Creating good energy, software quality,learning and having fun
http://pharo-project.org