When comparing Scala vs Pharo, the Slant community recommends Scala for most people. In the question“What is the best programming language to learn first?”Scala is ranked 18th while Pharo is ranked 24th. The most important reason people chose Scala is:

Pros

Pro

Immutable values

The immutable values make it perfect for working with concurrency

Pro

Multiparadigm

Scala supports both Functional and Object Oriented styles of programming. Beginners can learn both paradigms without having to learn a new language, and experts can switch between the two according to what best suits their needs at the time.

Pro

Type inference

Scala offers type inference, which, while giving the same safety as Java's type system, allows programmers to focus on the code itself, rather than on updating type annotations.

Pro

Compiles to JVM bytecode

Aside from Java itself, Scala is by far the most popular of the many JVM languages. If you're developing for Android, or a similar JVM-only platform, or otherwise need out-of-the-box cross-platform compatibility, but the performance of a compiled language, Scala is the way to go.

Pro

Very good online courses

On coursera you can find great introduction to Scala by Martin Odersky.

Pro

Type inference leads to a simpler syntax

Pro

Pro

Object-Oriented

In Pharo everything is an object. Compiler - object, network - object, method - also an object. And objects communicate with messages. No operators, no control-flow statements. Just objects and messages. Few things to learn, but you can learn OOP well.

Pro

Easily learnt

There is good, free documentation including several books written by experts with extensive examples. There is an online MOOC. There are many tutorial videos. Supportive conferences and community. Even a professional support option if desired.

Pro

Live updates

The nature of Pharo being a "live" environment allows you to perform live updates to your system without requiring to restart it. You can upgrade/modify classes while serving requests at the same time.

Pro

Advanced code analysis tools

Pro

Seaside

The framework for developing sophisticated web applications in Smalltalk is developed in Pharo. Seaside lets you build highly interactive web applications quickly, reusably and maintainably.

Pro

Can run headless for production

Pro

Highly productive

Pro

Remote debugging

Pro

Really simple networking and REST with Zinc

Pro

Graphics, graphing and visualisation framework - Roassal

Roassal and Mondrian provide fantastic and easily used frameworks for graphics, graphing and advanced visualisations (comparable to D3.js) but with much less code. Visualisations can be rendered into web friendly graphics (SVG, .png etc.) without additional work.

Pro

Beautiful coding patterns in your IDE

No need to search google for compact beautiful examples of how to do things, your live environment source is available and you can easily live search, see how it works and copy how the masters would do it (examples most languages still copy too).

Pro

Glamorous toolkit & GTInspector

Most languages are still copying the Smalltalk tools of yesterday - GTInspector (written in Glamorous) takes live exploration of code/running objects to a new level. It's really slick, and better yet, you can easily write your own inspectors in 10 lines of code.

Pro

Code can be run on rock solid GemStone environment

Cons

Con

Can be intimidating for beginners

Scala is an industrial language. It brings functional programming to the JVM, but not with a "start small and grow the language" perspective, but rather a very powerful language for professional programmers.

Con

Static type system inherits cruft from Java

The type system is too complicated yet still less powerful than Haskell's.

Con

Way too complex for beginners

Even for seasoned programmers it's a difficult language.

Con

Small community

But they are very friendly and supportive. Best help comes through the mailing lists so not always easily googlable. There is also a Slack community where help is nearly instantaneous.

Con

No 64 bit VM

Although 64 bit support is on its way, there is no official VM to work in a 64 bit system, requiring you to use 32 bit libraries.