Dear Pharo users and dynamic language lovers:
We have released Pharo <https://pharo.org/> version 12!
What is Pharo?
Pharo is a pure object-oriented programming language and a powerful
environment focused on simplicity and immediate feedback.
- Simple & powerful language: No constructors, no types declaration, no
interfaces, no primitive types. Yet a powerful and elegant language with a
full syntax fitting in one postcard! Pharo is objects and messages all the
way down.
- Live, immersive environment: Immediate feedback at any moment of your
development: Developing, testing, debugging. Even in production
environments, you will never be stuck in compiling and deploying steps
again!
- Amazing debugging experience: Pharo environment includes a debugger
unlike anything you've seen before. It allows you to step through code,
restart the execution of methods, create methods on the fly, and much more!
- Pharo is yours: Pharo is made by an incredible community, with more
than 100 contributors for the last revision of the platform and hundreds of
people constantly contributing with frameworks and libraries.
- Fully open-source: Pharo full stack is released under MIT
<https://opensource.org/licenses/MIT> License and available on GitHub
<https://github.com/pharo-project/pharo>
... more on the Pharo Features page <http://www.pharo.org/features>.
In this iteration of Pharo, we continue working on our objectives of
improvement, clean-up and modularization. Also, we included a number of
usability and speed improvements. A complete list of changes and
improvements is available in our Changelog
<https://github.com/pharo-project/pharo-changelogs/blob/master/Pharo120ChangeLogs.md>
Some highlights of this amazing version:
Highlights New breakpoint system
The debug point system is a breakpoint model that supersedes the previous
implementation of breakpoints and watchpoints. They are configurable,
composable, and extensible. The traditional breakpoints remain available,
including conditional breakpoints, one-time breakpoints, and object-centric
breakpoints. Additionally, there are new types of breakpoints, such as
chained-breakpoints, which condition the activation of certain breakpoints
on the triggering of others (e.g., breakpoint B only activates if
breakpoint A is hit first). Debug points also feature a dedicated browser
and integration options.
Tools
- Scalable fluid class syntax is now the default one
- Preparing the introduction of the Bloc graphic system by migrating
more tools to Spec2 widgets
- Spec2 UI framework enhancements to support GTK 4
- Leaner version of the Metacello package manager
- More robust and strict mode for FFI
System
- New architecture for refactorings and domain specific transformations
- Code loading speed improvement
- Fast browsing via fully optimized package tags
- Optmized memory usage via optimized method protocols
- Compiler simplifications and improvements
Virtual machine
- Massive image support with permanent space
- String/ByteArray comparison speed up
Development Effort
This new version is the result of 1895 Pull Requests integrated just in the
Pharo repository. We have closed 865 issues and received contributions from
more than 70 different contributors. We have also a lot of work in the
separate projects that are included in each Pharo release:
-
http://github.com/pharo-spec/NewTools
<https://github.com/pharo-spec/NewTools>
-
http://github.com/pharo-spec/NewTools-DocumentBrowser
<https://github.com/pharo-spec/NewTools-DocumentBrowser>
-
http://github.com/pharo-spec/Spec <https://github.com/pharo-spec/Spec>
-
http://github.com/pharo-vcs/Iceberg
<https://github.com/pharo-vcs/Iceberg>
-
http://github.com/ObjectProfile/Roassal3
<https://github.com/ObjectProfile/Roassal3>
-
http://github.com/pillar-markup/Microdown
<https://github.com/pillar-markup/Microdown>
-
http://github.com/pillar-markup/BeautifulComments
<https://github.com/pillar-markup/BeautifulComments>
-
http://github.com/pharo-project/pharo-vm
<https://github.com/pharo-project/pharo-vm>
Contributors
We always say Pharo is yours. It is yours because we made it for you, but
most importantly because it is made by the invaluable contributions of our
great community (yourself). A large community of people from all around the
world contributed to Pharo 12.0 by making pull requests, reporting bugs,
participating in discussion threads, providing feedback, and a lot of
helpful tasks in all our community channels. Thank you all for your
contributions.
The Pharo Team
Discover Pharo:
https://pharo.org/features
Try Pharo:
http://pharo.org/download <https://pharo.org/download>
Learn Pharo:
http://pharo.org/documentation
<https://pharo.org/documentation>