Skip to main content
Engineering LibreTexts

Preface

  • Page ID
    43701
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)\(\newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    “Smalltalk is well known as an excellent tool for agile and exploratory programming. In this book the authors present a new dialect of Smalltalk called Pharo that has been specifically designed for inventive developers. The authors are key members of the Pharo team and accomplished Object Oriented educators, researchers and designers. Numerous Smalltalk projects from the authors and others have been ported to Pharo. Enjoy Deep Into Pharo”

    - Dave Thomas1

    Using a programming language is so far the most convenient way for a human to tell a computer what it should do. Pharo is an object-oriented programming language, highly influenced by Smalltalk. Pharo is more than a syntax and a bunch of semantics rules as most programming languages are. Pharo comes with an extensible and flexible programming environment. Thanks to its numerous object-oriented libraries and frameworks, Pharo shines for modeling and visualizing data, scripting, networking and many other ranges of applications.

    The very light syntax and the malleable object model of Pharo are commonly praised. Both early learners and experienced programmers enjoy the “everything is an object” paradigm. The simplicity and expressiveness of Pharo as well as a living environment empowers programmers with a wonderful and unique experience.

    Deep into Pharo is the second volume of a book series initiated with Pharo by Example2. Deep into Pharo, the book you are reading, accompanies the reader for a fantastic journey into exciting parts of Pharo. It covers new libraries such as FileSystem, frameworks such as Roassal and Glamour, complex of the system aspects such as exceptions and blocks.

    The book is divided into 5 parts and 17 chapters. The first part deals with truly object-oriented libraries. The second part is about source code management. The third part is about advanced frameworks. The fourth part covers advanced topics of the language, in particular exception, blocks and numbers. The fifth and last part is about tooling, including profiling and parsing.

    Pharo is supported by a strong community that grows daily. Pharo’s community is active, innovative, and is always pushing limits of software engineering. The Pharo community consists of software engineering software, casual programmers but also high-level consultants, researchers, and teachers. This book exists because of the Pharo community and we naturally dedicate this book to this group of people that many of us consider as our second family.


    1. David (http://www.davethomas.net) is a well-known figure in modern software development and object technology. Thomas is perhaps best known as the founder and past CEO of Object Technology International, Inc., now IBM OTI Labs. OTI was responsible for initial development of the Eclipse open source IDE and the Visual Age Java development environment.

    2. freely available from http://pharobyexample.org