Software Developer

Smalltalk, Swift, Java, Obj-C

@fstephany | Email | LinkedIn

I'm currently working at Ta Mère SCRL a small development shop in Belgium.

We mainly do mobile apps (iOS, Android) for clients. We also have a strong interest in Pharo Smalltalk and Rust.

logo Ta Mère SCRL

Pharo packages to know

02 Jun 2014 in smalltalk pharo packages 

Starting to work with Pharo Smalltalk these days is quite a non trivial process. Non-smalltalkers are already lost with the language and the environment. On top of that, they must learn tools and library names that are quite specific to Smalltalk or Pharo.

Here's my short list of project name to know:

  • Morphic: The GUI layer of Pharo. It is not really
  • Spec: A framework to describe user interfaces. It powers quite a few tools in the Pharo environment. At the moment, it uses Morphic as the backend but it should eventually be backend-agnostic.
  • Nautilus: The code browser. It's the primary tool to interact with your code.
  • Zinc: an HTTP client and server library integrated into Pharo
  • Monticello: A source control (think Git but specialized for Smalltalk packages) dedicated to Smalltalk. It outputs .mcz packages that contain the whole source code for a given version.
  • Gofer: A tool helping you to grab Monticello packages. It can be used to script the loading of Monticello Package
  • Metacello: A tool to express the dependencies for your project. Think Bundler, Maven or Pip for Smalltalk. You usually grab the MetacelloConfiguration of a package with Gofer and then ask the configuration to load the project.
  • Versionner: A Graphical tool to help you create your Metacello configurations.
  • Athens: A new vectorial backend for Pharo. It will eventually replace the current rendering engine. It is based on Cairo.
  • NativeBoost: A library to call C libraries from Pharo. Other projects exist (e.g., FFI, Mars) but NativeBoost (NB) is probably the way to go for new projects.
  • Filetree: Filetree lets you write Monticello packages into the regular filesystem. If you want to use git, this is the way to go. There are efforts to use git natively with the tools available in the image (e.g., gitfiletree).

There a many more but those are probably the core packages that a newcomer will hear about when (s)he starts to play with Pharo.

I've linked some of the projects to their homepage but all the others should be covered by Deep into Pharo and Pharo For the Entreprise.

Ping me on Twitter if I forgot an important package that does not have a meaningful name.