Questions Asked about JRMPC

Happy New Year, everybody! Let’s start off the New Year with some commonly asked questions about the competition…

Why didn’t I hear about the competition? I would’ve registered.

Well, there’s only so much I could do to advertise the competition. I sent emails and flyers to hundreds of schools across Canada. Obviously, I couldn’t reach ALL the schools — there were just too many.

I advertised the competition on social media like Twitter, Facebook, LinkedIn, and Quora. I used hashtags like #friends, #highschool, #school, #college, #university, #scholarship, #coding, #programming. I started in January of 2019, so there were nine months of opportunity for word of mouth to spread. I was counting on this as my primary method of advertising.

I posted an ad for the competition on (it wasn’t cheap!). The click-through rate, however, was exceedingly low.

I’ve been blogging about programming languages for years. Anyone who followed my blog would’ve learned about the competition.

Unfortunately, that’s the nature of advertising. You can’t reach everyone. I tried my best.

Why are there so few schools from Toronto participating? Isn’t Toronto the most populous area in Canada and doesn’t it have the most schools?

I think it’s due to the low turnout for the competition. The numbers of teams from all the municipalities are in the single digits, so we cannot draw any meaningful comparisons. Toronto could just be a fluke.

There may be another reason that I’m not aware of. Maybe Toronto students are too haughty to learn a less-than-popular programming language. Maybe Toronto schools overwork their students.

Why are Saskatchewan, Manitoba, Quebec, and the Maritime provinces no-shows in the competition?

I think the populations of the provinces speak for themselves. The Maritime provinces collectively represent about 7% of the population of Canada.

Saskatchewan and Manitoba each have about 3% and 4%, respectively. Ontario, Quebec, British Columbia, and Alberta have 38%, 23%, 13%, and 12%, respectively. We expect the most populous provinces to field the most teams.

As the number of teams from each province is quite small (BC: 5, AB: 8, ON: 17), getting zero from the smaller provinces is not surprising — it’s within the margin of error.

Quebec is definitely an anomaly. This is likely due to the fact that JRMPC isn’t bilingual.

Why was the turnout so low?

My hypothesis is that it’s some combination of the following:

  1. many schools didn’t hear about the competition — social media, word of mouth, and emails/flyers failed to get through to them
  2. the competition wasn’t approved by their school boards
  3. the number of students who know how to program is quite small, perhaps one in a hundred — a typical school with a thousand students may have only ten candidates
  4. of these, some may be too busy or overscheduled with other activities
  5. some may lack confidence to participate in the competition
  6. some may be unable to form a team
  7. some may be unable to get sign-off from the principal or teacher
  8. some may feel it’s not worth the effort to learn a relatively obscure language

Under the circumstances, arriving at a roster of 30 teams is pretty respectable.

It is curious, though, why people (students, parents, teachers) wouldn’t be interested in pursuing the richest purse for a school competition in Canadian history.

Why are you pushing a language for which there are so few jobs?

Pedagogically, Smalltalk is the ideal teaching language for students. It was created by Alan Kay, Dan Ingalls, and Adele Goldberg at Xerox PARC in the 1970s specifically for teaching programming to young people.

Smalltalk is supremely simple and easy to learn, much more so than even Python!

Smalltalk is the perfect language for learning object-oriented programming, the most widely used paradigm in the world.

Smalltalk provides a solid foundation for future learning. It will make you a better C++ developer. It will make you a better Java developer. It will make you a better overall developer.

There’s no need to be concerned about jobs as a student. You will be learning additional programming languages in the future. Every additional language gets easier and quicker to learn.

Another reason to consider Smalltalk is the fact that it’s super-productive. You can develop software much faster with Smalltalk than with any other language! Up to 5X faster than with languages like Python, JavaScript, Java, C#, C++. (See Smalltalk’s Proven Productivity.)

Follow-up question: What can I do with Smalltalk once I learn it?

Smalltalk is enormously versatile. You can use it for nearly anything!

Do back-end web development with frameworks like Seaside and Teapot.

Do front-end web development with transpiled languages like Amber and PharoJS.

Do cross-platform mobile development with Amber or PharoJS in conjunction with Cordova/PhoneGap library.

Do data science and machine learning with tools like PolyMath library, Roassal, Moose, and TensorFlow.

Do IoT programming with PharoThings library.

Do robotics programming with PhaROS.

Do virtual reality development.

Do game development — for example, here’s a mobile game: HexSolve.

You can even script the Unreal game engine!

You are only limited by your imagination. So even if you don’t find a job for Smalltalk, you can still have loads of fun!

And who knows? With your support and enthusiasm, we may have more Smalltalk jobs in the future!

Can I see a lesson plan for teaching Smalltalk in the classroom?

I hope to get help from some teachers to develop a lesson plan. Stay tuned after the competition is over.