Sometimes conversations revolve around perceived deficiencies in Pharo.
What Pharo is missing. Or what Pharo doesn't do as well as my previous
language, my favorite language, my other language, etc... These
conversations are necessary to understand where Pharo is and to provide
understanding on where Pharo needs some work.
However, not enough gets said sometimes for all the goodness Pharo
already provides and thanks to all of those who have contributed over
the years to Smalltalk/Pharo.
I know sometimes we get stuck in the minutiae and lose the big picture.
I just want to say thanks to all that have contributed to Pharo in big
and small way. Thank you.
A special thanks to Stef, Marcus and company who have been working hard
on this all the way back when it was still Squeak. Who had a vision for
a clean, empowering, business ready, vision fulfilling Smalltalk
inspired tool we call Pharo. Thanks.
And a thanks to Eliot and all who contribute on the VM side of things.
Enabling us to have a nicely performing and stable vm to run the Pharo
image.
My apologies for not naming everyone who deserves thanks. I intend no
offense to anyone not named, but also deserving. Your names are included
in all the contributor documentation. Thanks.
And while I am being thankful, which is a good habit for all of us to be
in. Being thankful not only improves the spirits of those being thanked.
But those of us who are grateful are the biggest beneficiaries.
I want to take time to appreciate some things in Pharo that make us
appreciate having a tool like Pharo and which distinguishes itself from
other languages and environments. I think these things either
distinguish themselves either in the relative uniqueness or in quality
of their implementation. They are not necessarily distinguishing from
other Smalltalks but from other non-Smalltalk languages.
Superior persistent live object environment.
This is the game changer and affects and enables all other benefits.
"""I'm not complaining. I know that there is a good chance that we break
the system when improving it. I have no problem with that and I prefer a
living system with some bugs
for a while than a dead system with no bug""" Stef - Sept. 7, 2015
IDE, debugging and refactoring, all live, all the time.
Because of the truly persistent live environment, there is no concept of
shutdown, restart. We only know hibernate and resume. This is to use OS
terms. For me this is an amazing boost to productivity. I can at any
time save my image. Even close my saved image and resume exactly where I
stopped. At any time, on any supported OS, on any machine. Powerful.
There truly is no edit, compile, run cycle similar to other languages,
even dynamically typed languages with REPLs.
If I am not in Pharo, even if that language has an amazing notebook or
repl available. It is nothing like coding in the live environment. The
separation of editor and the compiler and/or application or VM makes
development not as smooth and fluid. Even if I can enter and execute
code in a notebook or repl to explore and learn in a version of a live
environment. I still at some point have to leave my editing environment
and write, edit and save my source code. And yes there are languages,
editors, IDEs and tools that attempt to close the gap. But no, there
still is a significant gap. The edited source code is the only thing
that persists. Everything that gets executed in the repl or notebook is
transient and will go away.
MIT, equivalent or better licensed ecosystem.
For me these are game changers. They set a standard by which I view any
other programming experience. Thusly all other programming experience
falls far short.
Whenever I (we) experience a present weakness in Pharo. Remember the above.
Not only does Pharo have these distinguishing factors. I do not know of
any language or environment which even has a culture or worldview of
programming which seeks to bring these features to their favored
language or tools.
Every time I have to restart my computer I think, Smalltalk solved this
decades ago. Ugh!!!
Where is my Pharo machine. :)
If you have any Pharo distinctives that you appreciate and would like to
share. Reply and let us know.
What I mean by distinctive is something that Pharo (or Smalltalk) has
that is either not in other languages or is in general significantly
inferior. Especially those that other languages have no vision to ever
have. It just isn't a part of who they are.
If we keep these things before us as we work through the tedious work of
cleaning the image, repairing fail attempts at various things. Or
anything that may be a frustration for the moment, but is temporary.
Remember what we gain and are blessed with having, that we would lose
any where else. Or at a minimum have a far inferior substitute. And look
forward to what we will have as these things become complete. The future
is ours. Let's enjoy the journey.
Just some thoughts in my head I wanted to let out.
This is reminder to me. If any of you are blessed and inspired, that is
a plus.
Thanks and Shalom.
Jimmie