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.

Published by smalltalkrenaissance

A non-profit advocacy organization whose mission is to promote and popularize Smalltalk.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Create your website with WordPress.com
Get started
%d bloggers like this: