The non-communicability of code beauty
August 31, 2007
As a software developer, one spends most of one's time thinking and writing code.
This process is recognized by many as closely related to the work of artists. It follows similar patterns: one needs a vision and tries to express it as code; Code changes and evolves through the pressure of new ideas and growing understanding. In the end code grows into a thing of beauty, something the developer sees with pretty much the same feelings a sculptor sees her art or a poet her poems.
A developer facing code does not just see a bunch of text files and directories. He sees a complex and beautiful mechanic stretching through layers of abstractions and functionalities, with both ugly defects and shining zones of near perfection. He sees the ideas beyond the code that expresses them. He sees those ideas changing and maturing. He sees a whole world.
There is a problem though: this whole world he sees resides only within his head.
Common artists produce material things that anyone can later look at and admire. Most artistic creations are by nature reachable to others. Not everyone may be able to appreciate everyone else's art, but at least they are aware of the art being there and can acknowledge the effort of creation.
Like any artist, a developer crafting his code would appreciate sharing the beauty of his craft with others, but there is nothing material to show. And where there is nothing to show, there is no acknowledgment to expect.
Most people do not even realize that programs might be beautiful. At work, most of the persons a developer works with see the code from a completely different perspective: as a product, as part of a process, as a black box to use and test, or as the mysterious fulfillment of a set of specifications. But seldom do they see the code itself.
Fellow developers are more likely to get a glimpse of the code, but in practice it seldom happens. Not all developers appreciate code beauty, nor might they see beauty in the same way.
So as a developer, I spend most of my time thinking about the code I write, maturing it, perfecting it, then sitting in front of screens and writing it, filled with a growing sense of joy and sometimes pride when managing to produce
code I sense as beautiful. And I have no one else to share this achievement with than myself, or maybe indirectly the developer who will next maintain my code, and if I am lucky one or two fellow developers having enough free time to look at my code, understand it and appreciate it.
It is frustrating that so much of one's energy goes into something that won't even be acknowledged.
Once a friend asked me what I am doing at work. A rather usual question, but I find the standard answers ("developing software", "writing code") so empty. So I told him something like "I am building a starship, a piece of really advanced engineering, but no-one knows about it".
This process is recognized by many as closely related to the work of artists. It follows similar patterns: one needs a vision and tries to express it as code; Code changes and evolves through the pressure of new ideas and growing understanding. In the end code grows into a thing of beauty, something the developer sees with pretty much the same feelings a sculptor sees her art or a poet her poems.
A developer facing code does not just see a bunch of text files and directories. He sees a complex and beautiful mechanic stretching through layers of abstractions and functionalities, with both ugly defects and shining zones of near perfection. He sees the ideas beyond the code that expresses them. He sees those ideas changing and maturing. He sees a whole world.
There is a problem though: this whole world he sees resides only within his head.
Common artists produce material things that anyone can later look at and admire. Most artistic creations are by nature reachable to others. Not everyone may be able to appreciate everyone else's art, but at least they are aware of the art being there and can acknowledge the effort of creation.
Like any artist, a developer crafting his code would appreciate sharing the beauty of his craft with others, but there is nothing material to show. And where there is nothing to show, there is no acknowledgment to expect.
Most people do not even realize that programs might be beautiful. At work, most of the persons a developer works with see the code from a completely different perspective: as a product, as part of a process, as a black box to use and test, or as the mysterious fulfillment of a set of specifications. But seldom do they see the code itself.
Fellow developers are more likely to get a glimpse of the code, but in practice it seldom happens. Not all developers appreciate code beauty, nor might they see beauty in the same way.
So as a developer, I spend most of my time thinking about the code I write, maturing it, perfecting it, then sitting in front of screens and writing it, filled with a growing sense of joy and sometimes pride when managing to produce
code I sense as beautiful. And I have no one else to share this achievement with than myself, or maybe indirectly the developer who will next maintain my code, and if I am lucky one or two fellow developers having enough free time to look at my code, understand it and appreciate it.
It is frustrating that so much of one's energy goes into something that won't even be acknowledged.
Once a friend asked me what I am doing at work. A rather usual question, but I find the standard answers ("developing software", "writing code") so empty. So I told him something like "I am building a starship, a piece of really advanced engineering, but no-one knows about it".