Phenomenology of programming languages
Programming language is used for solving the problems so it
can be taken as a tool. Some of the phenomena of programming language as tool
from the investigations of Don Ihde are:
Ø Tools
are Ampliative and Reductive
To better understand the phenomenology of programming
languages, we may begin with a simpler tool. Ihde contrasts the experience of
using your hands to pick fruit with that of using a stick to knock the fruit
down. On the one hand, the stick is ampliative: it extends your reach to
otherwise inaccessible fruit. On the other hand, it is reductive: your
experience of the fruit is mediated by the stick, for you do not have the
direct experience of grasping the fruit and tugging it off the branch. You
cannot feel if the fruit is ripe before you pick it.
Picking a fruit with hand |
“Technological Utopians” tend to focus on the ampliative
aspect- the increased reach and power- and to ignore the reductive aspect,
whereas “technological dystopian” tend to focus on the reductive aspect- the
loss of direct, sensual experience - and to diminish the practical advantages
of the tool.
Ø Fascination
and fear is common to new tools
When first introduced, programming languages elicited the
two typical responses to a new technology: fascination and fear. Utopians tend
to become fascinated with the ampliative aspects of new tools, so they embrace
the new technology and are eager to use it and to promote it (even where its
use is inappropriate); they are also inclined to extrapolation: extending the
technology toward further amplification. Dystopian, in contrast, fear the
reductive aspects of the tool (so higher level language are fear for their
efficiency), or sometimes the ampliative aspects, which may seem dangerous.
Ideally, greater familiarity with a technology allows us to grow beyond these
reactions.
Fear of Technology |
Ø With
mastery, objectification become Embodiment
A tool replaces immediate (direct) experience with mediated
(indirect) experience. Yet, when a good tool is mastered, its mediation becomes
transparent. Consider again the stick. If it is a good tool (sufficiently
stiff, not too heavy, etc.) and if you know how to use it, then it functions as
an extension of your arm, allowing you both to feel the fruit and to act on it.
In this way the tool becomes partially embodied. On the other hand, if the
stick is unsuitable or you are unskilled in its use, then you experience it as
an object separate from your body; you relate to it rather than through it.
With mastery a good tool becomes transparent; it is not invisible, for we still
experience its ampliative and reductive aspects, but we are able to look
through it rather than at it.
As you acquire skill with the language, it becomes
transparent so that you can program the machine through the language and
concentrate on the project rather than the tool. With mastery, objectification
yields (partial) embodiment.
Ø Programming
Language influence focus and action
Tools influence the style of a project. E.g. writing
technologies: dip pen, an electric typewriter, and a word processor. In case of
dip pen it is slower than the speed of thought, with typewriter the speed is
closer to the speed of thought, and with word processor, text can be revised
and rearranged in small units, so there is greater tendency to salvage bits of
text.
In general, a tool influences focus and action. It
influences focus by making some aspects of the situation salient and by hiding
others. Like others, programming language influence the focus and actions of
programmers and therefore their programming style.
No comments:
Post a Comment