
Pharo 6.0 Released - ch_123
http://pharo.org/news/pharo6.0-released
======
lukego
Great to see Pharo on HN. I picked Pharo and Glamor [1] for a new IDE that I'm
working on [2] and it's a real pleasure to work with so far. I didn't find
anything else in the same league.

[1] [http://gtoolkit.org](http://gtoolkit.org) [2]
[https://github.com/studio/studio](https://github.com/studio/studio)

~~~
simplify
If you don't mind, could you explain how Pharo and Glamor fit together?

~~~
lukego
I'm not sure how "official" this answer is but to me Glamor is a set of
extensible ("moldable") development tools that are included in the Pharo
distribution: Spotter (object search with better UI than google), Inspector
(click through object graphs with domain-specific visualizations), and a few
others like the debugger.

So when I say that I picked Glamor I mean that my plan is to extend the
Spotter and the Inspector to be able to navigate and visualize the internal
data structures inside my application.

Does that answer your question?

See also this thesis on moldable tools: [http://scg.unibe.ch/archive/phd/chis-
phd.pdf](http://scg.unibe.ch/archive/phd/chis-phd.pdf)

------
i_don_t_know
Very nice. Congratulations!

Unfortunately, the announcement is a bit terse. Does anyone have any links or
more detailed information on these items?

\- A new code changes management system named Epicea for easier reviewing and
recovering of your code easily

How does it differ from the old system?

\- Integrated support for Git through an easy-to-use tool for repositories and
commits management named Iceberg (as a preview for Pharo 6, it will be the
default in Pharo 7)

Documentation? Screenshots? Any more information so I (we) can get an idea of
how it compares to Git integration in other tools like VisualStudio Code?

Epicea and Iceberg seem to cover roughly the same ground. What are the
relative advantages and disadvantages? When would you pick one tool over the
other?

\- The PharoVM is now part of OpenSmalltalk initiative

What's the OpenSmalltalk initiative?

\- Introduction of object immutability, alternative bytecode sets and block
closures independent of outer context

Very interesting. Is there documentation on any of this? How do you use it?
Why was this added? Can you point to some projects that use any of this?

\- Pharo is faster

How much faster? And, more interestingly, how did you achieve it?

~~~
fniephaus
\- - The PharoVM is now part of OpenSmalltalk initiative

\- What's the OpenSmalltalk initiative?

Pharo used a fork of the CogVM [1] for some time which has been moved to
GitHub and is now called OpenSmalltalkVM [2]. For Pharo 6.0, the team has
merged their changes back into the OSVM repository.

[1] [http://www.mirandabanda.org/cogblog/about-
cog/](http://www.mirandabanda.org/cogblog/about-cog/)

[2] [https://github.com/OpenSmalltalk/opensmalltalk-
vm](https://github.com/OpenSmalltalk/opensmalltalk-vm)

------
AdmiralAsshat
I tried Pharo awhile ago, but last I checked the HiDPI support was still not
there, and the menu was just unusable on my QHD+ screen.

It's a bit of a common point of frustration for me, because I've had the same
problem with Squeak, Dolphin, and several other flavors of Smalltalk that I've
tried. Because of this, the only version of Smalltalk that I've actually been
able to work on has been GNU Smalltalk in a terminal.

This is disappointing, because I really want to play with it more. Can anyone
recommend a modern version of Smalltalk with a GUI that has HiDPI support?

~~~
coldtea
> _I tried Pharo awhile ago, but last I checked the HiDPI support was still
> not there, and the menu was just unusable on my QHD+ screen._

If you don't mean actually unusable (e.g. artifacts, too tiny, etc) then it
sounds like a really superficial issue...

~~~
fusiongyro
That attitude is more-or-less why Smalltalk is in the boat it's in. Lots of
mindshare with few actual users because everybody can name a superficial issue
that keeps them from using it.

~~~
coldtea
If only the Pharo community knew that, they would have jumped to fix this
issue! Because clearly they have all the time and resources in the world, and
they only keep this issue open out of spite...

It's a volunteer non profit project. If people haven't done, clearly the don't
have the time to do it over other things.

Tsk, tsk-ing them for not having fixed everybodys and anybodys pet peeves is
beyond meaningless.

It's not like random non-Pharo using programmers are entitled to anything. Or
like anybody forces them to use the platform.

If they don't like it, it's rather "don't let the door hit you on your way
out".

If, otoh, they want to use Pharo they can. If they find that future important,
they can help build it.

~~~
fusiongyro
I hope you feel better after that little outburst. If this is your reaction to
mild criticism of obvious shortcomings, it puts out quite a welcome mat.

~~~
coldtea
I'm not the "Pharo community", just someone trying out Pharo.

But I don't think entitled criticism helps or is welcome in any community
project.

It's easy to point at anything and ask them why they haven't done it yet, and
that it's this "mindset" that keeps them small.

As if if they had a different mindset they'd also have magical resources.

------
_pmf_
Here[0]'s an interesting section on large scale users. Seems to have been used
in production for some ATMs in Russia.

Would be interesting to know why this platform is not more widespread.

[0] [http://pharo.org/success](http://pharo.org/success)

~~~
pjmlp
Smalltalk's thunder in the enterprise was killed when Java started to gain
adoption.

Eclipse was born from Visual Age for Smalltalk and Hotspot was taken from
StrongTalk project.

Java, .NET and Swift Playgrounds are now the closer we have to Smalltalk in
regards to mainstream adoption.

Being image based also did not help, even though there were ways to exchange
code among teams, including distributed source control tooling.

~~~
hota_mazi
There was really never any Smalltalk thunder.

The language has been around for decades and it's always been marginal, for
multiple reasons (license, cost and the whole image deployment model which,
even today, makes it problematic to do even the simplest things, e.g. deploy a
simple Smalltalk web app to the cloud).

~~~
pjmlp
Depends on where on the world one were.

In 90's Portugal it was common as enterprise language used by the likes of IBM
and friends, also used to teach OO in many universities (alongside C++),
before Java was born.

------
xiaoma
What kinds of projects is this best suited for? Cross-platform GUIs? Web
servers? Data processing and numerical computing?

Where does Pharo shine, at least in the eyes of those who use it?

~~~
philippeback
It shines when one puts the tools together.

e.g. Roassal + GTInspector + PetitParser can do a ton. Coupled with Zinc (HTTP
Client + Server) and XMLPullParser, data can be brought in easily.

One key thing here is that there is much less accidental complexity that on
other platforms when coding.

The continuum between coding/running/debugging/understanding is really sweet.
It is more of an experience of making progress in much less time than on other
platforms.

I have been coding on quite a number of other stacks but Pharo is really
giving more to my soul, so to speak.

Also, the whole thing is MIT and no big corp owns any of it. So, we shape our
own future. The community is smaller but really inspiring and it all made me a
much better dev.

And it makes my thinking cleaner. Not a small feat.

~~~
xiaoma
Tell me about the things it's good at making. If those aren't a match, I don't
care about any of the points above!

I accept that you enjoy using Pharo. What is the output of that time enjoyably
spent? What product does Pharo have the largest relative advantage in
creating?

~~~
philippeback
I did this one a while ago.
[http://pharo.org/success/CableExpertise](http://pharo.org/success/CableExpertise)

So is is good for doing some web application dealing with lots of devices.

Have a Jira client for doing lots of Jira automation using the REST API, along
with a bunch of goodies etc. Pharo was quite practical to deal with that.

Am finishing up an XMPP client, and writing callbacks for dealing with XEPs
etc is a dream in a live environment like Pharo. Expect more there soon.

Compared to other things I did with say Java or .NET, they all take longer and
are more convoluted. I used to be a Java full time dev/tech lead/architect for
years.

I am still doing Hadoop stuff but it all feels like there is always an
annoying ton of accidental complexity in the Java/.Net camp.

Check [http://pharo.org/success/Quuve](http://pharo.org/success/Quuve) for a
rationale about picking Pharo instead of Python.

------
iso-8859-1
Here's a talk about Iceberg:
[https://www.youtube.com/watch?v=DGgzdOLBx9c](https://www.youtube.com/watch?v=DGgzdOLBx9c)

And UnifiedFFI:
[https://www.youtube.com/watch?v=418eEvCiepU](https://www.youtube.com/watch?v=418eEvCiepU)

UnifiedFFI sources:

[https://github.com/pharo-project/pharo-
vm/blob/e0ce2d9d78c3c...](https://github.com/pharo-project/pharo-
vm/blob/e0ce2d9d78c3c7b37bbc12cd8730c6a15f1f057c/opensmalltalk-
vm/platforms/Cross/plugins/SqueakFFIPrims/sqFFIPlugin.c)

[https://github.com/pharo-project/pharo-
vm/tree/48e59f7238853...](https://github.com/pharo-project/pharo-
vm/tree/48e59f7238853c52c920a77b74641b144e3f6b64/mc/VMMaker.oscog.package/ThreadedFFIPlugin.class)

~~~
aryehof
Many thanks for these links. They help. Documentation as a way to attract new
users and educate existing ones, doesn't seem to be part of the culture with
Pharo.

------
krylon
> The Dark Theme was improved and set as default color theme of Pharo

This is, of course, quite OT, but what is it with the trend towards dark color
schemes? I find that it makes text significantly harder to read. Especially if
you sit in a not-very-bright-room.

Other than that, the release notes sound cool. It is good to see that the
project is making progress. Git integration sounds very interesting. Source
code management was one of the things I found rather confusing as a Smalltalk
newbie.

~~~
croon
I'm the opposite, and when rationalizing it to myself I'm thinking that our
traditional black-on-white writing has more to do with the fact that it's
easier to stain light paper with dark ink/coal/etc than dark paper and light
writing.

This is no longer the case with displays, so we can choose ourselves, and
light on dark is much easier on my eyes (at least it feels like that).

~~~
walterstucco
I've always found that black boards were more readable than black ink on white
paper

and I think that's why in large classrooms they are still the favourite medium

------
Tepix
Great, I've been waiting for this release that also makes Pharo a member of
the OpenSmalltalk initiative. I wonder when/if the Pharo MOOC will be updated
for 6.0.

------
dangom
I was excited to dig into Smalltalk some time ago, and downloaded Pharo 5. The
reason I quit after a couple of minutes is that there was no support for
standard Unix keybindings (i.e., C-a beginning-of-line), and no way to
configure Pharo to understand them. [1]

Has this issue been solved in 6.0? I'd be happy to give it another go.

[1] [https://stackoverflow.com/questions/38788468/pharo-
keybindin...](https://stackoverflow.com/questions/38788468/pharo-keybindings)

~~~
billsix
What made you excited to learn Smalltalk? Seems odd that you quit after a few
minutes. If keybindings are that important to you, perhaps try gnu Smalltalk.

~~~
radarsat1
I don't care much about keybindings, but I had a similar experience to GP. I
used Pharo for a project and hated it. Not so much because it's "bad" per se,
but the whole thing is running in a VM process in its own graphical
environment, it's like a walled-garden kind of experience. I don't see the
point in developing _with it_ unless you are developing _for it_ , so you have
to buy into it completely or not at all. Whenever you ask Pharo people why
it's better, the answer is always just, "Oh it's better.. trust me. I can't
explain but it's about the image and .. well you'll know when you've tried
it." You know what? I tried it. And it sucks. Pharo 5 crashed many times on me
making me lose my work, so I got into the habit of saving the entire image
every 5 seconds. Got tired of that pretty quickly.

~~~
philippeback
Pharo 5 VM had a bug with a double free in the FreeType integration. So, using
truetype fonts instead of the basic raster font made the VM crash. It took a
while to find out why this double free occured. The crash was not from Pharo
bytecode or the VM core, but from a stupid double free crash.

Now, why is it "better"? It is not because "trust me". It is because it makes
code much more malleable. You need to let go of coding in files and of the
need to scroll through code page after page. One needs to think of the code as
a repository. Well the kind of thing tools like Jetbrains provides. When they
do index your code, they basically build a Smalltalk image structure without
the liveliness of it. So, the thing that makes me find it better is that when
I got a bug (not a "crash"), a debugger pops out and I can inspect all of the
state, maybe change code here and there (because I realized how stupid I was
to code things that way 10 minutes ago), go back a frame in my debugger and
continue the run. Without having had to stop anything, or restart the program.
If I save my image before a run, I can always open it back like I would with a
VMWare snapshot. That is quite great. After a while it reduces the time to
code by a significant factor. Agreed it is another way to code. And ideed
you'll know when you will have tried it. But it is hard to do all of that by
oneself without seein g other Smalltalkers coding for real.

Now, for the files metaphor, I plan to have a fuse module at one point so that
one can get into the image and see the contents as files, like one is looking
into /proc or /dev etc. Then one can use Vim or whatever (I am a heavy tmux
and vim user, so I feel your pain when it comes to the keybindings needs - but
the current pain is worth the rewards). It took me a couple years to become
proficient with Pharo and there is more to discover in that _system_ for years
to come. Because Pharo is a system and not a build system. You need to
understand the system in which your code lives. This is very different from
creating a piece of code from A to Z, compiling it and running it somewhat
standalone or within, say, Tomcat or some similar device.

Also you shouldn't lose your work in Pharo because of the "Recover Lost
Changes" tool that exists and allows one to grab the code back. Epicea brings
this to a whole new level.

Hope this makes some of the possibilities a tad clearer.

~~~
radarsat1
Oh my problem is not at all with the idea of coding in an image, being able to
dynamically change functions, etc. In fact I work that way all the time using
emacs and Python. My problem is just being stuck with this annoying graphical
environment that wraps it all.

And, I'll add, it's what gives it a feeling of being truly brittle when the
whole thing comes crashing down. It's not just your program that dies, but the
whole desktop. I'm glad to hear they found and fixed that bug, it was
seriously detrimental.

~~~
philippeback
Well, I am coding all day long in that thing and it is stable.

I do not feel stuck but have a few tricks:
[https://github.com/Pharophile/ExternalTools](https://github.com/Pharophile/ExternalTools)

(and for the save thing:
[https://github.com/Pharophile/HOImageSaver](https://github.com/Pharophile/HOImageSaver))

I like being able to add new features to my own dev environment the way I
want. Like with
[https://github.com/Pharophile/TilingWindowManager](https://github.com/Pharophile/TilingWindowManager)

Try that with other tooling. A plugin or two, yeah, but hacking your own
development environment from the inside out? That's really awesome I say.

------
richard_todd
I tried it out, and it definitely feels snappier than Pharo 5. They did a
great job! The thing that bugs me the most, which has not changed in v6, is
that there's some sort of active UI polling going on, so it sucks like 5% of
your CPU just sitting there doing nothing. That's not good for battery life.
It would be nice to know if changing that is in their plans for some future
release.

------
hboon
This is on behalf of the other knights of the square brackets, and anal folks
like me. The language name is spelled with a lower case T, like this:

Smalltalk.

~~~
philippeback
Yeah.

------
philippeback
Here is the presentation of Pharo 6.0 at Pharo Days 2017 with screenshots and
more clues.

[https://www.slideshare.net/pharoproject/pharo-6](https://www.slideshare.net/pharoproject/pharo-6)

------
lukaszjb
Great news! UI looks better and works smoother or this is just my opinion?

~~~
philippeback
UI looks indeed better. Uses FreeType instead of strike font. One can tune the
freetype glyph contrast in the settings as well. And use any freetype font,
like Hack (which is what I do use).

Works smoother because of usage of FastTable which replaces the old lists of
morphs that got overkill. Actually, Pharo was fast for dealing with that
massive amount of morphs. It felt slow because of the amount of stuff it did.
But not intrisically slow.

------
bbmario
How do you deploy a Pharo-based web application? Does it need the image? And
how do you scale?

And... how do you deploy a Pharo-based desktop application? Does it need the
image? Can you compile it?

~~~
tunaoftheland
There was an older blog post about deploying Seaside (a SmallTalk web app
framework) on AWS. It boiled down to stripping the image of unused parts (tree
shaking), including the GUI and copying the images over to the server behind a
load balancer. Sorry for the lack of details, I can't find that particular
article. This looks like it might answer the questions:
[https://ci.inria.fr/pharo-
contribution/job/EnterprisePharoBo...](https://ci.inria.fr/pharo-
contribution/job/EnterprisePharoBook/lastSuccessfulBuild/artifact/book-
result/DeploymentWeb/DeployForProduction.html)

------
eXpl0it3r
What's up with that compression-pixelated lighthouse? Looks odd and seems to
split up the content on the site for no reason.

------
agumonkey
I did the Pharo MOOC. For such a different culture it was almost 100%
pleasure.

Kudos to all the team

~~~
lukego
How do you "do" it?

I've been unable to really decipher what the MOOC is despite reading the
website and watching the videos I could find.

I keep wishing it were a YouTube channel...

~~~
agumonkey
Are we talking about this mooc [https://www.fun-
mooc.fr/courses/inria/41010/session01/about](https://www.fun-
mooc.fr/courses/inria/41010/session01/about) ?

"do" means register for the course ? it seems they did not rerun the course
(sadly).

about the content, it's very similar to other PL mooc, you get the Pharo env,
first week is basic hands on[1], then you solve problems of increasing
complexity (but here it's no CS level problems, more IT/CRUD).

[1] the fun part is that in Pharo, first exercises are about modifying the
world you live in. You also learn the versionning system to save/load your
work.

~~~
lukego
Too bad. I was aware of it when they were calling for registration but the
time didn't suit me and I just assumed it would be available permanently in
some way e.g. online videos. My loss!

~~~
agumonkey
I too assumed it would be that way. Many MOOCs did this.. If I hear anything
about it I'll ping you.

------
aryehof
Is there no documentation of new features and changes?

