
Pharo 5.0 Released - ch_123
http://pharo.org/news/pharo-5.0-released
======
NhanH
For anyone interested, there is a MOOC for Pharo going on here right now :
[https://www.fun-mooc.fr/courses/inria/41010/session01/](https://www.fun-
mooc.fr/courses/inria/41010/session01/) . The video are in French with English
subtitle, but all the contents are in dual language French/English.

~~~
hathym
thank you for the link

------
biftek
I'm curious, what do people use Smalltalk/Pharo for?

I've seen a handful of demos and been blown away (especially the debugging
tools), but am I wrong in assuming it's mostly for educational purposes? Is
there a "real world smalltalk" that I'm missing?

~~~
zeveb
It's useful in education, but it also was competitive in what became the Java
market. Weirdly, the world bought into a relatively static language when it
had the option to go for the extremely dynamic and flexible SmallTalk instead.
I have always thought it an extreme shame that the man-centuries (man-
millennia?) sunk into improving the JVM weren't instead spent improving an
open-source SmallTalk instead.

~~~
kabdib
Is that because Java is more a traditional "source code in files, run a
compiler" culture, where you can scale teams just by getting better at source
control?

For a long time, Smalltalk and its brethren were terrible at sharing code; you
had a bunch of stuff in an environment, and importing and exporting stuff was
a nightmare. Has this changed?

Also, it's probably a lot harder to scale a Smalltalk app out to a server farm
than it is to just rsync a bunch of java packages and hit "run".

I'd be happy to be wrong about any of this. Smalltalk is my favorite language
(that I'll never ship a product in) . . . but when you look at a couple of my
recent projects, which are PHP + JavaScript + WebGL that interpret and let you
look at a bunch of back-end statistics, I'd sure like to be using something
better.

~~~
vanderZwan
Regarding your last comment: surely there's a good compiles-to-JS option
available these days? There's even a Smalltalk for client-side programming:

[http://amber-lang.net/index.html](http://amber-lang.net/index.html)

... not sure how that would work with WebGL though.

~~~
david-given
Amber's quite heavyweight and requires server-side support to do anything
useful.

But Smalltalk's so simple that writing your own transpiler isn't that hard ---
I have an entirely browser-side prototype in about 2kloc:

[https://github.com/davidgiven/stellation/tree/stellation5/cl...](https://github.com/davidgiven/stellation/tree/stellation5/client)

Performance is adequate, but not great. Method lookup is the dominating
factor, because you need different code paths based on the type of the
receiver (number, string, object...)

Of course, writing the libraries is the bulk of the work.

------
armitron
It's great to see Pharo improving, it has tremendous potential.

I think the groundbreaking changes in terms of immediate appeal will come in
Pharo 6 (new widgets Brick/Bloc, faster graphics with SDL, better font
rendering and so on) which will surely attract lots of newcomers to the
environment.

To any Pharo devs that may be reading this, there is this snippet in
[http://www.pharo.org](http://www.pharo.org) :

$ curl get.pharo.org | bash

In an age where nation states are fighting for control and MITM attacks are
more prevalent than one would think, it does you no favors to promote snippets
like the one I pasted. Please consider what the implications are and come up
with a better way. I also noticed that you offer no signatures for the Pharo
archives or downloads over HTTPS even. You do not need the bad publicity that
will come with a security disaster stemming from these issues.

~~~
shrugger
Do you have a source on "In an age where nation states are fighting for
control and MITM attacks are more prevalent than one would think" ?

I am curious what those numbers actually look like. I've always wondered about
what kind of scale they operate on.

~~~
armitron
An example (QUANTUM) that became public with Snowden revelations, that is also
very old by now (so who knows what their current capabilities are) gives NSA
the ability to on-demand MITM _ANYONE_ they wish with a minimum of effort.

This is just a single actor.

------
krylon
Smalltalk has been incredibly frustrating in that is one of the most fun
languages ever, but makes it incredibly hard to actually produce a standalone
program.

Programming in Smalltalk environments compared to regular ones is like
gardening, maybe, growing stuff organically as opposed to working in a
factory. But I somehow never managed to rip an appplication out of its
environment.

~~~
thornkin
That was my frustration. I made a game in SmallTalk at one point but there was
no way to distribute it to people without giving them my whole image. I just
wanted a simple .exe to hand out.

~~~
incepted
I'm surprised that decades after the first Smalltalks came out, the Smalltalk
people still have not understood how big a deal that is.

~~~
astrobe_
[http://forum.world.st/Create-a-exe-application-in-
Pharo-2-0-...](http://forum.world.st/Create-a-exe-application-in-
Pharo-2-0-td4719112.html)

PS: You should be a bit more flexible. If you insist on programming, say, in
Haskell the same way you program in C, all you'll do is hurt yourself. Same
goes when you try to use an image-based environment like a standard IDE or
toolchain.

Just look at how Pharo itself is distributed: it's a zip file you can
uncompress and run right on your desktop. On Windows, it _just works out of
the box_ without even running an installer.

~~~
incepted
> On Windows, it just works out of the box without even running an installer.

You say this as if it's a good thing, it's not. It's a bad thing on Windows.
It means the software will not be able to use a lot of facilities on the
Windows platform. It's also a hassle for users who need to pick up a target
directory, remember it's there, create a shortcut manually, etc...

There are reasons why modern operating systems use installers

As for the article, it is incredibly dated and wrong on many fronts about how
people ship software on Windows.

I'll just address one point:

> Unfortunately is not a very flexible way to package anything into a single
> compiled executable. It is hard to ship an update - since you have to
> redeploy the executable anytime your program changes.

Installing and updating executables on Windows is a solved problem. Solved.
It's so easy to deploy patches and even have software self update that nobody
thinks about it any more. The fact that Pharo is reinventing its own process
under the cover of doing it better (which they don't, it's worse by all
standards) is precisely the problem that I was referring to: Pharo (and
Smalltalk people in general) still don't understand how to deploy software on
modern computers.

------
mparramon
Why is there no mention of Smalltalk on the page?

~~~
lallysingh
So is it Smalltalk? I kept reading and thinking, "This smells like Smalltalk."
That's certainly not a bad thing!

~~~
rjblackman
yes it's smalltalk, i believe it was a fork of squeak??

------
protomyth
gotta love a project that takes its documentation seriously
[http://files.pharo.org/books/](http://files.pharo.org/books/)

------
plinkplonk
Does anyone know if the compiler refactoring happened in this release?

~~~
kilon
there is a new compiler this release and a new vm. Over 200 new features over
2000 fixed bugs and a ton of new documentation (my department). Busy Busy :)

~~~
plinkplonk
awesome! I always wanted to dig into squeak/pharo compiler implementation. The
old code was a mess. Thanks, happy digging-into-code-time ahead.

------
marcus_holmes
piping to bash as an install method?

didn't we decide this was a really really bad idea?

~~~
aeze
It could definitely be dangerous, but nothing is stopping you from inspecting
the script before you run it.

~~~
dguaraglia
Not saying you are wrong (you are not, you technically can download the script
in one step, read it and then feed the local copy to bash) but someone posted
a proof of concept a couple months ago that used user agent sniffing to
potentially fool people into reading one thing and running another if they
used the browser to read the source but curl to pipe the script into bash.

~~~
aeze
I wasn't aware of that, thanks.

