Coding Freedom: The Ethics and Aesthetics of Hacking
highly unreadable code) that is creatively displayed during obfuscated code contests, which are usually held for Perl, C, and C++. 3
While DMH respects Perl for what it is most famous for—its cryptic nature and poetic elegance—he is drawn to Perl for pragmatic reasons. Its “implicit variables, the open object model, the terse expressions,” DMH says, allow him to hack on the “Big Ball of Mud”—that is, the world of thick, unmanageable problems and constraints. For DMH, Perl’s appeal lies in its extensive common stock of shared solutions and architectural flexibility, which he contrasts to Python, a language so “anal” it is unable to accomplish “great acts of magik.” By this he means what is known among Perl geeks as the Perl’s motto: “TIMTOWTDI” (There’s more than one way to do it).
Digital computers allow for the creation and use of
mini-machines
(aka software) written by programmers using any number of computer languages.Instead of having to build a piece of hardware for every type of desired function (like a calculator, music recorder, or word processor), the computer is a general-purpose machine that once animated by software programs, can potentially behave as all those functional objects. Espe captures the expansive technical capability of software when he defines coding as “the ability to conjure these giant structures, manipulate them at will, have them contain and be contained by one another.” This is computing in its dimension of unfettered freedom.
If at one level hackers adroitly exploit the expansive technical capabilities of the computer, they are also significantly limited by a powerful force field of constraint—the Big Ball of Mud that DMH refers to in his tract on Perl. Constraints are constant and of a nearly infinite variety, such as hardware specifications and failures, computer language syntax, “clueless” managers, inherited “crufty” or vague code, spam, incompatible file formats, “dumb” patent laws, misguided customers, technical specifications, and manager-dictated deadlines. Problems are so central to software that some have even portrayed “glitches” as the “manifestation of genuine software aesthetic” (Goriunova and Shulgin 2008, 111).
Programming thus entails an expansive form of exploration and production that unfolds into a labyrinthine landscape of intricate barriers and problems. Julian Dibbell (2006, 104; see also Ensmenger 2010, 3) depicts the nature of computing, quite poetically, as an “endlessly repeatable collusion of freedom and determinism—the warp and woof of fixed rules and free play, of running code and variable input.” Because of constraints and the complexity of coding, to hack up solutions effectively, as Michael Fischer (1999, 261) notes, requires “a constant need for translation, interfacing, sharing, and updating.”
As part of this practical capacity, the very nature of hacking—turning a system against itself—is the process of using existing code, comments, and technology for more than what their original authors intended. This is the paradox of constraint. Since many technical objects are simultaneously bound by certain limits yet exhibit potential excesses (Star and Griesemer 1998), during the course of their existence, they can be exploited and redirected toward new paths of functionality by acts of hacking. Hackers are thus attuned not simply to the workings of technology but also seek such an intimate understanding of technology’s capabilities and constraints that they are positioned to redirect it to some new, largely unforeseen plane. They collectively and individually derive pleasure in outwitting constraint. In essence, while hacking follows a craftlike practice, it is predicated on a stance of craftiness to move the craft forward. Hacking is where craft and craftiness converge.
Programming and similar technical activities require extremely rigorous logical skills, an unwavering sensitivity to detail (a single wrong character can render a program useless), and such an intimate command of a system that one can, if need be, exceed the conventional or intended constraints ofthe system. It requires, in the words of programmer Ellen Ullman (2003, 177), a “relentless formalism.” Given the accelerated pace of technological change, hackers also have to perpetually learn new technologies as old ones are phased out due to obsolescence, in order to remain competitive in a marketplace.
Out of
Weitere Kostenlose Bücher