Code as art
In the same way as making a pot at a pottery studio, creating software by writing code is very satisfying.1
Writing code involves aesthetic taste. After satisfying the basic requirements of what you are creating, such as a satisfying piece of music or functional code, there are still an endless number of possibilities.2.
Who knows why Benjamin Britain chose the first note of the 'Skylark ascending'? Britain likely chose it just because he liked it.
In the same way, a programmer often must choose to write code in a particular way just because he likes to do it that way. These choices are necessary because of the vast revolving mass of possibilities.
There are so many options, you can't assess them all, so you must just pick some.optimal-stopping-theory. These choices follow personal preference and determine what make the music, or code, beautiful.
- For people who don't write code, there is often a huge difference in the quality of code that different people produce. Just like two people can draw a horse, but the horse drawn by Turner will be better than the horse drawn by a non-professional.↩
- Even excluding the code itself, there are so many programming languages of which any could be used to create the software. Each language, like each instrument, may be better at certain things than others. For example, python imposes looser requirements on programmers to specify their input and output types. This is great because it allows you to write faster, quickly sketching an idea in code before later refining it. Whereas typescript (a different programming language) is great because it imposes tighter requirements on programmers to specify their input and output types, meaning that you can write faster, knowing that the language will detect mistakes in the code that you have written faster. Which is better is a matter of personal preference.↩
- Optimal stopping theory is a branch of mathematics that studies how to make decisions when you have to choose between a large number of options. It applies to dating, choosing a job, and choosing a programming language. See picking a secretary: https://en.wikipedia.org/wiki/Secretary_problem↩