A lot of people seem to be really into Bob Ross lately, probably due to The Joy of Painting recently being available on Netflix, and all the memes that he spawned before that. While popular in the 80s, this TV show was mostly unknown throughout the late 90s and 2000s, until the Internet made it re-enter mainstream.
(if you’ve never seen it, I highly recommend giving it a peep: https://www.youtube.com/watch?v=UQ-RTZCOQn0)
Witness the Google trends:
And the litany of articles about Bob Ross that have cropped up lately:
There’s even a Bob Ross board game!
It’s hard to hate the zeitgeist in this case - the TV show is plain delightful, each episode being 30 minutes of pure zen bliss, with only the soothing voice of Bob Ross and the sound of brushes against a canvas, with a peaceful image slowly emerging. The viewer is free to follow along, or just watch - but most anyone watching it gets the feeling that they, too, can paint well with minimal time and money investment.
Some have tried to apply this to programming - see for example:
- A YouTube series “The Joy of Programming”
- This parodic Twitter account
- Nicky Case’s just released Joy.js
Others have tapped into shows similar in tone to The Joy of Painting, for instance Daniel Shiffman’s Reading Rainbow inspired Coding Rainbow:
Now, I’m a huge fan of both The Joy of Painting and programming. But I am a bit perplexed by these somewhat forced parallels. Reading Rainbow and The Joy of Painting are amazing TV shows, because they really encourage any child or adult to just start reading, or messing with paintbrushes. This is a wonderful mindset, and it’s laudable that programmers want to bring it to their craft.
But programming… programming is kind of terrible! You can’t just pick up your metaphorical brushes and start coding - you have to spend time setting up an environment, which might well break inexplicably at the next software update. Or the tutorial you’re following is using a previous version of the language, making all of the code outdated. At some point you’ll find yourself stuck because of some minor syntax error due to some stray comma or such that will take you hours to find, if you don’t give up beforehand. For instance, see the aforementioned Joy of Programming video - where the author spends most of the hour murking around in Xcode, a tool with an incomprehensible interface for most. We’re very far from the immediacy of Bob Ross’ painting.
And even if you manage to write some cool code, you can’t just share it with your friends like you would a painting - it might only run on the type of device for which you wrote it, or you might have to deploy it to a webserver which is its own mess, or you might have to worry about being able to run it 12 months later if the company providing your tooling goes out of business/drops support/etc, and so on and so forth. It really is a mess. Now of course some companies offer products to try to make it all super simple and straightforward, but of course you are now bound to the whims and desires of that company. Not exactly the definition of a creative revolution.
Not to mention the fact that some paint and brushes can be purchased for very cheap, and free libraries are everywhere, while computers are still costly for many people in the world, and internet access is far from being ubiquitous.
All of this reminds me of a few friends a while back who had learned how to use Flash because they wanted to get into animation. They spent time and money on the software, books, training, how to use advanced features, etc. - and then Flash became a thing of the past, and the animations they put up on their websites couldn’t even be viewed by most people anymore. Now of course they could have learned a new software package, etc. - but they were amateur animators, not professional ones - and Flash dying was enough of a blow to discourage them from continuing.
I have a few ideas of my own on the topic, but I’d love to hear the thoughts of people here.
Can programming be taught as lightly as painting can, or will it always have a part of tediousness to it due to compilers, syntax errors, and the like?
Are these attempts to emulate Bob Ross in programming misguided, because programming fundamentally cannot be painting, or is there a path forward?
Can programming even be as immediate and accessible as painting or reading? Is it even a good question to ask if it can? After all, no one is trying to make a series of videos for complex technical topics such as “The Joy of Endocrinology” or “California Tax Code Rainbow”.
Is there a way forward to remove us from the messiness of programming that doesn’t involve a company doing everything automagically for you, but in the process making your knowledge completely worthless the moment the company drops the product/goes out of business?