The Go programming language, an open source language for building simple, reliable, and efficient software.
pharo-project/pharo
Pharo is a pure object-oriented, Smalltalk-inspired programming language and live development environment with an IDE and OS-like tooling.
- Stars
- 1,510
- Forks
- 434
- Open issues
- 1,534
- Last commit
- 13 hours ago
What is it?
Pharo is a pure object-oriented programming language inspired by Smalltalk, paired with an integrated environment that combines an IDE and a runtime in one system. Its focus is simplicity and immediate feedback: code can be edited and executed live inside a running image rather than through a conventional compile-and-restart cycle.
This repository holds the sources of the Pharo image itself, exported in Tonel format, where packages are directories and each class lives in its own file. The image can be bootstrapped from source using a provided script, which can also be run inside Docker. Official builds are published as full graphical images and as a minimal image without the GUI, which suits server-side deployment.
The virtual machine that runs Pharo images is maintained in a separate repository. Contributions to the language and environment are handled through the project's contributing guide.
Key features
- 01Pure object-oriented language in the Smalltalk tradition with reflection.
- 02Live programming inside a running image with immediate feedback.
- 03Integrated IDE and runtime in a single environment.
- 04Bootstrap builds of the image from source, including via Docker.
- 05Minimal image without GUI for server-side applications.
Use cases
- Learning object-oriented programming through a live, reflective environment.
- Building desktop or interactive tools that benefit from live editing.
- Deploying server-side Smalltalk applications using the minimal image.
Quick start
- 1
Download the stable Pharo version for your platform from pharo.org
- 2
Or build a new image from sources with the bootstrap script
./bootstrap/scripts/bootstrap.sh
Things to know
- The license could not be automatically identified (NOASSERTION), so check the repository's license files before use.
- This repository contains only the image sources; the virtual machine is in a separate repository.
- Bootstrapping from sources requires an existing stable Pharo image.
In collections
Topics
FAQ
- What is pharo?
- Pharo is a pure object-oriented, Smalltalk-inspired programming language and live development environment with an IDE and OS-like tooling. Pharo is a pure object-oriented programming language inspired by Smalltalk, paired with an integrated environment that combines an IDE and a runtime in one system. Its focus is simplicity and immediate feedback: code can be edited and executed live inside a running image rather than through a conventional compile-and-restart cycle.
- Is pharo free to use? What license does it have?
- pharo is open source under the Other license. Check the license terms before using it in commercial products.
- Is pharo still maintained?
- Actively maintained. The last commit to pharo was on Nov 7, 2026.
- What can I use pharo for?
- Learning object-oriented programming through a live, reflective environment. Building desktop or interactive tools that benefit from live editing. Deploying server-side Smalltalk applications using the minimal image.
- How do I install pharo?
- Download the stable Pharo version for your platform from pharo.org Or build a new image from sources with the bootstrap script: ./bootstrap/scripts/bootstrap.sh
- Where can I get pharo?
- The source code and installation instructions are on GitHub: https://github.com/pharo-project/pharo
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
The main source repository for the Rust programming language, containing the compiler, standard library, and documentation.
Sway is a Rust-inspired programming language for writing smart contracts on the Fuel blockchain.
A simple, fast, compiled programming language for maintainable software, with zero library dependencies and automatic C-to-V translation.
The Ruby programming language: an interpreted, object-oriented language used for web development, scripting and system tasks.
Odin is a general-purpose, data-oriented systems programming language positioned as a C alternative, with a built-in standard library.