Skip to main content
Engineering LibreTexts

7.1: Pharo Environment Overview

  • Page ID
    39605
    \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)\(\newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    The System Browser is the central development tool. You will use it to create, define, and organize your classes and methods. Using it you can also navigate through all the library classes. Unlike other environments where the source code is stored in separate files, in Pharo all classes and methods are contained in the image.

    The Finder tool will let you find methods, classes, pragmas, and more. You can look for a method’s name, a class name, some source code, a pragma’s name or even look for methods by providing an example!

    The Monticello Browser is the starting point for loading code from, and saving code in, Monticello packages. It is discussed in more detail in Chapter : Sharing Code and Source Control.

    The Process Browser provides a view of all of the processes (threads) executing in Smalltalk.

    The Test Runner lets you run and debug SUnit tests, and is described in more detail in Chapter : SUnit.

    The Transcript is a window on the Transcript output stream, which is useful for writing log messages.

    The Playground is a window into which you can type input. It can be used for any purpose, but is most often used for typing Pharo expressions and executing them via Do it. We have already briefly encountered the Playground (and the Transcript) in Chapter : A Quick Tour of Pharo.

    The Debugger has an obvious role, but you will discover that it has a more central place compared to debuggers for other programming languages, because in Pharo you can program in the debugger. The debugger is not launched from a menu; it is normally entered by running a failing test, by typing CMD-. to interrupt a running process, or by inserting a Halt now expression in code.

    Window groups

    Managing multiple windows within a Pharo image can become a tedious process. Window Groups are windows that offer tab support similar to the one you are used to on your web browser. To create a window group, click on the down arrow which appears on the top right corner of every window within Pharo, and select Create window group. This will turn that window into a window group with a tab bar, containing as its first tab the original contents of the window. You can add other windows to the group (within the Pharo image only, of course), by dragging and dropping their title bars onto the tab bar, next to existing tabs. Each new window that you drag onto the tab bar will be added as a new tab.

    Themes and icon sets

    If, like some of us, you are not a fan of the default bright theme, there is also a dark theme that can be used with Pharo. It can be found in the Settings browser in the World Menu (World > System > Settings), in the Appearance section. The User interface theme pulldown allows you to switch between the default Pharo3 theme and the Pharo3 Dark theme. You can also experiment with available icon sets in the next pulldown in that section.

    Please note that you may have to close and reopen existing windows to redraw them correctly with the new dark theme.

    Window Group with two tabs.
    Figure \(\PageIndex{1}\): Window Group with two tabs, one with Playground and one with System Browser.

    You can use the Catalog Browser to install additional themes. Open World > Tools > Catalog Browser and search for theme in the search box. For example, if you want something more colorful, you can download the Nireas theme, which is a blue theme inspired by classic home computers like Amiga 500 and Amstrad CPC 6128. Nireas comes with a GUI tool that allows you to customize the theme’s colors to your liking, if blue is not your thing.

    Of course, if you are feeling especially adventurous, you can even make your own themes using existing ones as templates.


    This page titled 7.1: Pharo Environment Overview is shared under a CC BY-SA 3.0 license and was authored, remixed, and/or curated by via source content that was edited to the style and standards of the LibreTexts platform; a detailed edit history is available upon request.