Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Squeak or Pharo for the beginning Smalltalker?

I am a Rubyist that is just starting to dabble in Smalltalk and am trying to chose an implementation to experiment with. It seems like Squeak or Pharo would be a good choice, but I'm having trouble finding current information to help decide which one would be better. Much of what I find via Google searches is from a couple of years ago and may no longer be relevant.

Is there a clear favorite these days? If not, what are the pros and cons of each?

like image 524
gregspurrier Avatar asked Dec 08 '11 06:12

gregspurrier


7 Answers

To certain extent, it is a matter of personal taste. Pharo is fork of Squeak intended make it more modern version of Smalltalk, sometimes at expense of not sticking to backward compatibility to Squeak.

Pharo being a fork, also means that they share much in common, from VM to huge parts of class library. Many add on packages work with both of them, and some are developed with Squeak as primary dev platform and I guess a slightly larger number of them are developed in Pharo (Seaside, Pier, etc). Both variants have free intro books: Squeak by Example, and Pharo by Example, but Pharo one seems more up to date.

Personally I prefer Pharo since it gives me cleaner and more modern feeling.

like image 172
Davorin Ruševljan Avatar answered Nov 19 '22 22:11

Davorin Ruševljan


Another choice to learn Smalltalk is Cuis.

From the description:

Cuis is different from other Squeak variants in that it takes an active attitude towards system complexity: As systems grow older, they usually become more complex. New features are added as layers on top of whatever is below, sometimes without really understanding it, and almost always without modifying it. ... The only way to avoid this is by understanding the complete system, and re-engineering the whole system all the time. Keeping it simple and consistent.

The code is on Github. The most recent image files are here.

Cuis has around 600 classes. This makes is very doable for a single person to understand everything. Later on you might want to switch to Squeak, Pharo or another Smalltalk as the vast majority of the classes and methods are compatible.

like image 35
z-- Avatar answered Nov 19 '22 20:11

z--


There are a number of interesting possible starting points:

  • Seaside-one-click to do web development;
  • MOOSE one-click to do software reengineering and create model browsers and visualizations;
  • Pharo one-click to follow the Pharo-by-example book (more up to date than the squeak one) with a more cleaned-up library;
  • Cuis for a cleaned-up graphics model (Morphic);
  • EToys one-click if you're interested in educational aspects;
  • Squeak-one-click for an environment with an abundance of interesting tools & toys.

Explain more about what you want to achieve and we can help you better

like image 13
Stephan Eggermont Avatar answered Nov 19 '22 21:11

Stephan Eggermont


The most traction right now is enjoyed by Pharo, so I'd go there. The runner-up is Visual Works. Just beware, no Smalltalk dialect is having a lot of traction right now.

My reasoning goes as follows. Today, Smalltalk is used for 2 things: Web programming and research. For both, Pharo has the upper hand (Seaside uses Pharo as its default platform, and University of Lille cranks out the most Smalltalk papers–––all built on Pharo).

The third thing Smalltalk is used for, although decreasingly so, is developing banking software. There, VW is still popular. Also, VW has the nicest object inspector.

like image 9
nes1983 Avatar answered Nov 19 '22 20:11

nes1983


There might be a clear favourite but you have to develop it for yourself.

Pharo and squeak have huge parts in common. But as pharo is a fork from squeak it also means they diverge from each other.

If you look from the angle of learning smalltalk then both are equal. If you look from the angle of supported technologies then the situation might be a bit different. Most developers are either squeakers or pharoers. And developers create libraries and technology supporting frameworks. If the developer of a library is a pharoer I would expect the library to be better maintained in pharo than in squeak (and vice versa).

You should probably have a look at both and try the stuff you want to achieve. In most of the cases the experience will be the same. As soon as it stops being the same you might know your favourite already.

like image 7
Norbert Hartl Avatar answered Nov 19 '22 21:11

Norbert Hartl


I'm doing a series of tutorials on how to use Squeak from very the start so naturally I am biased in favor of Squeak. Of course, I'm not afraid to use a different fork to show off specific packages most easily. For example, I use the one-click Pier image to introduce Seaside and Pier and that is basically Pharo.

like image 5
Saijanai Avatar answered Nov 19 '22 22:11

Saijanai


Although not strictly a Smalltalk implementation one should not overlook Newspeak. Not as yet a production environment, but if you have been torn between Alan Kay and Nicolas Wirth as language experts Newspeak is like Smalltalk and Modula2 combined.

like image 5
Brian Atkins Avatar answered Nov 19 '22 20:11

Brian Atkins