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>