Pharo

Join the Pharo Track
Pharo is a fun and immersive Smalltalk programming experience. Featuring a clean object-oriented language and a powerful user extendable environment, it focuses on simplicity and immediate feedback (think IDE and OS rolled into one). Its elegance and productivity give it wide reach into banking, education, web development and even robotics.
Join the Pharo Track
Track mentors

2 Mentors

Our mentors are friendly, experienced Pharo developers who will help teach you new techniques and tricks.
Track students

219 Students

Join hundreds of students who have enjoyed learning and improving their skills by taking this track.
Track exercises

42 Exercises

Hundreds of hours have gone into making these exercises fun, useful, and challenging to help you enjoy learning.

About Pharo

Class { "A simple SUnit test"
	#name : #HelloWorldTest,
	#superclass : #TestCase }

{ #category : #testing }
HelloWorldTest >> testSayHello [
	self
	    assert: HelloWorld sayHello
	    equals: 'Hello, World!'. ]

Welcome to Pharo, an environment and language that embraces creativity, exploration and fun.

It features a world that is:

  • Simple and Powerful: No constructors, type declarations, interfaces or primitive types. Yet it's a powerful and elegant language with a full syntax that fits on a postcard! The magic is objects and messages all the way down.

  • Live and Immersive: Immediate feedback at any moment of your development: Developing, testing, exploring, debugging. Even in live environments, you don't have to wait to compile and deploy!

  • Amazing for Debugging: The debugger is unlike anything you've seen before. While it lets you step through code, you can also restart execution at any point, create methods and classes on the fly, and even extend its abilities.

  • Rich in History but Forward Looking: Many concepts originated from Smalltalk like: MVC, JIT compilation, Live coding, TDD, Refactoring; however we are still looking ahead with moldable tools, GtSpotter, Agile Visualisation, and MetaLinks to name a few...

  • Active, Friendly, Helpful Community: Pharo is yours, made by an incredible community, with more than 100 contributors on the last revision and many more constantly contributing with frameworks, libraries and advice.

Still not convinced? Pharo has a rich and fascinating history, that has influenced most of today's languages and techniques in one form or another. Learning the source of these ideas is the road to being a good programmer in any language. But most of all, it's just incredibly fun! Why not join in?

Join the Pharo track

A tremendous learning opportunity to explore the depth of your own knowledge

Exercism is fantastic in learning new languages but that is not the extent of it. If you are a "more experienced" programmer you may have encountered impostor syndrome: the idea you don't really know what you think you know. Exercism lets you solve problems and put them in the space of open feedback which is a tremendous learning opportunity to explore the depth of your own knowledge. Even if you have been programming in a language for awhile it is worth checking into Exercism to see where you stand with current implementation practices.

Relaxed. Encouraging. Supportive.

Meet the Pharo Track mentors

Once you join the Pharo language track, you will receive support and feedback from our team of mentors. Here are the bios of a few of the mentors of this track.

Avatar of Damien Pollet

Damien Pollet https://github.com/cdlm

Contributor to Pharo, I love Ruby, LaTeX, and woodworking (and teach Java, because of reasons).
Avatar of Tim Mackinnon

Tim Mackinnon https://github.com/macta

I am the co-maintainer of Pharo-Exercism, and I'd love more people to appreciate the elegance and simplicity of Pharo Smalltalk
Fun. Challenging. Interesting

Community-sourced Pharo exercises

These are a few of the 42 exercises on the Pharo track. You can see all the exercises here.

Bowling
medium
conditionals
object oriented programming
algorithms
Tournament
medium
sorting
filtering
iteration
parsing
transforming
object oriented programming
Acronym
easy
strings
iteration
parsing
ETL
easy
maps
iteration
transforming
Two Fer
easy
strings
text formatting
refactoring
Pangram
easy
strings
filtering
Passionate. Knowledgeable. Creative.

Meet the Pharo Track maintainers

The Pharo Maintainers are the brains behind the Pharo Track. They spend their spare time creating interesting and challenging exercises that we can all learn from. We are incredibly grateful for their hard work. Here are the bios of a few of the maintainers of this track.

Avatar of Samuel Wilson

Samuel Wilson

A Ruby on Rails dev by day, a Rust and Smalltalk programmer by night. I have found Pharo Smalltalk a delight to use. I'm here to spread the good news.
Avatar of Tim Mackinnon

Tim Mackinnon

I'm the co-inventor of Mock Objects, Gold Cards, and many retrospective techniques, but still a developer at heart and using Pharo Smalltalk as a platform to explore further new exciting ideas.

Get started with the Pharo track. As with everything on Exercism, it's 100% free!

Join the Pharo Track