Screenshot of the Pharo IDE
|Original author(s)||Pharo Board |
|Stable release||2.0 / March 15, 2013|
|Operating system||Windows, Linux, Mac OS X, others|
|Type||Object-oriented programming language, IDE|
|License||MIT license, partially Apache License 2.0|
Pharo is an open-source Smalltalk-environment released under the MIT license since 2009.
Pharo has a policy that enforces contributors to agree to publishing their code under the MIT License.
As a Smalltalk environment, Pharo has the main Smalltalk characteristics :
- Everything is an object, in the sense of object oriented programming
- Pharo is reflexive: a program can modify its internal properties and behaviors at runtime
- Pharo is dynamically typed: Contrary to statically typed languages, where the developer has to write down the type of each variable, the variables can take any value
- Inheritance is simple
- Memory management is automatic: Pharo uses a Garbage Collector, as Lisp or Java
- The Smalltalk syntax is very simple and small
One of the main advantages of Pharo, as of any Smalltalk implementation, is that it is not mandatory to compile the whole code in the case of a method modification. For example, it is possible to edit or create a new method inside the debugger without restarting the process. Some people call this the 'Edit and continue' method, opposed to the 'edit, compile and run' method.
The name Pharo may be a reference to the famous Pharos lighthouse in ancient Alexandria. The Pharo logo shows a drawing of a lighthouse inside the final letter O of the name.
Pharo is a fork of Squeak, an open source Smalltalk environment created by the Smalltalk-80 team (Dan Ingalls and Alan Kay). The Pharo team want to develop a modern Smalltalk for companies and software engineering research. Pharo also serves as the reference platform of Seaside, a web application framework for developing web applications in Smalltalk. Today, Pharo is supported by the Pharo consortium (for companies) and the Pharo association (for users).
- Fork in 2008.
- Pharo 1.0 was released April 15, 2010.
- Pharo 1.1 was released July 26, 2010.
- Pharo 1.2 was released March 29, 2011.
- Pharo 1.3 was released in August 2011.
- Pharo 1.4 was released in April 2012.
- Pharo 2.0 was released March 18, 2013.
- Pharo 3.0 is planned for March 2014.
With a MIT license and an active community, Pharo is a nice IDE to learn the Smalltalk programming language.
To newcomers, the best way to discover Pharo is to download the one-click version.
Use of Pharo
Companies and Consultants
Today, more than 20 companies use Pharo for their development projects. Especially, they use:
- Seaside for dynamic web development 
- Zinc for server architectures 
- Moose to analyse data and software from all programming languages
- Graphic libraries for evolved user interfaces
Most companies using Pharo are now small or medium companies. Thus, the Pharo project is supported by big companies as Inria or VMWare.
The Pharo consortium  was recently created for companies wishing to support the Pharo project.
Research and Teaching
Pharo is more and more used for teaching. To learn the Smalltalk programming language, Pharo provides a free IDE unlike most other Smalltalk systems.
Several research teams uses Pharo, for example in Lille (France) or Bern (Switzerland).
The Pharo association was recently created for users wishing to support the project.
Performance and Virtual Machine
Pharo relies on a virtual machine almost entirely written in Smalltalk itself. Since 2008, a new virtual machine with a level of performance near the fastest Smalltalk virtual machine was released.
- "The Pharo board". Pharo-project.org. April 17, 2012. Retrieved April 5, 2013.
- "Pharo license information". Pharo-project.org. April 17, 2012. Retrieved April 5, 2013.
- "Pharo Open Source Smalltalk — Release 1.4". Pharo-project.org. April 17, 2012. Retrieved April 5, 2013.
- "Pharo Open Source Smalltalk — Release 2.0". Pharo-project.org. March 18, 2013. Retrieved April 5, 2013.
- "Pharo Open Source Smalltalk — Alpha 3.0". Pharo-project.org. April 17, 2012. Retrieved April 5, 2013.
- "Pharo by Example". Pharo by Example. Retrieved April 5, 2013.
- "Pharo Open Source Smalltalk — Success stories". Pharo-project.org. Retrieved April 5, 2013.
- "Home". seaside.st. March 18, 2007. Retrieved April 5, 2013.
- "Zinc HTTP Components". Zn.stfx.eu. Retrieved April 5, 2013.
- Girba, Tudor. "Home". Moose technology. Retrieved April 5, 2013.
- "web: Pharo Consortium". Consortium.pharo.org. March 31, 2013. Retrieved April 5, 2013.
- Ducasse, Stephane. "association: Pharo Association". Association.pharo.org. Retrieved April 5, 2013.
- "Cog Blog". Mirandabanda.org. Retrieved April 5, 2013.