A pure object-oriented programming language and environment focused on simplicity and immediate feedback through live programming.
Pharo is a dynamic, reflective, pure object-oriented programming language and integrated environment inspired by Smalltalk. It combines an IDE and operating system into a single platform, focusing on simplicity and providing immediate feedback through live programming capabilities. It solves the problem of disjointed development workflows by offering a cohesive environment where code can be modified and executed in real-time.
Developers and researchers interested in object-oriented programming, live coding, exploratory development, or educational tools for programming concepts. It's particularly suited for those valuing interactive and reflective programming environments.
Developers choose Pharo for its pure object-oriented model, live programming features, and integrated environment that reduces tool fragmentation. Its emphasis on simplicity and immediate feedback enables rapid prototyping and deep experimentation, distinguishing it from traditional statically-typed or less interactive languages.
Pharo is a dynamic reflective pure object-oriented language supporting live programming inspired by Smalltalk.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Everything in Pharo is an object, including classes and control structures, which eliminates primitives and provides a uniform programming model as highlighted in its key features.
The environment supports real-time code modification and execution without restarting, enabling immediate iteration and debugging, core to its philosophy of simplicity and feedback.
By merging the IDE and OS into one cohesive experience, Pharo reduces context switching and tool fragmentation, offering a seamless development process as described in the README.
Pharo's reflective capabilities allow runtime introspection and modification of code, facilitating advanced debugging and exploratory programming techniques.
Compared to mainstream languages, Pharo has a smaller collection of third-party packages, which can increase development time for tasks outside its core domain.
Setting up a new Pharo image from sources involves multiple environment variables and script steps, as detailed in the README's bootstrapping section, which can be daunting for newcomers.
The reliance on images for deployment requires specific handling in CI/CD pipelines and version control, unlike standard file-based projects, adding operational complexity.