Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
A new version of Pharo by Example. The immediate goal is to port Pharo By Example to the most recent version of Pharo and update the content where is necessary.
CSS TeX Shell
branch: master
Failed to load latest commit information.
BasicClasses BasicClasses - edit the '400 methods in Object' section
Collections Replace term 'category' with 'package' (issue #25)
Environment Merge pull request #69 from SmalltalkZen/dz_env_senders_implementors
FirstApplication FirstApplication - remove 'efficient' sentence.
Metaclasses Fix all chapter reference links
Morphic Add Chapter IDs to the TOC in README
PharoObjectModel fixing the discussion about unique Instance variable
PharoTour Environment - Fix reference to Transcript section
Preface Undo line wraps for list elements (breaks Pillar markup)
Reflection Replace term 'category' with 'package' (issue #25)
Regex Correction in the Regex Table
SUnit SUnit - tweak phrasing of the 'executable comment' sentence
Seaside Replace term 'category' with 'package' (issue #25)
SharingCode SharingCode - Fix missing Versions.png image
Streams Streams - wrap lines to 80 chars
SyntaxNutshell Merge pull request #30 from grvanm/master
UnderstandingMessage UnderstandingMessage - Copyedits
legacy Added more conf-related files and some changes
support Rename `SmalltalkObjectModel` directory to `PharoObjectModel`
.gitignore Add Emacs backup files section to .gitignore
.travis.yml fix spacing Add pillar cheat sheet link Rename `SmalltalkObjectModel` directory to `PharoObjectModel` status updates add the new book skeleton add the new book skeleton add the new book skeleton
pillar.conf Rename `SmalltalkObjectModel` directory to `PharoObjectModel`


Pharo by Example (vol 1) is a practical introduction for Pharo, a Smalltalk-inspired programming language, IDE and live coding enviroment. This book is an updated version of Pharo By Example for Pharo 1.4.

This version focuses on the latest stable version of Pharo (Pharo 4, at the time of writing).

You can find more info and documentation about Pharo at

Chapter Progress

Chapter Status Latest Link reference
1 - Preface Revised, copyedited html pdf
2 - Pharo Tour Revised, copyedited html pdf Chapter *cha:tour*: A Quick Tour of Pharo
3 - A First Application Copyedited, Needs revision html pdf Chapter *cha:firstApp*: A First Application
4- Syntax in a Nutshell Revised, copyedited html pdf Chapter *cha:syntax*: Syntax in a Nutshell
5 - Understanding Messages Revised, copyedited html pdf Chapter *cha:messages*: Understanding Message Syntax
6 - The Pharo Object Model Needs revision html pdf Chapter *cha:model*: The Pharo Object Model
7 - Environment Copyedited, Needs revision html pdf Chapter *cha:env*: The Pharo Environment
8 - Sharing Code and Source Control Copyedited, Needs revision html pdf Chapter *cha:sharingCode*: Sharing Code and Source Control
9 - SUnit Revised, copyedited html pdf Chapter *cha:sunit*: SUnit
10 - Basic Classes Revised, copyedited html pdf Chapter *cha:basicClasses*: Basic Classes
11 - Collections Needs revision html pdf Chapter *cha:collections*: Collections
12 - Streams Revised html pdf Chapter *cha:streams*: Streams
13 - Morphic Needs revision html pdf Chapter *cha:morphic*: Morphic
14 - Seaside By Example Needs revision html pdf Chapter *cha:seaside*: Seaside By Example
15 - Classes and Metaclasses Revised html pdf Chapter *cha:metaclasses*: Classes and Metaclasses
16 - Reflection Needs revision html pdf Chapter *cha:reflection*: Reflection
17 - Regular Expressions in Pharo Needs revision html pdf Chapter *cha:regex*: Regular Expressions in Pharo

Contributing to Updated Pharo By Example (vol 1)

This book follows the fork-and-pull GitHub workflow for contributions:

  1. Fork the repository
  2. For each addition, create a quick branch, prefixed with your initials. For example: git checkout -b dz_streams_syntax_fix
  3. Make commits to that branch. When you're ready, make a Pull Request
  4. The request will receive comments/corrections, and will be merged into the main repo.

More info about contributing to this book (including Pillar syntax, setting up LaTeX, etc) can be found in the file.

Please send any comments, suggestions, or questions to the pharo-dev mailing list (see also the Get Help section of

Reference Links to Other Chapters

Whenever you refer to other chapters of the book, please use the Pillar internal link syntax and the chapter name. (The cha: in the id is to denote that it's a chapter, to differentiate from a section id.) For example:

Chapter *cha:tour*: A Quick Tour of Pharo

A list of chapter ref link code is provided, to easily copy and paste, in the Chapter Progress / table of contents above.

Style Guide

Please keep in mind the following:

  • When possible, hard-wrap lines at 80 characters (e.g. Meta-Q in Emacs, Cmd-Alt-Q in Atom). This is a common open-source documentation convention, and helps with viewing GitHub-generated diffs. However, due to Pillar limitations, ordered and unordered list elements must be on a single line to be correctly parsed. Those can be left un-wrapped.
  • Only one space between sentences.
  • Avoid periods in section titles. (For example, this section is titled "Style Guide" and not "Style Guide.")
  • All inline code mentions (objects, messages, variables, packages) should use the Pillar monospace notation: ==Object==.

Latest Builds

The latest versions of Updated Pharo by Example can be found at the following sites:

Other Books

Deep Into Pharo (Pharo By Example vol 2)

Deep into Pharo (source code) is the second volume of a series of books covering Pharo. Whereas the first volume is intended for newcomers, this second volume covers deeper topics.

Enterprise Pharo

Enterprise Pharo (latest PDF) is a new book that describes Enterprise-related libraries for Pharo.

Something went wrong with that request. Please try again.