Ryerson University Joins Pharo Consortium As Academic Partner

I am pleased to announce that Ryerson University joins the Pharo Consortium as an Academic Partner. The Consortium will strengthen Pharo’s applicability for mission-critical software development.

Ryerson does leading research in Pharo development under the auspices of Prof. Dave Mason, Chair of Computer Science. Here is one of the areas of research: PharoJS.

Ryerson just came off a major Pharo programming competition conducted in Canada. The outstanding results can be see here: JRMPC 2020 Awards Ceremony.

Pharo is a modern, open source derivative of Smalltalk that was created in 2008. It is highly innovative and forward-looking. Pharo is totally web-ready for both front-end and back-end development. Pharo is also well-suited for data science and machine learning, as well as Internet of Things applications. Pharo is used in other areas, too, such as robotics, virtual reality, enterprise business applications, and so on. The language is endlessly versatile.

Pharo is ideal for teaching object-oriented programming to beginners and college freshmen. It’s absolutely wonderful for hobbyists, too.

JRMPC 2020 Awards Ceremony

JRMPC, or The James Robertson Memorial Programming Competition, is a national contest open to Canadian high school students. It was completed on March 6, 2020 and the awards ceremony was scheduled for April 18.

Here is the awards ceremony video for JRMPC 2020:

I hope you enjoyed it. This video represents the culmination of eighteen months of hard work on the competition. It also nicely caps off a five-year advocacy campaign for the Smalltalk programming language.

Here are close-ups of the trophy awards…

First Prize:

Second Prize:

Third Prize:

Presentation Box:

For more details about the competition, read “JRMPC 2020 Award Winners.”

A note about the JRMPC operational website, teams.jrmpc.ca. It was created using the Teapot web framework and Pharo, a modern derivative of Smalltalk released in 2008. Teapot is a lightweight framework for those situations where the full industrial strength of Seaside is not required. Teapot and Seaside, as well as PharoJS (which transpiles to JavaScript), make Pharo totally web-ready for the twenty-first century.

I would like to thank the following people profusely for their contributions to JRMPC and this video:

  • Vance Kershner, CEO of LabWare, who fully funded this competition.
  • Leandro Caniglia, President of FAST (Fundación Argentina de Smalltalk), who invited me to speak at the Smalltalks 2018 conference in Salta, Argentina. Without him, JRMPC would never have been funded.
  • Ben Coman for developing the JRMPC Organiser software. In particular, I appreciate the spectacular competition map that Ben created for the final round of the competition. You can see it in the feature image above for this post.
  • Bob Nemec, Organizer of TSUG (Toronto Smalltalk User Group), for being my Master of Ceremonies.
  • Robert Eng for providing the beautiful graphic animations produced with Blender.
  • My wife, Ann Liu, for helping with the photography.
  • FXHOME for the HitFilm Express video editor that made my job much easier than I could’ve imagined.
  • Norman Branitsky for introducing me to Smalltalk over a dozen years ago. Without him, I would never have begun my Smalltalk journey.
  • Ron Teitelbaum, CEO of 3D ICC, for allowing me to use their website graphics.
  • Alan Kay, Kent Beck, and Norm Green, Senior VP of GemTalk Systems, for supporting the competition.

Smalltalk is a true marvel of the software engineering world. It is renowned for its simplicity, scalability, productivity, and versatility. Smalltalk has been used for practically everything, from teaching programming to young people all the way up to massively complex software systems that are highly scalable and maintainable. For this reason, Smalltalk is a favourite in the enterprise market.

It is my wish that the JRMPC competition will inspire you to try Smalltalk programming. Discover the wonders of one of the greatest programming languages in history.

What is your "spirit programming language"?

The definition of a “spirit animal”:

In certain spiritual traditions or cultures, spirit animal refers to a spirit which helps guide or protect a person on a journey and whose characteristics that person shares or embodies. It is also metaphor, often humorous, for someone or something a person relates to or admires.


Someone at Quora asked: How do you decide what is your “spirit programming language”?

I found this question intriguing. It speaks to the special nature of programming languages and how one may have a particular affinity to a specific language. I think many developers do have a spirit programming language, even if they don’t realize it.

Here was my answer…

There are several things you may consider:

  1. which language offers the most job opportunities — this is decidedly a very pragmatic consideration because we all have to eat
  2. which language appeals to you aesthetically and philosophically — this is, of course, very much a matter of individual taste
  3. which language is primarily used in your preferred application domain — assuming, of course, that you have a preferred application domain
  4. which language you find very easy to use and makes you most productive — this can only come from your personal experience
  5. which language is most versatile — it can do nearly everything with equal aplomb

So, based on these considerations, you might choose one of the following as your “spirit programming language”:

  1. Python or Java — at Indeed, they have the most job postings
  2. if you’re inclined toward functional programming, look at Elixir; if you’re inclined toward object-oriented programming, look at Pharo
  3. if your preferred domain is front-end web, JavaScript is really your only choice; if you prefer data science, Python is your best choice
  4. without doubt, Smalltalk (or Pharo) is the most productive language, by far, because it’s so ridiculously easy to use
  5. there are several enormously versatile languages to choose from: C++, Java, Python, Smalltalk (or Pharo)

Smalltalk (Pharo) became my “spirit programming language” because:

  • it’s really, really easy to learn and easy to use, much more so than, say, Python
  • it’s the most productive programming language in the world
  • its object-oriented purity, clarity, and consistency are beautiful to behold
  • its live coding capability is wonderful
  • its metaprogramming capability is wonderful
  • it’s amazingly versatile…

Use Pharo for back-end web with Seaside and Teapot frameworks.

Use Pharo for front-end web with Amber and PharoJS.

Use Pharo for data science with PolyMath, Roassal, and Moose.

Use Pharo for machine learning with TensorFlow and Keras.

Use Pharo for Internet of Things with PharoThings.

Use Pharo for robotics with PhaROS.

Use Pharo for virtual reality:

Use Pharo for scripting the Unreal game engine:

Here’s a fantastic Roassal demonstration:

Here’s a great demonstration of Pharo’s live coding:

Here’s a nice game for mobile that was written in VisualWorks Smalltalk: HexSolve.

50th Anniversary of Smalltalk

As He often does, God spoke to me very early this morning while I was in bed. Not in a dream but in a dream-like state…

For the past year, I’ve been struggling to find a way to celebrate the 50th anniversary of Smalltalk in 2022. I even published an article asking for suggestions but I got no feedback at all. Apparently, there is a worldwide lack of imagination, even among Smalltalkers.

Early this morning, the idea struck: for 2022, we should conduct a…

Camp Smalltalk Supreme

or CSS.

It would be a week-long affair held on the campus of Ryerson University.

It would consist of a series of Smalltalk workshops conducted by Ryerson, Simberon, and TSUG. (And whomever else we can rope in.)

It would consist of presentations by Smalltalk companies, researchers, and devotees.

We would invite Alan Kay, Dan Ingalls, and Adele Goldberg (call them the PARC Team) to give keynote speeches. We would invite the media to interview them.

The PARC Team would attend a Question and Answer session whereby the public could ask questions about Smalltalk’s history, philosophy, and social and technological impact.

We would hold a day-long hackathon with a $1,000 prize for the most outstanding Smalltalk creation. (Or maybe do something along the lines of Battlesnake.)

We would give away Smalltalk keychains to all attendees (up to 1,000).

In lieu of a free T-shirt giveaway, we would sell up to a thousand Smalltalk T-shirts at the ridiculously low price of $5 a pop.

We would hold a Smalltalk art auction with artwork donated by Smalltalkers around the globe. The proceeds would go toward COVID-19 relief.

Here’s the kind of artwork I would imagine:

We would hold a celebration banquet (at a Chinese restaurant?). 😀

Between Ryerson’s PR department and my exceptional video creation skills, we would have a fantastic online presence: a multimedia history of Smalltalk!

I would try to secure funding through:

  • corporate sponsorship
  • GoFundMe
  • the money I saved in JRMPC from not flying in the Alberta team and not holding the banquet
  • I’d even kick in a thousand dollars of my own money

Alas, this is all just a dream (or trance-like state in the wee hours of the morning). I rather doubt I can get anyone to buy in to my divine fantasy.

But such divine fantasies are the reason why there is even a JRMPC today.


Due to the COVID-19 crisis, the JRMPC awards ceremony has been postponed till a later date.

It was originally going to be held at Ryerson University, one of our chief sponsors, on April 18th.

In the worst case that the ceremony cannot be held by the start of summer, a virtual awards ceremony will be conducted. This ceremony will be recorded and a special YouTube video will be made for all of you to enjoy.

For more information about JRMPC, visit JRMPC 2020 Award Winners.

JRMPC 2020 Award Winners

I am most pleased to announce this year’s winners of The James Robertson Memorial Programming Competition. It was an exciting contest with several teams consistently finishing in a strong position over four rounds:

  • The Battle of Waterloo from Woodbridge College in Vaughan, Ontario
  • Bickle Blatwoon from Robert Thirsk High School in Calgary, Alberta
  • ‘Dief’ferent from John G. Diefenbaker High School in Calgary, Alberta
  • Quad Coders from St. Michaels University School in Victoria, BC
  • The Sticky Keys from Strathcona High School in Edmonton, Alberta
  • WCI1 from Waterloo Collegiate Institute in Waterloo, Ontario

Thus, they were the favourites to win. But as Duncan MacLeod from Highlander might say, “There can be only one.”

In Round 5, the prize-winning round, the titanic struggle can be seen in this video:

So, here are the winners:

First Prize of $6,000 goes to team ‘WCI1’ of Waterloo Collegiate Institute in Waterloo, Ontario.

  • Keenan Gugeler (Captain)
  • Alex Liao
  • Ethan White
  • Thomas Ingram

Second Prize of $4,000 goes to Team Dijkstra of Centennial Collegiate Vocational Institute in Guelph, Ontario.

  • Andrew Dong (Captain)
  • David Xiao
  • Alexander Liu
  • Brayden Chumbley

Third Prize of $3,000 goes to team ‘Bickle Blatwoon’ of Robert Thirsk High School in Calgary, Alberta.

  • Xinhua Cao (Captain)
  • Hunter Chen
  • Umut Emre
  • Ethan Kerr

Additional recognition: the Honour Roll

The following teams are recognized for their fine efforts. They are awarded $500 each.

  • The Battle of Waterloo from Woodbridge College in Vaughan, Ontario
  • Computationalism from St. Michaels University School in Victoria, BC
  • Quad Coders from St. Michaels University School in Victoria, BC
On completion of simulation

Congratulations all! These were outstanding performances.

I encourage everyone to learn Smalltalk programming. Smalltalk is a magnificent language, simple, concise, easy-to-learn, purely object-oriented, extremely versatile, most productive, and highly scalable and maintainable. Learn more at smalltalk.tech.blog.

Stay tuned for details about the awards ceremony.

Create your website at WordPress.com
Get started