There is no permanent place in the world for ugly mathematics- G.H. Hardy
When we say something is beautiful, we often believe that this is a subjective feeling. It’s just a feeling that comes, but we do recognise a beautiful object when we see one. As mostly is the case, things that we percive as beautiful are also considered same by nearly everyone else. Is it the case that our metrics are same?
What I think is that this thing called beauty is not only formally definable but is indispensable for any good design. There seems a strong correlation between beauty of a thing and it’s timelessness
We can identify traits that make a thing beautiful in some objects like theorems or computer programs. Maybe it is the case that these same traits characterize other domains.
A beautiful thing is often simple. It’s workings can be easily understod. A thing that is unduly complicated often doesen’t give any pleasant feeling. Note that it is often the case that there is a lot of hard work that goes into that design. But no signs of false starts, painful dissapointements, messy wrong approaches show up in the final product. The person seeing that thing thinks that he might come up with the same idea himself if he had thought about it in that particular way.
A beautiful thing is often surprising. Simple problems have obvious solutions. In a hard enough problem, we first try out the obvious ways first. If they do not work, we try approaches that progressivly become unconventional. Though there may not be a linear connection but as the problems get harder, it’s solution becomes more and more unconventional.
The surprise component of a design often gives a feeling to the person viewing it that it is just made by a man who thinks completely different than me. I can never think in that way. But most probably, the designer has run out of conventional approaches and has to try some unconventional one. These other methods of attack comes from experience in trying out conventional ones.
Solution to a Right Problem
The surprising solution has to solve a hard problem. Beautiful solutions solve the difficult problem. After all, if the problem is simple, it can be solved by conventional methods we learn in classes.
This requirement is necessary but not sufficient. A lot of problems are very hard but their solution does not have beauty. You must insist on right problems. Which one are right ones? Problems that have a general appeal and have a broad range of applicability like finding an algorithm that can cluster just anything ranging from computer clusters, astronomical objects to audio inputs.
Many times problems of broad appeal comes from ones that do not. For example the earlier attempts of finding a general characteristic of heat engines, although a problem of huge practical utility, later became the groundwork of more fundamental concepts of energy and entropy that constitutes the science of thermodynamics. It maybe caused by hind sight or by some other more subtle causes. It may happen that staring a problem long enough just trains the unconsious mind to do it itself involuntary and then the conscious mind free to look it at different ways.
A beautiful idea is often wonderfully concise. A fabulous idea have as few premises as possible. All implications can be understood with the help of these components. Big, messy things often do not have this kind of beauty. A concise thing is such that one can expected to use all of the design regularly.
Necessity of Beauty
So, why are these things necessary traits of a design. I think it’s absolutely necessary for it’s timelessness. The essence of science is cumulative. We often build our own on top of others. If the thing is beautiful it is more likely to be used by others in current or future generation. And since the whole purpose of the design, at least in programming or math or physical sciences is to get used, it is not surprising that these traits are of paramount important.
One can see examples everywhere. Physical theories like special relativity and maxwell’s equations, systems like C, lisp and unix, mathematics like euclid’s geometry and descartes’ coordinate geometry. Any scientific theory or engineering design that we recognise as outstanding all have these traits.
One can see the role of beauty in a very pragmatic way. If one wants to work with a design of other, it should be simple enough to understand, it must solve a right problem, it must be concise so that it can all be put in head at once. The surprise trait gives design an attractive feeling that makes it more appealing to get used. The word “appealing” may sound frivolous but it’s not. The surprising traits are a direct consequence of solving a hard and right problem.
Getting these in design
So, should one consciously try to have these traits or they just come naturally in a design? I thing simplicity and conciseness can often can be cultivated from the start. In fact they are good heurisitics to start attacking the problem because if you force solution to be simple and force yourself to use as few components as possible, there is more chance that the final product would have beauty. C was deliberately designed to have a minimalist design. The whole language is explained in an unbelivably thin book. As said in the beginning by the authors (one of whom has actually designed the language), a programmer can reasonably expect to learn and use the entire language. An extreme opposite example of this philosophy is C++. Very few can use all of C++. And even if C++ is more widely used than C (for reasons not important here), most of us belive that C is more beautiful than C++.
The surprise element comes up with solving hard and problems viewed in aright way. The surprise traits of special relativity came to einstein only after a decade thinking of a seemingly mundane problem of motion of bodies through ether (which he proved as unnecessary in final theory).