Generated by DeepSeek V3.2| Pharo | |
|---|---|
| Name | Pharo |
| Paradigm | Object-oriented, reflective, class-based |
| Designer | Squeak community, led by S. Ducasse, M. Denker, C. Pollet |
| Latest release version | 11.0 |
| Latest release date | 2023 |
| Typing | dynamic, strong |
| Influenced by | Smalltalk, Squeak |
| Influenced | Cuis-Smalltalk, Seaside (web framework) |
| Operating system | Cross-platform |
| License | MIT License |
Pharo. It is a modern, open-source dialect of the Smalltalk programming language and environment. Derived from Squeak, it is designed for immersive development, emphasizing live programming, immediate feedback, and a pure object-oriented programming experience. The project is led by researchers and developers including S. Ducasse, M. Denker, and C. Pollet, focusing on clean design and innovative tools for both industrial and academic use.
The project originated in 2008 as a fork of the Squeak environment, initiated by members of the Institut de Recherche en Informatique de Toulouse and other international collaborators. Key motivations included removing legacy code, simplifying the virtual machine, and creating a more streamlined platform for research. Early versions, such as Pharo 1.0 released in 2010, established its core principles of a live environment and malleable system. Its evolution has been closely tied to the European Smalltalk User Group and conferences like ESUG and International Conference on Smalltalk Technologies. Major milestones include the introduction of a new bootstrapping process and the shift to a GitHub-hosted, community-driven development model, distinguishing it from its Squeak origins.
As a pure object-oriented language, everything is an object, including integers, booleans, and classes themselves, following the principles established by Alan Kay. It features a single inheritance model, dynamic typing, and advanced reflective capabilities, allowing programs to inspect and modify their own structure. The system image includes a fully integrated development environment with a Morphic graphical framework and a virtual machine written primarily in a subset of itself. Notable technical features include first-class closures, optional typing via type annotations, and ephemerons for garbage collection.
The environment is a live, integrated system where code, tools, and the user interface are all implemented within the same running image. Programmers interact via a workspace, a system browser, and a debugger that allows on-the-fly code modification during execution, a hallmark of Smalltalk traditions. Key tools include Spotter for rapid navigation, Calypso as a system browser, and Iceberg for Git integration. The virtual machine, often built using the Cog JIT compiler, provides high performance and portability across Windows, macOS, and Linux systems. The environment supports test-driven development through frameworks like SUnit and is itself easily modifiable by users.
The project is stewardly by the Pharo Consortium, which includes members from academia and industry like Institut Mines-Télécom and Feenk. Development is coordinated through GitHub and discussed on mailing lists and the Discourse forum. Annual events, such as the Pharo Days conference and Pharo Sprint workshops, foster collaboration. The ecosystem features a centralized package repository called Catalog, powered by Metacello, for managing libraries. Significant community projects include the Seaside web framework, the GToolkit moldable development suite, and Roassal for visualization. Academic contributions often emerge from institutions like University of Bern and University of Chile.
It is used in both industrial and research contexts for complex software modeling, data visualization, and educational technology. Companies like Synectique and Object Profile employ it for business intelligence and data analysis tools. In academia, it serves as a platform for research in software engineering, programming language design, and human–computer interaction, with projects at French Institute for Research in Computer Science and Automation and University of Lugano. Notable applications include the Glamour toolkit for building browsers, Moose for software analysis, and Dr. Geo for interactive geometry. Its use in teaching programming concepts is promoted through initiatives like the Pharo by Example textbook.