For delivery teams reviewing platform upgrades, Pharo version 14 is best read as a workflow change rather than a version number. The release, announced by The Pharo Team, concentrates the work on three main areas: modernized developer tooling, rebuilt refactoring and command infrastructure, and a more modern virtual machine. It also marks the first version delivered under the fall (September–November) schedule, after the project moved away from spring (March–May) releases.
From a SoftwareDevelopment viewpoint, that mix matters: tooling affects day-to-day editing and debugging, command infrastructure affects how safe changes are made, and VM changes affect portability, memory behavior, and build reliability. The public repository data reinforces the scale of the effort: 978 Pull Requests in the Pharo repository, 616 issues closed since Pharo 13, and a project footprint of 432 forks and 1,494 stars on GitHub.
Pharo is a pure object-oriented programming language and a development environment built around simplicity and immediate feedback. There are no constructors, no types declaration, no interfaces, and no primitive types, yet the syntax remains concise enough that the full form can be described as fitting on one postcard. In practice, that means programs are objects and messages all the way down, and the environment is designed to support developers during coding, testing, and debugging.
The environment also emphasizes live work. Developers can inspect running behavior, step through code, restart method execution, and create methods during debugging. The project describes this as an immersive workflow where even production work should not get blocked by compiling and deploying steps. Its full stack is released under MIT License and available on GitHub, with hundreds of people contributing frameworks and libraries, and Pharo is yours in the sense that the community builds and sustains it.
The release cycle organized its changes into three main areas. Each area creates different consequences for a software delivery team.
| Track | What changed | Why it matters during development |
|---|---|---|
| Development tools | Mission Control and Pulse were introduced; Pulse replaces Spotter. The Method Browser was reworked, the Settings Browser was rewritten and became the default, and Epicea and ProfStef moved into NewTools. This continues migration toward the Spec-based tooling stack. | Developers can expect a newer navigation, configuration, and inspection surface. The change is operational: browsing, settings, and debugging workflows become part of a unified modern tool set. |
| Refactoring and command infrastructure | Refactoring commands were migrated to a driver-based architecture behind a unified command registry. Command-line work was expanded with command-line testing, a command-line debugger, and Sindarin script tooling. | Refactoring is no longer only an editor feature; it becomes a command-driven workflow that can also be exercised outside the GUI, which is useful for automation, review, and repeatable change operations. |
| Virtual machine | Frames and stack management were unified, RISC-V JIT support was added, memory management gained direct old-space allocation and GC improvements, Slang/C compilation advanced, and build infrastructure was modernized. | The runtime gains platform breadth and cleaner execution structures. CI and cross-build workflows benefit from updated dependencies, SDL, improved CI, and broader architecture support. |
The Tools section records several visible changes. Mission Control was introduced. Pulse was introduced as the Spotter replacement. The Method Browser received a new or reworked form. The Settings Browser was rewritten and switched to default. Epicea and ProfStef were migrated into NewTools. TestRunner integration and command-line testing were added. Calypso fixes were included. Cavrois and window profile work were completed. File Browser, Finder, and Transcript improvements were made.
The System area contains the less visible but important engineering work. Refactoring command migration and registry were completed. Scoped extensions and selector semantics were addressed. Clean blocks and debugger/evaluation behavior were improved. ClassBuilder, trait, and superclass correctness were strengthened. The Compiler API was split and method installation was handled. UnifiedFFI value holders, FFIMethod, callbacks, and bootstrap resets were covered. A command-line debugger was added. Debugger and client-model cleanup was performed. Package and baseline modularization and bootstrap dependency cleanup were done. Morphic and UIManager dependency reduction was achieved. FastTable, text, graphics, Zinc, and Zodiac fixes were included. Sindarin script tooling was expanded. Code editor and code presenter work continued. List, tree, and filtering behavior was improved. Dialog, window, and modal behavior was refined. Action and command enhancements and cleanup were made. Morphic backend and layout fixes were applied.
The virtual machine changes are concentrated on interpreter cleanup, platform coverage, memory behavior, compiler support, and build infrastructure. Frame unification and stack management improvements delivered substantial interpreter and execution engine cleanups. RISC-V JIT support expanded platform coverage and future-proofed VM development. New memory management capabilities were added, including direct old-space allocation and numerous GC and allocation improvements. Extensive compiler and Slang/C translation work brought many correctness fixes, new tests, and improved inspection tools. Platform and build modernization included SDL updates, improved CI, cross-build support, and updated third-party dependencies. Large-scale cleanup and refactoring efforts covered the VM, interpreter, Cogit, PICs, and infrastructure.
Pharo 14 is the result of 978 Pull Requests integrated in the Pharo repository. Since Pharo 13, 616 issues have been closed. The repository now records 432 forks and 1,494 stars on GitHub. Additional work happens in separate projects included in each release, including pharo-spec/NewTools, pharo-spec/Spec, pharo-vcs/Iceberg, pharo-graphics/Roassal, pillar-markup/Microdown, pillar-markup/BeautifulComments, and pharo-project/pharo-vm.
People from all around the world contributed through pull requests, bug reports, discussion threads, feedback, and helpful tasks across community channels. The Pharo Team closes the announcement by thanking the community and repeating the phrase Pharo is yours.
| Development concern | Previous direction | Pharo 14 direction |
|---|---|---|
| Tooling stack | Spotter remained central while the migration of development tools continued. | Mission Control and Pulse arrive, Pulse replaces Spotter, and Epicea and ProfStef are consolidated into NewTools under Spec-based tooling. |
| Configuration and browsing | Settings and browsing experiences were split across different surfaces. | The Method Browser was reworked, and the Settings Browser was rewritten and switched to default. |
| Refactoring commands | Refactoring commands needed migration to a more consistent command model. | Refactoring commands use a driver-based architecture behind a unified command registry, improving automation and consistency. |
| Command-line workflow | Command-line capabilities were less integrated with testing, debugging, and scripts. | Command-line testing, a command-line debugger, and Sindarin script tooling expand headless and automation workflows. |
| VM and platform | Interpreter, stack, memory, and JIT platform coverage needed modernization. | Frame unification, RISC-V JIT, direct old-space allocation, GC improvements, Slang/C work, and build updates modernize the VM. |
It is primarily a platform and environment release. The language remains pure object-oriented and simple, with no constructors, no types declaration, no interfaces, and no primitive types, while tools, commands, and VM behavior receive the modernization work.
Pharo moved from spring (March–May) to fall (September–November). For teams with annual planning, this changes upgrade windows, review cycles, and how Pharo 14 should be placed in a delivery calendar.
Mission Control, Pulse as the Spotter replacement, the reworked Method Browser, and the rewritten Settings Browser are the most immediate signals.
The rebuilt refactoring command infrastructure, unified command registry, command-line testing, command-line debugger, and Sindarin tooling indicate that change operations are becoming more programmatic and automatable.
RISC-V JIT support, frame unification, stack management, direct old-space allocation, GC improvements, Slang/C work, SDL updates, CI improvements, and cross-build support show broad VM modernization.
Pharo 14 is therefore a practical release for software teams: it modernizes visible tools, strengthens command-driven refactoring, and improves the VM, while keeping the community and open-source basis that made the platform viable.