Pharo


Pharo is an open source dynamic and reflective language which is inspired by the programming language Smalltalk. Pharo offers several live programming features such as immediate object manipulation, live update and hot recompiling.

Introduction

Pharo is a pure object-oriented dynamically typed and reflective language. The stated goal of Pharo is to revisit Smalltalk design and enhance it.
The name Pharo comes from the French word "phare" which means lighthouse. This is why the Pharo logo shows a drawing of a lighthouse inside the final letter O of the name.

Key features

Pharo is based on general concepts of Smalltalk but seeks to improve on them so does not limit itself to them. The basic syntax of the language has a close resemblance to Smalltalk. However, the way classes are defined in Pharo differs from other Smalltalk dialects.

Language syntax

The Pharo syntax is based on Smalltalk-80 language syntax with several extensions. Some of these are common among modern Smalltalk dialects.

#
3.14s2

The Pharo language syntax is supposed to be very simple and minimalistic. The basic language elements are often presented on a single postcard. The grammar is classified as LL.
The language grammar does not specify directly how the code should be stored in files. Pharo uses as the preferred code serialization format.

History

Pharo emerged as a fork of Squeak, an open-source Smalltalk environment created by the Smalltalk-80 team. Pharo was created by S. Ducasse and M. Denker in March 2008. It focuses on modern software engineering and development techniques. Pharo is supported by the Pharo consortium and the Pharo association for physical persons .
VersionRelease dateMajor features
March 16, 2008Fork of Squeak environment
Pharo 1.0April 15, 2010real closures, EToys and MVC removed
Pharo 1.1July 26, 2010Cog JIT VM, Settings framework
Pharo 1.2March 29, 2011new Finder, Recent changes tool, improved Help, better themes
Pharo 1.3August 2011Zinc, headless images
Pharo 1.4April 2012Ring metamodel, better code simulator
Pharo 2.0March 18, 2013.browser improvements, QA tools, Fuel serializer, better files API
Pharo 3.0April 2014.new modular compiler and debugger, continuations
Pharo 4.0April 2015.GTools, slots
Pharo 5.0May 2016.Spur VM, UFFI, improved reflectivity
Pharo 6.06 June, 2017.64-bit and Git support
Pharo 6.124 July, 2017.improved Git support
Pharo 7.022 January, 2019.bootstrapping, new code browser, stateful traits
20 January, 2020.improved support of Git, testing, refactoring and Windows

Use of Pharo

Companies and consultants

Some companies use Pharo for their development projects. In particular, they use:
The Pharo consortium was created for companies wishing to support the Pharo project. The Pharo association was recently created for users wishing to support the project.

Performance and virtual machine (VM)

Pharo relies on a virtual machine that is written almost entirely in Smalltalk itself. Beginning in 2008, a new virtual machine for Squeak, Pharo and Newspeak has been developed that has a level of performance close to the fastest Smalltalk virtual machine. In 2014/2015 the VM community is working on Spur, a new Memory Manager for Cog that should again increase performance and provide better 64-bit VM support.