One of Jon Blow’s original goals for Jai was to embrace (or perhaps restore) the “joy of programming”. I thought that while we’re waiting for Jai to come out, we could look at this idea and see what it might suggest about future languages.
“Joy of programming” is a pretty nebulous concept, but I interpret it as a desire for an overall reduction in friction and hassle. Not only do friction and hassle eat precious hours you could spend being productive, but they also drain your morale. There’s nothing worse than sitting down at your computer and realizing you’ve got a full day of soul-sucking busywork in front of you. Sure, lots of programming jobs feature this sort of vexation. The thing is, those jobs tend to pay a lot better. If you’re working in games programming then you’re probably making some sort of financial sacrifice in the name of having a “fun” job. If the job isn’t fun, you might as well ditch games and go make productivity software for more money in a city with a lower cost of living.
Things That Are Not Programming

Just about every job has some sort of support tasks associated with it. You need to clean the kitchen and wash dishes in order to cook foodI guess you could hire someone else to do it, but it still needs to be done., but doing dishes is not cooking. Dishwashing might be part of your job as a cook, but it’s not the point of the job. You don’t cook food because you want to wash dishes, you wash dishes because you want to cook food.
Cleaning your brushes is not painting. Stringing and tuning your guitar is not playing music. Checking spelling and formatting text is not writing a novel. Updating WordPress and sorting out CSS problems is not writing a blog. Putting gas in your car is not delivering pizzas. Those ancillary tasks need to be done and a few people might even enjoy doing them, but they don’t pay the bills. They just enable you to do the thing that does pay the bills. If you can reduce how much of your time is spent on these ancillary tasks, it will be a net win.
I’ll admit that sometimes the line can get really blurry. An artist working on commission might have the following workflow:
Continue reading 〉〉 “Programming Vexations Part 5: The Vexations Begin”
T w e n t y S i d e d


