Forgive my indulgence a moment whilst I apply 19th century philosophy to the art of making pixels change on a piece of a glass. In his essay, The Birth of Tragedy, Friedrich Nietzsche describes two opposing, artistic ideals. The Apollonian and Dionysian. Apollo, the namesake of the former ideal, is the Greek god of light, poetry, truth, wisdom, etc. In a word, we might consider this “clarity”. When we talk about beauty and form, in the context of software, we are mostly talking about an Apollonian ideal of systems architecture. Think of the greatest single-line, declarative reduce function you’ve written which made you sit back in your chair and ponder why you’re not working at NASA or some shit. This is Apollo giving you a pat on the back.
Dionysus however, is the closest thing to Tyrion’s (from Game of Thrones) “God of tits and wine”. Dionysis embodies chaos, animalism, and ecstasy (and wine actually). While “chaotic” and “animalistic” are probably not words you want to include on your résumé, I think it’s important to indulge in this kind of thinking once in a while. Dionysian programming is that feverish work you do at 3am high on something which produces things like the Fast Inverse Square Root. It’s the innovative, left-field keyboard smashing that barely works and would never pass code review but will allow you to ship your product/finish that game jam/finally make that Arduino beep. It’s the Dionysian impulse in us that makes us smash two rocks together to see how they work. It’s a very human approach to being creative.
Nietzsche argued that one of the reasons for the fall of Greek civilization was that they had become too Apollonian. They had adopted an almost purist notion of Socratic discourse which ignored or derided the quintessentially animalistic nature of mankind’s desire to create and think, almost as if Apollonian thought is a fragile facade atop the more real Dionysian impulses.
The important thing here is to recognize that both ideals contribute meaningful things to the body of knowledge and that you should share your work. Your half-baked, caffeine induced codepen, dripping with Dionysian if/else statements is unlikely to be heralded as the future of modern code style but it might inspire or teach others and it might help you connect in a more human way with the creative and, undoubtedly, artistic endeavor that is software engineering. And besides, you can always refactor it later when you’re feeling more Apollonian.
Create your free account to unlock your custom reading experience.