Code: An Artistic Craft
It is quite fitting to talk about code as a craft. As many others do, our field, Software Engineering, is not quite the same as the others. This is due to its abstractness, for we, after all, write language. Okay, maybe not human language; we write machine language. Either way, these are languages in that they arrange our understanding of the world in their lexical rules, semantics, and structures. Maybe a difference between these two kinds of languages is precision and utility. In one way, human language may be ambiguous, and serve no purpose other than a means to itself; language for language sake, like poetry or irony. On the other hand, machine language is more utilitarian; it must be as precise as possible. However, this last property has become a little fuzzy over time because, after all, humans still get to read and understand the code, so an act of appropriation is made in reading and meaning, or we just use a high-level programming language that, while more readable, might be more ambiguous.
However, as it is stated in this reading, code is also about its shape. Form follows function. I know I have talked about Ludwig Wittgenstein in other blogs, but this idea echoes one of his in that, logically speaking, truths must be shown instead to be told. That is, talking about truths is complex, and quite often leads to speaking nonsense. So, instead, a figure may say more than words can. In this, we see the great importance of the design process phase. Like in logic, we must first see what we want to say on a higher level, holistically, to make sense of it in its shape instead of a complicated textual description of our system.
As software engineers, we must not neglect this phase. Instead, we ought to first think about our system, in pictures and diagrams if necessary, even if this means less time with our keyboards, and the gratification (or hell, if we are careless in errors) of coding is delayed.
Goodlife, P. (n.d.) Chapter 14. Software
Architecture: Laying the Foundations of Software Design. In Pete Goodlife, Code
Craft: The Practice of Writing Excellent Code (pp. 261-277). San
Francisco, California: No Starch Press. Retrieved from: http://arielortiz.info/s202113/tc3049/code_craft_chapter14.pdf
Comments
Post a Comment