posted: September 2, 2017
tl;dr: A software developer’s life was different before the Internet, multitasking desktop systems, and multiple devices...
There is one oft-overlooked downside of skipping compilation: it eliminates a block of time that, years ago, was often used by software developers to sharpen their juggling skills. Juggling used to be quite common among developers. Today it has fallen off so much in popularity that The Practical Dev recently published an article entitled: “Why do programmers wear headphones? For the same reason that you can’t juggle.”.
Other factors have contributed to the demise of juggling among the coding set. Obviously many developers still use compiled languages, and hence still have some downtime in between writing and running their code. Instead of juggling, however, they can easily open another window on their desktop or laptop, or on another computer or mobile device, and browse the Internet, write documentation, check messages, etc.
In the 1980s and early 1990s the world was a different place. There was no mass-market Internet. Most software developers had a single desktop CPU, and when it was busying compiling code, the machine was otherwise useless. Even if it had a multitasking operating system, you wanted the compilation job to have 100% of the CPU and available memory. Developers used to construct elaborate justifications for their bosses to get their machines upgraded to the latest new box from Sun Microsystems, or microprocessor from Intel, so that their compile jobs would run faster.
Lacking other electronic diversions, some of us juggled while our compile jobs ran. I didn’t learn how to juggle on the job - I learned at a Club Med resort in Ixtapa, Mexico - but when I saw a few other developers juggling one day at work, I got out some juggling toys and joined them.
We’d juggle at our desks, sitting down or standing up. We’d juggle in the cubicle halls, sometime juggling in pairs to pass beanbags or balls back and forth (beanbags are probably the easiest items to juggle, as balls have a tendency to bounce out of one’s hands). At one job I became juggling buddies with a more advanced juggling coworker who taught me how to juggle clubs. We’d go outside on the grass to juggle clubs, passing the clubs between us on occasion. We got to the point where we could pass every right-hand tossed club to the other person, for a little while, which looks really professional.
Juggling puts one’s mind into a calm, yet focused, Zen-like state, which is beneficial for creative professionals such as software developers. This mindset is perhaps the hardest step for beginners to master, as I’ve seen on several occasions of teaching juggling. The actual body motions (hand and arm motions, really) are not that difficult, nor is the timing. However to put the motions all together, and to keep the bags or balls or clubs flowing, you cannot try to rationally think through every move in the forefront of your mind: events will go by too fast, you’ll fall behind, and you’ll panic. You have to let go, let the body take over the mind, and trust that the body automatically knows what to do. At the same time your mind is still fully aware that it is juggling; it is just thinking at a higher level, above the mere mechanical layer. It’s very similar to being in the “zone” that most developers are familiar with, when the code just naturally flows. Writers also speak of entering this state, as do other artists and creators.
Have we lost something with the demise of juggling among software developers? I think so.