Code is Poetry: Programming as an Aesthetic Endeavour

updated 10 months ago; latest suggestion 10 months ago

Introduction

We have often heard code compared to poetry or other artistic pursuits. Most of those comparisons are attempts to add legitimacy to what is still a fairly new profession. But what if looking at code as poetry could actually teach us to write and read code better?

I’ll treat code and poetry in this talk as an aesthetic pursuit and by highlighting parallels I will argue that knowledge of one (poetry) can inform our practice of the other (code). I will take a bottom-down approach by looking at examples and piecing things together to see how far we can take this analogy.

It is futile to argue about individual aesthetic preference, but people usually can collectively agree whether something is actually good or not. Similar judgements can be made about code using this lens.

Talk structure

I will talk about definitions and then build up an argument of parallels using the basic structures of both code and poetry. From there on I will draw conclusions about the craft of software development and see whether it is possible to codify these practices into our every day tools.

  • What is poetry?
    • Code and poetry both exist as mechanisms of compression and abstraction.
    • They both employ significant whitespace.
    • Both contain a mechanism of indirection that can expand indefinitely.
  • What is aesthetic theory?
  • What parallels are there between poetic structure and code?
    • Form, rhythm, meter
    • Semantic functions
    • Lots of examples
  • What conclusions can we draw from these analogues?
    • Is this way of looking at code productive?
    • Will it help us resolve disputes and holy wars?
    • Can we automate this way of reading and formatting code?
  • Will the craft of code suffer the same fate that poetry has?

Takeaways

  • Knowledge about poetry and aesthetics
  • A different way to think and talk about code formatting

About the speaker

I am an experienced public speaker with over a decade of experience as a programmer. I’ve spent the past year cleaning up a legacy Objective-C/Swift codebase and have seen almost every possible (and suboptimal) way of formatting code. This process has left me with opinions.

Suggestions

  • 8b2f2d3e6553c2b4048b93300959895ab76b4154?size=100x100 8b2f2d3e6553c2b4048b93300959895ab76b4154 suggests 10 months ago

    You format all your Swift code as limericks now, don't you? :)