Freigeben über


Is there any argument against beautiful code?

Beauty is in the eyes of the beholder. That is right, that’s why is very important to note who is watching and what is being observed. An assessment about golf playing by Tiger Woods could be more acceptable than one by Albert Einstein no matter how good the latest was in his field of study.

Consumers of technology in general may not care about the internal design as long as the operational interface gives them kind of illusion of simplicity and effectiveness. Many –if not most– high-tech products are black boxes. In the case of consumers of software technology, the product is the in-memory runtime image of the loaded/JITed executable machine code —as proposed by Szyperski, Murer & Gruntz and others— whereas the executable code in persistent media is the specification for the assemblage of such a product. This assembly specification is consumed by the lowest level software factory in current Turing model computing machines: the loader (or CLR’s IHostAssemblyManager).

So, which is the role of, say, source text written in Microsoft Visual C# user interface (syntax)? Answer: the blueprint of a high-tech software product*; more specifically, its design specification.

Clearly, consumers of software may not care about the attributes of the design specification for the technology they consume. But, what about the producers of such technology? Those that care not just about one single run but the sustainable evolution of a family of multi-version complex technologies? Should they care about the relationship between the attributes of their design specifications? Should they care about that quality or combination of qualities which charms the intellectual or moral faculties, through inherent grace, or fitness to a desired end**?

I have observed that beautiful design —as implied above— adds value faster than it adds cost. So, I agree with what Joel Spolsky said in his post Hitting the High Notes.

As often is the case within corporate groups of humans, the answers to former questions are entirely personal and no matter how much coercion or illusion of control the management personnel think they apply to development teams, the net effect in the quality of software products remains in the hands of the writers of, say, source text written in Microsoft Visual C# user interface (syntax).

*Please note that the properties of software products only match very, very few properties of products made of atoms and calling them ‘products’ actually is misleading, as proposed by Armour and others.

**That is to say: beauty as defined by the Oxford English Dicctionary

Comments