INTERFACING

[번역] 소프트웨어, 혹은 시각적 지식의 지속에 대하여 (웬디 희경 전) 본문

번역/단막글

[번역] 소프트웨어, 혹은 시각적 지식의 지속에 대하여 (웬디 희경 전)

아마도 독자 2023. 5. 10. 23:16
-이는 MIT에서 발행하는 <그레이 룸 Grey Room> 2005년 겨울호에 실린 Wendy Hui Kyong ChunOn Software, or the Persistence of Visual Knowledge를 번역한 것이다. 주석은 PC를 통해서 봐야 오류 없이 볼 수 있다. 오역에 대한 지적은 언제나 환영합니다.
 
-[간단한 용어 설명]: 이 논문에는 프로그래밍 언어에 대한 굉장히 많은 용어들이 나오는데, 그것을 모두 설명하긴 어렵고, 가장 기본적인 수준에서만 말하고자 한다. 이 논문에서 언급되는 프로그래밍 언어는 크게 세 가지인데, 바로 기계어와 어셈블리어, 그리고 고급 언어이다. 기계어는 이진법으로 구성되고 CPU가 명령을 처리할 때 사용하는 언어이다. 01로 나열되기 때문에 형식을 파악하기 어려워 저급 언어로 분류된다. 어셈블리어는 기계어와 일대일로 대응되는 프로그래밍 언어인데, 고급 언어에 비해서는 역시 저급 언어로 분류되며, 어셈블리어로 작성된 프로그램은 어셈블러라는 번역 프로그램을 거쳐 기계어로 번역되어야 CPU가 사용할 수 있다.(결국 CPU가 읽을 수 있는 것은 기계어의 형식이기 때문이다.) 고급 언어는 좀 더 인간에게 친화적인 프로그래밍 언어로, 역시 컴파일러나 인터프리터라는 번역 프로그램을 거쳐 기계어로 번역되어야 한다.

-굵기체로 강조된 부분은, 본문에서 필자가 기울기로 강조를 표현한 부분을 그대로 따른 것이다. (원문에서 필자가 책 제목을 구분하기 위해 강조한 부분은 따로 굵기 표시를 하지 않았음을 알려드린다.)

 

보기엔 중요하지 않은 충분한 수의 데이터가 수십억 개의 데이터 요소를 배경으로 분석될 때, 비가시적인 것은 가시적인 것이 된다. -사이신트(Seisint)[각주:1]

 

 『커뮤니케이션의 황홀경 The Ecstasy of Communication에서, 장 보드리야르는 이렇게 주장한다. “우리는 더 이상 소외의 드라마에 참여하지 않고, 커뮤니케이션의 황홀경에 빠져 있다. 그리고 이 황홀경은 음란하다.” 왜냐하면, “정보의 노골적이고 가차 없는 빛 속에서모든 것은 비매개적으로 투명하고, 가시적이고, 노출되기[각주:2] 때문이다. 극단적일지라도, 보드리야르가 정보(그리고 따라서 연산까지)를 투명성과 결합시킨 것은, 국가적 데이터베이스에 대한 두려움과 데이터베이스 뒤의 프로파간다부터 감시 사회에 대한 진단까지 대중적이고 학문적인 원() 속에서 널리 울려 퍼지고 있다. 이런 결합은 놀랍게도 연산(computation)의 실제 작동과 불화한다. 컴퓨터가 투명성 기계가 되기 위해서는, 컴퓨터가 연산한다는 사실, 즉 컴퓨터가 그저 다른 곳에 존재하는 것을 재현하거나 재생산하는 것이 아니라 텍스트와 이미지를 생성(generate)한다는 사실이 망각되어야만 한다. 유리관에 부착되어 있을 때조차도, (만약 한 쪽 편이라는 게 존재한다면) 컴퓨터는 단순히 한 쪽이 다른 반대편에 있는 것을 볼 수 있게 해주는 것이 아니라 오히려 지시물(referent)을 재창조하는 데 필요한 광 펄스를 송·수신하기 위해 유리를 사용한다. 제품 디자인과 정치적 및 학문적 담론에서 통용되는 투명성의 두드러짐은 보상적 제스처다. 우리의 기계가 점점 더 우리 없이 읽고 쓰게 되면서, 우리의 기계들이 점점 더 판독불가능하게 되어 더 이상 보는 것이 아는 것임을 보장할 수 없게 되면서 (이전까지는 이것이 보장되었다고 치면), 우리, 즉 소위 말하는 사용자(users)는 더 많은 볼 것과 더 많은 읽을거리를 제공받는다. 컴퓨터가장 비시각적이고 비투명적인 장치시각 문화투명성을 역설적으로 촉진한다.

 소프트웨어혹은, 정확히는 하드웨어로부터의 소프트웨어의 기이한 분리는 이런 보상적 제스처를 추동한다. 소프트웨어는 지표성이 쇠퇴함에 따라 서서히 사라질 것으로 예상되었던 앎으로서의 봄, 독해와 가독성에 대한 특정한 관념을 영속시킨다. 소프트웨어는 이데올로기 이데올로기 비판을 모방함으로써, 실행가능한 것을 실행(execution), 프로그램을 프로세스와, 명령을 행위와 결합시킴으로써 그렇게 영속화한다.[각주:3] 젠더화된 지휘 통제 체계(system of command and control)에서 유래한 프로그래밍 언어를 통해, 소프트웨어는 소프트웨어의 프로그래머와 사용자들을 훈육하며, 가시성의 비가시적인 체계를 창조한다. 소프트웨어가 제공하는 지식은 그것이 드러내는 것만큼이나 모호하다. 따라서, 레브 마노비치가 뉴미디어의 언어에서 추천한 것처럼, 뉴미디어 연구가 소프트웨어에 관여할 필요가 있다면, 뉴미디어 연구는 단지 소프트웨어의 언어를 채택하는 것이 아니라 변환 부호화(transcoding)”의 한계들과 소프트웨어의 상식으로서의 새로운 지위를 비판적으로 탐구해야만 한다.[각주:4]

비물질적인 것을 물질화하기

 소프트웨어는 악명 높게 어려운 개념이(여야만 한). 소프트웨어에 대해 통용되는 상식적인 컴퓨터 과학적 정의는 컴퓨터가 특정 작업을 하도록 지시하는 명령어들(instructions)의 집합이다. 명령어들의 집합으로서, 소프트웨어의 물질적 상태는 불안정하다. 확실히, 당신이 소프트웨어를 더 분해할수록, 소프트웨어는 점점 사라져 간다. 역사가 폴 세루찌(Paul Ceruzzi)는 이를 하드웨어 코어 위에 소프트웨어의 여러 구별된 계층이 있는[각주:5] 양파에 비유한다. 하지만, 이런 양파 같은 구조는 그 자체가 프로그래밍의 효과다. 사람들은 다른 소프트웨어 프로그램을 사용함으로써 코드를 짠다. 소프트웨어와 하드웨어는 (마치 유전자와 DNA처럼) 물리적으로 분리될 수 없다. 컴퓨터 과학자 만프레드 브로이(Manfred Broy)는 소프트웨어를 거의 무형이고, 일반적으로는 비가시적이고, 복잡하고, 방대하고 파악하기 어려운 것으로 묘사한다. 브로이가 논의하길, 소프트웨어는 복잡하고 오류가 발생하기 쉬우며 시각화하기 어렵기때문에, 많은 소프트웨어의 선구자들시각화하고 이해하기 쉬운 소프트웨어, 즉 종종 함축적이고 무형인 소프트웨어 공학 작업을 명시적으로 만드는 모델 내의 소프트웨어 개발에서 마주하는 현상들을 재현하기 쉬운 소프트웨어[각주:6]를 만들려고 노력해 왔다. 프리드리히 키틀러가 더 강력하게 주장했듯이, “소프트웨어란 없다.” 왜냐하면 모든 것은 기표로서의 전압차(voltage differences)로 축소되기 때문이다.[각주:7]

 1940년대에 소프트웨어는 존재하지 않았다. 말 그대로 소프트웨어라는 건 없었다.[각주:8]프로그래밍은 연결을 만들어내고, 스위치를 설정하고, 값을 투입하는 인간의 작업(“직접 프로그래밍”)과 컴퓨터의 다양한 부분들을 조정하는 인간과 기계의 작업으로 구성되었다. 1946년에 에니악(ENIAC, 설계 및 구축되고 성공적으로 이용된 첫 범용 전자 디지털 컴퓨터)의 수석 프로그래머는 문제를 수치적으로 해결하기 위해 필요한 동작(action)의 배열을 통제했다.[각주:9] 에니악은 초창기에 각각의 문제를 위해 재배선되었기 때문에, 본질적으로 에니악은 사용될 때마다 새롭게 창조되었다. 1947(부분적으로는 존 폰 노이만 John von Neumann 덕택인) 에니악의 프로그램-내장형 컴퓨터로의 전환은 케이블을 꽂았다 빼는 것이 아니라, 저장된 60개의 명령어에 대응하는 스위치를 설정함으로써 프로그램이 코드화될 수 있다는 것을 의미했다. 단순 과학자들에게 프로그래밍의 길을 열어준 방식으로 여겨진 이런 변화는 연산에 필요한 시간은 증가시키면서 프로그래밍에 필요한 시간은 극적으로 감소시켰다. 오늘날 이런 변경 가능한 설정을 소프트웨어라고 부르는데, 왜냐하면 (예를 들어 값 X가 메모리 위치 Y에서 누산기accumulator로 이동하는 것을 가능케 했던) 이런 물리적 설정이 기호적인 프로그래밍 언어를 이용하여 컴퓨터 메모리로 읽힌 일련의 숫자들로 번역되었기 때문이다. 오늘날 에니악의 배선을 계획하고 에니악을 배선했던 사무직 운용자들(operators, 오퍼레이터들)”(캐슬린 맥널티 Kathleen McNulty, 프랜시스 빌러스 Frances Bilas, 베티 진 제닝스 Betty Jean Jennings, 엘리자베스 스나이더 Elizabeth Snyder, 루스 릭터먼 Ruth Lichterman, 그리고 마를린 웨스코프 Marlyn Wescoff)은 초기 프로그래머의 일부로서 자리를 되찾았다

 폴 세루찌와 볼프강 하겐(Wolfgang Hagen)이 논의했듯, 기호적 프로그래밍 언어와 소프트웨어는 예견된 것이 아니었다. 기호-언어 프로그래밍의 부상은 컴퓨터가 데이터만큼이나 숫자로 된 명령어들을 쉽게 저장할 수 있다는 깨달음 그리고 컴퓨터 자체가 기호적인 표기법과 수치적인 표기법 사이를 번역하는 데 사용될 수 있다는 깨달음에 의존했다. 케임브리지의 초기(1949) 컴퓨터 에드삭(EDSAC)의 프로그래머들은 인간이 좀 더 읽을 수 있는 어셈블리(assembly) 코드(예를 들어. “A100”위치 100의 내용을 더하기 레지스터에 추가해라라는 뜻을 가지고 있다)와 이후에 기계어(machine language)라 불리게 되는 것(좀 더 논리적인 코드) 간에 번역을 하기 위해 컴퓨터를 사용한 최초의 인물들이었다. 기억 장치(storage)가 프로그래밍 언어의 부상에 있어 중요했지만, 존 폰 노이만의 사례가 보여준 것처럼 기억 장치로는 충분치 않았다. 모든 현대적인 프로그램 내장형 컴퓨터의 기술어구가 된 이름을 가진 폰 노이만 또한 에드삭과 비슷한 표기법을 헤르만 골드스타인(Herman Goldstine)과 함께 고안했으나 사무직들이 번역을 하게 될 것이라 예상했다.[각주:10] 뿐만 아니라 어셈블리어는 고급 프로그래밍 언어가 아니다. , 컴퓨터는 자동적으로 미디어 기계인 것이 아니다. 하겐에 따르면, “수십 년 동안, 폰 노이만 기계의 원형-구조는 이 기계가 새로운 계산기 이상의 것, 정신적 노동을 위한 강력한 도구 이상의 것, 즉 새로운 커뮤니케이션 매체일 수도 있다는 것을 보여주지 못했다.” 하겐이 논의하길, 계산기에서 커뮤니케이션 매체로의 이동 자체는 필수적인 커뮤니케이션에서 기인했는데, 이 필수적인 커뮤니케이션은

냉전에서, 경제에서, 노동의 조직화에서, 아마도 기계가 가하는 원시적인 수적 유혹에서, 숫자 놀음에서, 자릿수, 자리표시자, 포르트/다 메커니즘을 동반한 게임에서, 그리고 이 모든 원천들의 내부적 구조에 대한 전체적인 유사-언어학적 대용품에서 발전했다.[각주:11]

자동 프로그래밍

 우리가 오늘날 프로그래밍이라 부르는 자동 프로그래밍은 코드를 재사용하고 컴퓨터를 그것의 고유한 작동에 충원하려는 욕망에서 생겨났다. 이 고유한 작동이라는 것은 즉, 단일 명령어들을 컴퓨터가 작성할 수 있는 언어로 변환하는 것이었다. 초기 유니박(UNIVAC) 프로그래머였던 밀드레드 코스(Mildred Koss)가 설명하길,

 기계어 코드(machine code)의 작성은 몇몇 지루한 단계들을 동반한다. 하나의 프로세스를 이산적인 명령어들로 분해하기, 모든 명령(command)에 특정 메모리 위치를 할당하기, 그리고 입출력 버퍼를 관리하기. 수학적 루틴, 서브루틴 라이브러리, 그리고 분류 프로그램을 구현하기 위해 이런 단계들을 따른 후에, 우리의 작업은 좀 더 큰 프로그래밍 과정을 들여다보는 것이었다. 우리는 테스트된 코드를 어떻게 재사용할 수 있으며 기계가 프로그래밍에 있어 어떻게 도움을 주게 할 수 있을 것인지를 이해할 필요가 있었다. 프로그래밍을 하면서, 우리는 프로세스를 탐구했고 이런 단계들을 고급 언어에 내장하기 위해 그것들을 추상화하는 방법을 생각하려고 노력했다. 이는 인터프리터, 어셈블러, 컴파일러, 그리고 제너레이터―다른 프로그램들에서 작동하고 다른 프로그램들을 생산하도록 설계된 프로그램, 즉 자동 프로그래밍의 개발로 이어졌다.[각주:12]

 

 자동 프로그래밍은 컴퓨터가 가능케 한 인간이 읽을 수 있는 코드의 생산의 길을 터준 하나의 추상이다. 이는 소프트웨어의 상품화와 구체화 그리고 고급 프로그래밍 언어의 부상에 있어 중요한 것이었다. 프로그래밍특히, 프로그래밍 언어의 자동화는 프로그래밍을 수치적으로 정향되게 만들기 보다는 문제로 만든다. 어셈블리어와 다르게, 고급 프로그래밍 언어는 사람들의 명령어들을 분할 배열(explode)하고 사람들이 기계를 잊을 수 있도록 해준다. 고급 프로그래밍 언어는 사람들이 하나의 프로그램을 하나의 기계 이상에서 구동할 수 있도록 해준다이 특성이 현재 소프트웨어의 자연스러운특성이라고 가정되는 것이다. 직접 프로그래밍은 케이블들의 독특한 배열(configuration)로 이어졌고, 초기의 기계어는 반복 가능했지만 오직 동일한 기계에서만 그러했다. 물론, 공학적 결함이나 실패가 없다고 가정한다면 말이다. 언어 혹은 텍스트로 부상하기 위해서, 소프트웨어와 소프트웨어가 의존하는 언어는 반복 가능해야만 했다. 프로그래밍 언어와 함께, 프로그래밍의 산물은 더 이상 구동되는 기계가 아니게 되었고, 오히려 소프트웨어라 불리는 사물이 되었다. 이는 누가 작성했든 혹은 어떤 기계를 목적으로 했든 간에, (실제로 아니더라도) 이론적으로는 반복될 수 있고, 반복 가능하고, 재사용 가능한 것이다. 프로그래밍 언어는 소위 작성에 있어서 프로그래머와 기계 모두의 부재를 기입한다.[각주:13] 프로그래밍 언어는 기계로부터 명령어를, 행위로부터 명령형을 분리하는 것을 가능케 했다.

 일반적인 통념에 따르면, 프로그래밍을 자동화하려는 이런 첫 시도는 비효율적이었으며 진정한프로그래머들에 의해 저항 받았다. 포트란(FORTRAN)의 개발자인 존 배커스(John Backus)는 초기 기계어 프로그래머들이 흑마술(black art)”에 종사하고 있었다고 주장한다. 이 프로그래머들은 개척자정신에서의 국수주의적 자부심과 이에 상응하는 보수주의를가지고 있었으며, “따라서 자유분방한 1950년대의 많은 프로그래머들이 자신들을 평범한 인간들에게는 너무나도 복잡한 기술(skill)과 미스터리를 지키는 사제단의 일원으로 생각했다.”[각주:14] 코스도 비슷하게 논하는데, “컴퓨터를 동반한 문제 해결을 민주화했던 이런 고급 언어와 프로세스 없이는..., 프로그래밍은 본질적으로 컴퓨팅의 대사제였을 소프트웨어 작성자들, 상대적으로 소수에 해당하며 기계어 코드를 사용하고 있는, 기술적으로 정향된 소프트웨어 작성자들의 수중에 남아있었을 거라고 나는 믿는다.”[각주:15]

 자동 프로그래밍에 대한 저항은 또한 기업과 학계의 고객들로부터 비롯된 것으로 보이는데, 이들에게 프로그래머의 시간당 인건비는 컴퓨터보다 훨씬 저렴했다. 초기 여성 프로그래머인 진 새밋(Jean Sammett)은 영향력 있는 프로그래밍 언어: 역사와 기초 Programming Languages: History and Fundamentals에서 이렇게 말한다.

 고객들은 많은 이의를 제기했는데, 그 중에서 가장 중요한 것은 컴파일러가 아마도 그들의 가장 뛰어난 프로그래머만큼이나 좋은 객체 코드를 만들어낼 수 없으리라는 것이었다. 그 당시에는 이런 시스템의 장점을 홍보하기 위한 대대적인 판매 캠페인이 진행 중이었는데, 그 선봉에는 IBM의 수치 과학 언어(즉, 포트란 FORTRAN)와 레밍턴 랜드Remington Rand(그리고 특히 그레이스 호퍼 박사Dr. Grace Hopper)의 “영어와 같은” 비즈니스 데이터 처리 언어가 있었다.[각주:16]

 

 이 판매 캠페인은 (인간이 생산한 프로그램을 가치절하 함으로써) 고급 언어를 홍보했을 뿐 아니라, 새로운 하드웨어도 홍보했다. 이런 프로그램들을 구동하기 위해서는, 더 강력한 기계들이 필요하다는 것이다. 코볼(COBOL)의 개발과 보급에서 가장 명백하게 보이는, 정부의 표준화에 대한 고집 또한 고급 언어의 수용에 큰 영향을 미쳤는데, 다시금 말하자면 고급 언어는 언제나 실질적으로는 아니더라도 이론적으로는 기계에 독립적이거나 반복 가능한 것이었다. 하드웨어의 업그레이드 주기는 프로그래밍 시간의 절약이라는 명목으로 규범화되었다.

 “판매 캠페인은 많은 사람들이 프로그래밍의 민주화라고 예고했던 것으로 이어졌다. 새밋의 관점에서, 이는 부분적인 혁명이었다.

 컴퓨터 설비가 실행되는 방식에 있어서 부분적인 혁명이 있었는데, 왜냐하면 공학자들, 과학자들, 그리고 여타 사람들이 전문 프로그래머의 중개 없이 자신의 문제를 실제로 프로그래밍하는 것이 가능해졌을 뿐만 아니라, 매우 현실적인 것이 되었기 때문이다. 따라서 오픈 숍(open shop) 대 클로즈드 숍의 갈등은 매우 뜨거운 것이 되었으며, 이는 양쪽의 주요 예시였던 포트란의 이용을 둘러싸고 벌어졌다. [역자 설명-여기서 오픈 숍은 ‘공개 컴퓨터 설비’라고도 부르며, 이는 “컴퓨터 프로그램 작성이나 컴퓨터 조작을 전속 전산 요원에게만 국한하지 않고 사용자들에게 공개하는 컴퓨터 설비”를 뜻한다. (출처: IT용어사전)] 이것은 해결해야 할 과학적인 수치 문제를 가진 모든 사람들이 포트란을 학습하기 위해 바로 자리를 잡았다고 말하는 것으로 해석되어서는 안 된다. 이는 분명히 참이 아니지만, 이들 중 많은 수가 이렇게 함에 따라서 전체 컴퓨터 산업에 엄청난 영향을 주었다. 포트란의 부수적인 작용 중 하나는 포트란 모니터 시스템 [IBM60]의 도입이었다. 모니터의 도입은 방대한 포트란(과 기계어) 프로그램의 구동에 있어 운용자의 개입을 덜 요구함으로써 컴퓨터 설비를 훨씬 더 효율적으로 만들었다.[각주:17]

 

 “오픈 소스오픈이라는 용어에 다른 공명을 부여하는 컴퓨팅의 오프닝(개방)”은 컴퓨팅이 해결해야 할 과학적 수치 문제들을 가진 사람들에게로 잠재적으로 확산된 것과 인간 운용자들이 운영 체제로 대체된 것을 의미했을 것이다. 하지만, 컴퓨팅이 항상 가치 있는 과학적 추구로 여겨지지도 않아 왔고, 위에서 언급했듯 와이어가 아닌 다이얼의 도입이 단순 과학자들에게 힘을 실어준다고 가정되었음에도 불구하고, 과학자들은 항상 컴퓨팅에 관여해 왔다. 컴퓨팅의 역사는 컴퓨터 해방(computer liberation)”의 순간들로 가득하다.[각주:18]

 고급 언어를 통한 컴퓨팅의 개방이라는 서사는 프로그래머가 지루하고 반복적인 수치적 작업과 고객을 위한 단일한 해결책의 개발을 당연하게 즐겼다고 가정한다. 컴퓨팅의 숙달(mastery)”고통 받는 과정으로 쉽게 이해될 수 있다. 초기 에니악 프로그래머였던 해리 리드(Harry Reed)가 논하길,

 에니악을 이용한 컴퓨팅의 전체적 아이디어는 일종의 고통을 견디는 것이었다. 컴퓨터를 위한 프로그래밍은 그것이 무엇이든 간에 하나의 구속적(救贖的, redemptive) 경험, 즉 그것을 하기 위해 고통을 겪어야 하는 것이었다. 그리고 1970년대가 되어서야 우리는 마침내 사람들에게 다음을 납득시킬 수 있었는데, 바로 사람들이 프로그래머로 하여금 자신들을 위한 소규모 프로그램을 계속해서 작성하게 하지 않아도 된다는 것이었다. 실제로 나는 내 부서를 이끌고 포트란 강좌를 듣지 않은 모든 사람을 자리에 앉혀야 했다. 왜냐하면, 맹세코 이들은 이제 직접 자신만의 프로그램을 작성하려고 했기 때문이다. 우리는 컴퓨터 전문가들이 작성했어야 할 간단한 소규모의 프로그램을 컴퓨터 전문가들이 작성하게 두지 않았다.[각주:19]

 

 프로그래밍의 민주화라는 서사는 프로그래밍과 통제 시스템의 핵심에 있는 긴장을 드러낸다. 프로그램은 통제 시스템 혹은 (노버트 위너가 지은 초기의 이름대로) 자동제어장치(servomechanism)인가? 프로그래밍은 사무직의 활동인가 혹은 숙달의 행동(act)인가? 기계가 적절한 프로그래밍실행 중에 있는 사건들의 연쇄를 처리한다는 점을 고려할 때, 프로그래밍은 프로그래밍이기만 한 것인가? “운용자에서 프로그래머로의 언어학적 이동에 있어 압축되는 것은 무엇인가? 프로그래머의 사제들이라는 관념은 이런 긴장을 지우며, 프로그래밍을 언제나 지키기 위해 애쓰는 후견인의 대상으로 만들며, 프로그래밍의 사무직과 같은 토대를 지운다. 1950년대의 프로그래밍은 재밌고 젠더적으로 공정하게 균형 잡힌 것으로 보이는데, 이는 부분적으로 프로그래밍이 너무 새로웠기 때문이고, 부분적으로는 프로그래밍이 하드웨어 설계나 판매만큼 수익성이 좋지 않았기 때문이기도 하다. 수익을 내지 못한다면 그 직업은 고용에 있어 젠더 중립적이었는데, 왜냐하면 그 직업은 아직 전문직이 아니었기 때문이다.[각주:20]에니악 여성들은 처음에 준()전문직으로 고용되었으며, 일부는 자신의 위치를 유지하기 위해 더 많은 자격을 취득해야 했다. 많은 여성 프로그래머들이 아이를 가지거나 결혼을 해 그만두게 됨에 따라서, 남성들이 점점 수익성이 높아진 이들의 자리를 차지하게 되었다. 프로그래밍의 사무직 같고 틀림없이 여성적인 토대인원과 지휘 구조 모두의 관점에서는 프로그래밍이 그 자체로 공학과 학문 분야가 되려고 시도함에 따라 묻혀버렸다. 이런 말소는 프로그래밍의 전문화기계를 은폐하는 것을 토대로 구축된 보상적 숙달에 핵심적인 것이다. 민주화는 전문적인 프로그래머를 대체했던 것이 아니라, 오히려 역설적으로 기계에 대한 프로그래머들의 실권을 감소시킴으로써 그리고 정보의 공학적 개념을 일반화함으로써 전문가로서의 프로그래머들의 지위를 뒷받침했다.

예스, !

 프로그래머들이 당연하게 지루한 작업들을 즐긴다는 가정은 프로그래밍과 컴퓨팅의 젠더화된, 그리고 인간적인 역사를 암시한다. 2차 대전 동안, 거의 모든 연산자(computer)는 수학 분야의 배경을 가진 젊은 여성이었다. 당시 여성들은 일을 할 수 있었을 뿐 아니라, 더 나은, 더 성실한 연산자로 여겨지기도 했는데, 이는 아마도 여성들이 반복적이고 사무적인 작업들에 있어 더 나았기 때문이었다. 프로그래머들은 (컴퓨터-역자 추가) 이전의 컴퓨터였는데, 왜냐하면 프로그래머들은 그들의 후임자를 준비시키는데 가장 적합했기 때문이다. 프로그래머들은 컴퓨터처럼 생각했다.

1940년대 후반, 에니악 프로그래머들. U.S. Military Photo, Redstone Arsenal Archives, Huntsville, Alabama.

 우리는 명령이 여성들에게 명령을 내리는 것에서 기계에게 명령을 내리는 것으로 옮겨 갔을 때 프로그래밍은 프로그래밍이 되었고, 소프트웨어는 소프트웨어가 되었다고 말할 수도 있을 것이다. 위의 이미지는 적절한 프로그래밍책상에 앉은 남자가 여성 운용자에게 지시를 하달하는 것의 꿈을 드러낸다. 소프트웨어 언어는 2차 대전 시기의 지휘 통제 구조에서 기인한 일련의 명령법에 기반을 두고 있다. 폴 에드워즈가 개인적 리더십, 탈중심화된 전장 지휘, 경험 기반의 지휘권[각주:21]이라는 군사적 전통의 도착(perversion)으로 취급했던 지휘 통제의 자동화는 틀림없이 2차 대전의 기계적 연산과 함께 시작되었다. 이것을 가장 극명하게 예시하는 것은 렌스(Wrens), 즉 해군여군부대의 자원자들과 블레츨리 파크(Bletchley Park)의 지휘관들 사이의 관계이다. 튜링에 의해 노예라고 불리기도 했던(이 용어는 지금 컴퓨터 시스템에 내재해 있다) 렌스는 암호해독 기계(봄브Bombe와 그 이후에 만들어진 콜로서스Colossus)의 기계적 작동을 책임지는 사무직이었다. 비록 적어도 그 중 한 명인 조앤 클라크(Joan Clarke)만이 해독가가 되었지만 말이다. 흥미롭게도, 남성 해독가인 I.J. 굿(I. J. Good)1970년대 후반이 되어서야 현대적 기계에 의해 복제된 인간-기계의 시너지 효과를 가능케 한 것으로써 콜로서스를 묘사한다는 것이다. “해독가는 타자기 출력부에 앉아 한 명의 렌에게 프로그램 내의 변화를 주라는 명령을 하달할 것입니다. 다른 용도 중 일부는 의사결정나무로 축소되었고 기계 운용자들(렌스)에게로 넘어갔습니다.”[각주:22] 이런 인간-기계 시너지효과 혹은 (일괄 처리가 아닌) 쌍방향의 실시간 처리는 렌스와 기계를 불가분하게 취급했고, 동시에 수학자의 명령(order)에 반응할 수 있는 렌스의 능력에 의존했다.

1976년, 그레이스 M. 호퍼. U.S. Navy Photo (number NH 96945), Naval Historical Center, Washington, D.C.

 그레이스 머레이 호퍼(Grace Murray Hopper, 최초의 그리고 가장 중요한 프로그래머들 중 한 명)와 하워드 에이킨(Howard Aiken)의 첫 만남에 대한 이야기 또한 이런 서사를 뒷받침한다. 예일대의 수학 박사이자 배서대(Vassar)의 전임 수학 교수였던 호퍼는 미 해군에 의해 마크(Mark I)을 프로그래밍하라는 임무에 파견되었는데, 마크은 뜨개질 바늘이 가득 찬 듯한 소리를 내는 전자 기계식 디지털 컴퓨터였다. 호퍼에 따르면, 에이킨은 그녀에게

세 개의 줄이 달린 큰 물체를 보여주었고 … 손을 흔들며 이렇게 말했다. “이게 연산 기계야” 나는 말했다. “예스, 썰” 달리 무엇을 말할 수 있었겠는가? 그는 내가 목요일까지 아크 탄젠트 급수의 계수를 연산하기를 원한다고 말했다. 다시, 내가 무엇을 말할 수 있었을까? “예스, 썰” 나는 도대체 무슨 일이 일어나고 있는지 몰랐지만, 여튼 이것이 하워드 해서웨이 에이킨과의 만남이었다.[각주:23]

1945년, 첫 컴퓨터 “버그”. U.S. Navy Photo (number NH 96566-KN), Naval Historical Center, Washington, D.C.

 연산은 짧은 평서문(declarative sentence)에 응답하는 예스, 그리고 본질에 있어 명령(command)인 명령문(imperatives)에 의존한다. 닐 스티븐슨(Neal Stephenson)과는 대조적으로, 태초에 명령 행(command line)이 아닌 명령이 있었다. 명령 행은 그저 운영 체제(OS, operating system) 시뮬레이션이다. 명령은 프로그래밍과 행위 사이의 미끄러짐(slippage)을 가능케 했으며, 이 미끄러짐은 소프트웨어를 강력하지만 논리적으로는 자명한커뮤니케이션 시스템으로 만든다. I.J. 굿과 호퍼의 회상은 또한 프로그래밍의 핵심에 있는 루틴화(routinization)를 보여준다. 블레츨리 파크의 해독가는 곧 의사결정나무에 의해 대체되었다. 프로그래머 호퍼는 자동 프로그래밍의 지지자가 되었다. 따라서 루틴화 혹은 자동화는 자신의 직업을 제외한 모든 직업을 성공적으로 자동화했다고 믿고 싶어 하는 직업의 핵심에 놓여 있다.[각주:24]

 하지만 여성과 기계적 연산을 호환 가능한 것으로 보는 것은 역사를 수정케 한다. 새디 플랜트(Sadie Plant)에 따르면, 프로그래밍은 근본적으로 여성적인 것이다. 이는 에이다 러브레이스(Ada Lovelace)부터 호퍼까지, 단순히 여성이 최초의 프로그래머들이었다는 이유 때문이 아니다. 오히려, 이는 프로그래밍과 프로이트가 철저하게 여성적인 직조(weaving)의 발명으로 불렀던 것 사이의, 모방으로서의 여성 섹슈얼리티와 범용 기계로서의 컴퓨터에 대한 튜링의 비전을 토대 짓는 모방 사이의 역사적이고 이론적인 연결고리 때문이다. (더해서, 소프트웨어와 여성 섹슈얼리티는 모두 보이지 않는 것이 가질 수 있는 힘을 드러낸다.)[각주:25] 플랜트가 논의하길, 여성들은

디지털 기계의 출현에 있어서 단지 사소한 역할을 맡은 것이 아니었다. … 그들의 역할은 후대를 위해 구제되어야 하는 부차적인 역할이 아니며, 포함되었을 때 기존의 기록을 바로잡을 수도 있는 사소한 보충물이 아니다. … 하드웨어, 소프트웨어, 웨트웨어―이것들의 시작 이전과 이것들의 끝 너머에서, 여성들은 디지털 기계의 시뮬레이터, 어셈블러, 그리고 프로그래머였다.[각주:26]

 

 페이지 33쪽의 사진은 적어도 그 당시에는 전형적인 것이 아니었다. (역자 설명-맨 처음에 나온 사진을 말한다.) 에니악의 여성 프로그래머들은 짝지어 함께 일했으며, 어떤 기계도 호퍼가 했던 것을 성취해낼 수 없었다. (그리고 다시 말하지만, 호퍼는 컴퓨터가 그렇게 성취해낼 수 있도록 하는 데 핵심적이었을 것이다. , 호퍼와 컴퓨터 간 거리의 종결이 자동적인 지휘 통제에 핵심적이었을 것이다.) 프로그래머가 맞닥뜨린 어려움은 간단했다. 컴퓨터는 컴퓨터가 아니었다. 여성에게 명령하는 것에서 자동장치에게 명령하는 것으로의 전환은 어려웠는데, 왜냐하면 자동장치(automaton)가 해석하거나 추정하기보다는 판독했으며, 자동장치가 경험으로부터 학습하지 못했기 때문이다. 마틴 캠벨-켈리(Martin Campbell-Kelly)와 윌리엄 어스프레이(William Aspray)가 말했듯, “소프트웨어 작성의 근본적 어려움은, 컴퓨터가 도래하기 전까지 인간은 이전에는 자동장치를 위한 상세한 명령어들을 준비할 필요가 없었다는 점이다. 자동장치, 이 기계는 그것에 주어진 명령들에 오차 없이 복종했으며, 이 기계를 위해 모든 가능한 결과는 프로그래머에 의해 예상되어야만 했다.”[각주:27] 캠벨-켈리와 어스프레이의 평가는 기계, 특히 초기의 기계에 대한 신뢰도를 과대평가한다. 초기 에니악 프로그래머들이 이야기하듯, 디버깅의 일부는 프로그래밍에 비롯된 오류 그리고 진공관 결함, 돌발적인 재배선, 혹은 기계 구조의 결함에서 비롯된 오류를 파악하는 것이었다. 이 작업은 계수기에 부착된 네온 전구에 의해 좀 더 쉬워졌다. [역자 설명-디버깅은 “컴퓨터 프로그램의 잘못을 찾아내고 고치는 작업”을 의미한다. (출처: 컴퓨터인터넷IT용어대사전.)]

1940년대 후반, 에니악 오른쪽에서 새 프로그램을 배선하고 있는 두 여성. U.S. Army Photo, Army Research Laboratory Technical Library, Aberdeen Proving Ground, Aberdeen, Maryland.

 기계와 다르게, 여성 프로그래머들은 단순히 지시사항들(instructions)을 따르지 않았다. 호퍼는 강한 개성을 가진 여성, 강력한 설득자이자 리더로서 묘사되었다. “그녀는 지휘 연설에서 해군 훈련의 일부를 보여주었다.”[각주:28] 또한 코스가 설명하듯이, 프로그래밍은 단순히 지시사항들을 구현하는 것이 아니라 오히려 문제 해결을 위해 수행되길 원하는 것을 컴퓨터가 할 수 있도록 전략을 고안하고 명령어들을 준비하는 것[각주:29]이었다. 여성 프로그래머들은 에니악을 프로그램 내장형 컴퓨터로 전환시키고 값의 저장과 명령어 간 균형을 결정하는 데 있어 중요한 역할을 했다. 호퍼가 자신이 알고 있는 최고의 프로그래머라고 묘사했던 베티 스나이더 홀버튼은 몽상 속에서 탄도 궤적 프로그램을 디버깅했을 뿐만 아니라(에니악에서 처음으로 구동된 프로그램이지만, 2차 대전에서 사용되기엔 너무 늦었다), 유니박(UNIVAC)의 영향력 있는 정렬 알고리즘도 개발했다.[각주:30]

1950년대, 첫 네 명. U.S. Army Photo (number 163-12-62).

 표준적인 컴퓨팅 역사에서 이런 여성들에 대한 억압의 정도는 컴퓨터 노동력에 대한 폴 에드워즈(Paul Edwards)의 암묵적이고 선험적인 젠더화를 통해 측정할 수 있는데, 남성성과 프로그래밍에 대한 그의 분석은 달랐더라면 통찰력 있었을 것이다. 그는 이렇게 쓴다.

컴퓨터 과학자들은 전후 시기 물리학자들의 컬트에 필적할 만한, 어려운 숙달이라는 신비함을 즐긴다. 컴퓨터는 그들에게 빈틈없는 정확함, 계산의 힘, 그리고 엄청난 양의 데이터를 종합할 수 있는 능력을 부여한다. … 컴퓨터 기술에 본질적으로 남성적인 것은 없다. 그렇지 않았다면, 여성은 컴퓨터 노동 인구에 합류하는 데 그렇게 빠른 성공을 거둘 수 없었을 것이다. 젠더 가치관은 대부분 기계 자체에서는 벗어나 남성과 여성 간의 권력 관계에 의해 표현되고 강제된다. 컴퓨터는 단순하게 남성성을 구현하고 있는 것이 아니라, 남성적인 정신적 사물로서 문화적으로 구축된다.[각주:31]

 

소프트웨어가 프랑켄슈타인의 딸(이고 하드웨어는 그 아들)이라는 J. 추안 추(J. Chuan Chu, 초기 에니악 하드웨어 엔지니어 중 한 명)의 주장과는 거리가 멀게, 에드워즈의 평가는 컴퓨터 기술을 소프트웨어로 축소시키면서 초기 컴퓨팅에서의 여성의 압도적인 현존인간 컴퓨터, 프로그래머, 모니터로서의 그들의 작업을 지운다. 인간 사무원과 인간 컴퓨터의 결합으로서의 모던 컴퓨터는 1940년대의 남성과 여성 간의 권력 관계를 압축한다. 모던 컴퓨터는 여성을, 즉 그들의 재빠른 손가락, 그들의 계수(計數) 능력, 그들의 재량권, 그들의 불안을 조성하는 응시를 쫓아내고자 했다. 바네바 부시(Vannevar Bush)는 이런 축출을 바람직한 것으로 여겼다.[각주:32] 인간에서 기계 컴퓨터로의 이행은 차등적인 권력 관계를 자동화했다.

 이런 여성들을 프로그래머단지 명령()를 따르기만 한 것이 아니라 그것을 구성하기도 했던로서 인정하는 것은 중요하지만 충분하지는 않은데, 왜냐하면 이는 프로그래밍의 서사를 장인과 같은(masterful)” 것으로 유지시키기 때문이다. 명령()를 따르고 구현한다는 것의 의미는 무엇인가? 아마도 지휘 통제의 자동화는 군사적 전통의 도착이라기보다는 군사적 전통의 예시화이다. 이 군사적 전통 내에서, 책임은 명령을 시행하는 사람들(지금은 기계다)에게 이양되어 왔다. 주인과 노예 간의 관계는 언제나 모호하다. 권력의 이러한 이양은 기계를 이해하기 힘들게 하고 (실행보다는) 프로그래밍을 행위의 원천으로 조명하는 프로그래밍 언어에 의해 은폐되어 왔다. (역자 설명-여기서 실행은 하드웨어적 의미의 실행을 말한다.) “프로그래밍하다(to program)”라는 동사의 목적어가 가지는 모호성에서 증명된, 프로그래밍과 실행 간의 구별이 종언을 고한 것은 구조화 프로그래밍(structured programming)”을 통한 프로그래머의 훈육과 전문화에 의해 가능해졌다.

기계를 은폐하기

 1960년대 후반 IBMOS/360과 같은 엄청난 실패에서 기인한 소프트웨어 위기가 자주 논의되는 동안, 많은 사람들(특히 프리드리히 [프리츠] 바우어Friedrich [Fritz] Bauer와 페테르 나우르Peter Naur 같은 유럽 프로그래머들)소프트웨어 공학혹은 구조화 프로그래밍을 다음과 같이 여겼다. 프로그래밍을 공예(craft)에서 표준화된 산업적 관행으로 이동시키고, 수치적인 프로세스보단 추상화(abstraction)를 다루는 훈육된 프로그래머들을 창조할 수 있는 방법으로서 말이다.[각주:33] 마이클 마호니(Michael Mahoney)가 논의했듯, 구조화 프로그래밍은 품질 관리와 프로그래머 훈육 양자의 수단, 원가 계산과 추정의 방법론, 검증과 확인의 방법론, 품질 보증의 테크닉[각주:34]으로서 등장했다.

 (일반적으로 우수한 프로그래밍으로도 알려져 있는) “구조화 프로그래밍은 기계를 은폐하며, 고로 기계를 단단히 걸어 잠근다(secure). 놀랍지 않게도, 실제 기계와 거의 혹은 전혀 접촉하지 않는 것은 수치적으로 생각하기보단 추상적으로 생각할 수 있는 능력을 강화시킨다. “고투(go to)”문에 대한 유명한 비난을 통해 구조적 프로그래밍의 많은 근본 교리들을 압축했던 에츠허르 다익스트라(Edsger Dijkstra)는 아직 존재하지 않는 기계를 위해 코딩함으로써 자신의 프로그래밍 경력을 시작했다는 바로 그 이유로 인해 자신이 구조화 프로그래밍을 개척할 수 있었다고 믿는다.[각주:35]고투문의 해로움 Go To Statement Considered Harmful”에서 다익스트라가 논하길, “프로그래머의 자질( quality)은 그들이 생산하는 프로그램 내의 고투문의 밀도와 감소함수(decreasing function)의 관계이다.” (역자 설명-즉, 프로그램 내의 고투문의 밀도가 높을수록 프로그래머의 자질은 떨어지는다는 이야기다) 이는 고투문이 좋은 프로그래밍의 근본적 교리, 정적 프로그램과 동적 프로세스 간의 개념적 격차를 줄이고, (텍스트 공간에서 뻗어 나가는) 프로그램과 (시간에서 뻗어 나가는) 프로세스 간의 대응을 가능한 한 사소하게 만들어야 할필요성에 반()하기 때문이다. 더 구체적으로, 만약 프로그램이 중단되면, 고투문은 중단된 프로세스와 대응하는 프로그래밍 내의 한 자리(place)를 찾기 어렵게 만든다. , 고투문은 프로세스의 진행 상황을 설명할 수 있는 의미 있는 좌표의 집합을 찾기 아주 힘들게[각주:36] 한다. , 고투문은 프로그래밍의 토대가 되는 명령어(instruction)와 명령(command)의 결합을 어렵게 만든다.[각주:37]

 구조화 프로그래밍 언어는 우수한 보안(security)을 제공함으로써 프로그래머를 프로그래밍 언어 자체로부터 구제해 준다.” 여기서 보안은 프로그래머로부터 잠금장치를 거는 것을 의미한다.[각주:38] 흐름의 문제로 프로그래밍을 강조하는 구조화 프로그래밍은 보안이라는 명목으로 그 자체로 데이터 추상화에 자리를 내준다. 데이터 추상화는 프로그래밍을 상호 연관된 객체들의 문제로 여기며, 기계보다 훨씬 더 많은 것들을 숨긴다. 데이터 추상화는 정보 은닉(information hiding), 즉 소프트웨어 내에서의 변화 가능한 사실들의 비반영(nonreflection)에 의존한다. 데이터 추상화의 선구자 존 V. 구탁(John V. Guttag)이 설명하길, 데이터 추상화에서는 망각이 핵심이다.[각주:39] 추정상 독립적인 모듈들 사이의 비가시적인 접촉선을 가능케 함으로써 프로그램을 오염시키기보다는, 데이터 추상화는 특이성을 제한하고 프로그래머의 지식과 권력을 축소시킴으로써 말끔하고 아름다운인터페이스를 제시한다. 구탁이 주장하길, 지식은 위험하다. “‘시의 샘물을 깊이 마셔라, 그렇지 않으면 차라리 맛보지 말라는 반드시 좋은 조언인 것은 아니다. 너무 많이 아는 것은 너무 적게 아는 것보다 더 낫지도 않으며, 종종 더 나쁘다. 사람들은 많은 정보를 소화해낼 수 없다. 사람들이 많은 것들을 이해할 것이라고 가정하는 프로그래밍 방법론이나 접근법 어떤 것이든 매우 리스크가 크다.”[각주:40]

 이렇게 추상화는 프로그래머에게 권한을 부여하면서도 그/녀의 무지를 강조한다. 추상화는 프로그래머의 마음 내에존재하기 때문에, 추상화는 프로그래머에게 새로운 창조적 능력을 준다. 컴퓨터 과학자 데이비드 에크(David Eck)가 논의하길, “모든 프로그래밍 언어는 가상의 기계(virtual machine)를 규정하는데, 프로그래밍 언어가 가상의 기계를 위한 기계어인 것이다. 프로그래밍 언어의 설계자는 실리콘과 구리로 작업하는 공학자만큼이나 확실히 컴퓨팅 기계를 창조하고 있다. 하지만 소재와 생산 기술에 의해 부과되는 한계 없이 그러하다.”[각주:41] 그러나, 이런 추상화기계의 특정성에서 벗어난 이런 스케치는 기계를 소프트웨어와 하드웨어로 분리하는 과정에서 프로그래밍의 작동(act)을 기계 자체에 넘겨준다. 코스는 뇌로서의 컴퓨터라는 초기의 관념을 비웃었는데, 왜냐하면 컴퓨터는 인간이 생각하는 방식대로 생각할 수 없었으며, 특정 문제에 대한 답을 컴퓨터가 제공하기 이전에 실행되어야 하는 일련의 단계별 기계 명령어가 컴퓨터에 주어져야 했기때문이다. 그 당시에 소프트웨어는 독립적인 객체로 간주되지 않았다.[각주:42] 소프트웨어의 명령어가 비물질적이고 비경합적이라는 사실에도 불구하고 현재의 소프트웨어의 지위, 즉 상품으로서의 지위는 소프트웨어 산업의 승리를 보여준다. 소프트웨어 산업은 처음에 재정적 측면에서 뿐만 아니라 개념적으로 자신의 제품을 정의하는 데 있어서도 고투했다. 소프트웨어의 부상은 IBM이 자사의 서비스를 자사의 제품으로부터 언번들링(unbundling)했던 것과 같은 역사적 움직임과 고급 언어에 의해 가능해진 추상화에 의존한다. [역자 설명-언번들링은 “소프트웨어와 하드웨어의 가격 분리”를 의미한다. (출처: 정보통신용어사전)] 이해하는 인간 존재가 가진 신뢰할 수 없음(unreliability)과 무능에 대한 구탁의 주장은 이런 추상화의 비용을 강조한다. 추상화는 가장 엄격한 의미에서 프로그래밍과 마찬가지로 컴퓨터의 게임이다.

 중요하게도, 프로그래머는 사용자. 프로그래머는 그 자체가 소프트웨어 프로그램인 에디터를 사용해서 프로그램을 창조한다. 프로그래머와 사용자 간의 구별은 점차 부식되고 있는데, 사용자가 프로그래머가 되어가고 있기 때문만이 아니라 (진정한 의미에서 프로그래머는 더 이상 컴퓨터를 프로그래밍하지 않으며, 코드를 짠다), 고급 언어를 가진 프로그래머들이 단순한 사용자와 같은 것이 되어가고 있기 때문이기도 하다. 사용자와 프로그래머 간의 차이는 소프트웨어의 효과이다.

인과적 쾌락

 프로그래머의 점진적 강등은 프로그래밍의 힘과 쾌락에 의해 상쇄되어 왔다. 에드워즈가 논의하길, “프로그래밍은 힘과 통제에 관한 강력한 감각을 생산할 수 있는데, 왜냐하면 컴퓨터는 외부적으로는 불완전하더라도 내부적으로는 일관된 미소세계(microworld)를 생산하기 때문이다. [역자 설명: 미소세계 혹은 마이크로 월드는 컴퓨터 내부에 존재하는 제한된 지식 환경을 의미한다. (출처: 컴퓨터인터넷IT용어대사전)]

총체적으로 기계 자체 내부에 있는 시뮬레이션된 세계는 도구적 유효성에 의존하지 않는다. 즉, 대부분의 도구가 자신이 영향을 미치는 더 넓은 세계의 일부인 곳에서, 컴퓨터는 미니어처에 자신만의 세계를 담고 있다. … 아이들의 역할놀이(make-believe) 속에서와 마찬가지로, 미소세계에서는 프로그래머의 힘이 절대적이다.[각주:43]

 

 이런 쾌락은 그 자체로 프로그래밍 언어의 효과인데, 프로그래밍 언어는 가시성, 판독성, 원인과 결과라는 유혹물(lure)을 제공해준다. C++로 작성된 아주 흔한 헬로 월드(hello world)” 프로그램을 생각해보자. (“헬로 월드(hello world)”는 보통 사람이 처음으로 작성하게 되는 프로그램이다)

 

 첫 번째 행은 주석 행(comment line)으로서, 인간 판독자에게 이 프로그램이 “hello world”를 뱉어 낸다는 것을 설명한다. 다음 행은 컴파일러의 전-처리기가 입출력을 담당하는 표준 파일인 iostream.h을 포함하도록 지시한다. 세 번째 행인 “int main ()”은 프로그램의 메인 함수를 시작한다. “cout<<“Hello World!”;”“Hello World”를 스크린에 출력한다(“cout”iostream.h 내에서 규정된다). “return 0”는 프로그램이 올바르게 구동되면 메인 함수를 종결짓고 프로그램이 0으로 돌아가게 만든다. C++에 익숙하지 않은 사람이 즉각적으로 이해할 수 있는 것은 아니지만, 그럼에도 불구하고 이 프로그램은 어느 정도 이해할 수 있는 것으로 보인다. 프로그램은 짐작건대 컴퓨터가 이해하고 복종할 수 있는 일련의 명령형(imperatives)과 선언형(declaratives)으로 구성된다. 프로그램이 구동될 때, 프로그램은 누군가의 명령에 따라 “Hello World”를 표시한다. 중요하게도, 프로그래머의 행위성을 긍정하는 이 메시지는 또한 프로그래머의 행위성을 의문에 부친다. 결국에, 누가 혹은 무엇이 “hello world”를 말하고 있는가? 이 절대적인 힘을 즐기기 위해서, 프로그래머는 반드시 프로그래밍 언어의 규칙을 따라야 한다. 어떻든지 간에, /녀의 코드가 가시적이고 매우 예측 가능한 결과를 만들어내는 것을 보는 행위는 쾌락을 창조한다.[각주:44] 누군가의 코드가 하나의 작동(action)이 발생하는 원인이 된다. 최종 결과가 결코 완전히 예측가능하지 않더라도, 원인과 결과는 명확하다. 프로그램의 행위성(agency)을 통해 가능해진 절대적 힘은 행위성의 모순된 지위, 즉 행위성이 누군가가 행위할 수 있는 능력과 누군가를 대신해 다른 사람이 행위할 수 있는 능력 양자를 지시한다는 사실을 드러낸다.

 하지만, 컴퓨터 시뮬레이션의 미소세계에서 힘이 강화되거나 힘이 절대적이게 되는 건 프로그래머만이 아니다. 왜냐하면 (투명한 것으로서의 컴퓨터 개념에 핵심적인) 상호작용(interactive) 시뮬레이션은 사용자의 힘을 강화하기 때문이다 (다시금 말하자면, 이 조건은 절대적인 것이 아니며, 오히려 사람들이 사용하고 있는 소프트웨어와 사람들의 행위가 가지는 생산적 힘에 의존한다). 에드워즈가 논의했듯, 인공지능과 긴밀히 연결된 상호작용성은 인간의 불완전성과 절차형(procedural) 프로그래밍 언어의 한계에 대한 인정에서 처음으로 기인한 것이다.[각주:45]남김없이 그리고 명확하게 묘사될 수 있는 어떤 것이든, 완전히 그리고 분명하게 단어들로 기술(記述)될 수 있는 어떤 것이든 간에, 묘사되고 표현될 수 있다는 그 이유로 인해 적절한 유한 신경망에 의해 실현가능하다는 폰 노이만의 주장 뒤에 있는 순진함은 1960년대까지 점점 명백해졌다.[각주:46] 불가능하진 않더라도, 철저하고 명확한 기술(記述)은 어려웠기 때문에, 문제 해결을 위해 컴퓨터와 상호적으로작업한다는 것은 중요했다. 상호작용성은 나중에 사용자의 자유와 결합하게 되었으며, 통제는 그래픽 사용자 인터페이스(GUI, graphical user interface) 및 위지윅(WYSIWYG, What You See Is What You Get) 인터페이스와 결합하게 되었다. 이 인터페이스들은 언어 기반 명령에 대한 보충물로 여겨졌다. 명령 행 인터페이스와 다르게, GUI직접 조작(direct manipulation)”을 가능케 하는데, 이 직접 조작에서 숙달은 시뮬레이션된 가시성과 긴밀히 연결되었다. 벤 슈나이더맨(Ben Schneiderman)에 따르면,

특정 상호작용 시스템은 사용자들 사이에 (마지못해 하는 수용이나 노골적인 적대감이라는 더 일반적 반응과는 현저한 대조를 이루는) 불타는 열의를 만들어 낸다. 열의에 넘치는 사용자들의 보고는 다음과 같은 긍정적인 느낌으로 가득 차 있다.
 시스템의 숙달  사용자의 작업 수행에 있어서의 능숙함   시스템을 처음 학습하는 것과 상급 기능을 이해하는 데 있어서의 편의성  시간이 지나도 숙달의 상태를 유지할 수 있는 사용자의 역량에 있어서의 자신감  시스템 사용의 즐거움  초보자에게 자랑하고 싶은 열망, 그리고  시스템의 더 강력한 측면을 탐구하고자 하는 욕망
 물론, 이런 느낌들은 일반적인 것은 아니지만, 이 (느낌의-역자 추가) 혼합(amalgam)은 진정으로 만족해하는 사용자라는 이미지를 전달해준다. … 핵심 아이디어는 관심의 대상이 가지고 있는 가시성, 즉 빠르고, 원래 상태로 되돌릴 수 있고, 증대하는 작동과 복잡한 명령 언어 구문을 관심의 대상을 직접 조작하는 것으로 대체한 것―즉, “직접 조작”이라는 용어인 것처럼 보인다.[각주:47]

 

 브렌다 로렐(Brenda Laurel)이 컴퓨터 인터페이스와 극장을 비교하면서 논의했듯이, (결코 직접적인 것이 아닌) 직접 조작은 성공적이기 위해선 직접 관여(direct engagement)에 의해 보충되어야만 한다. 로렐이 논의하길, 직접 관여는

그것이 몇몇 중요한 작업을 수행하는 데 있어 기호적 툴을 조작하는 것이든 컴퓨터 게임의 상상계를 거니는 것이든 간에, 초점을 조작 가능한 대상의 재현에서 선택의 활동에 사람들이 직접적으로 관여할 수 있게 하려는 이상으로 이동시킨다. 직접 관여는 인지적 가치만큼이나 감정적 가치를 강조한다. 직접 관여는 인간-컴퓨터의 활동을 설계된 경험으로 생각한다.[각주:48]

 

 행위에 대한 로렐의 강조는 툴의 재현과 툴 자체 사이의 결정적인 차이를 분명히 보여준다. 로렐이 논의하길, 사람들은 폴더(folder)를 더블 클릭할 때 그것이 정말로 서류철(folder)이 아님을, 그리고 폴더를 더 실물 같이(life-like)” 만드는 것은 도움이 되지 않는다는 것을 깨닫는다. 로렐이 주장하길, 도움이 되는 것은 말끔한 인과성이다. 사건은 사용자가 그것을 있을 법한(probable) 것으로 수용할 수 있는 그런 방식으로 일어나야만 하며, 따라서 개연성(probability)을 확실성으로 좁힌다. 그녀가 주장하기를, 인과성은 보편성을 보장해주며, 사용자가 기꺼이 자신의 불신을 유예할 것이라는 점을 보장해준다. 편집성 분열증 환자(paranoid schizophrenics)와 같은 사용자에게(이건 로렐이 아니라 필자의 관찰이다), 모든 것은 의미를 가진다. 우연의 일치란 있을 수 없으며, 오직 인과적 쾌락만이 존재한다.

 인과적 쾌락은 인과적으로 그럴 듯한 방식에서의 사용자 행위에 대한 재현이기만 한 것은 아니다. 인과적 쾌락은 사용자 증폭화(user amplification)”이기도 하다. 마노비치는 슈퍼마리오의 관점에서 사용자 증폭화를 설명한다.

당신이 조이스틱을 움직임으로써 마리오에게 왼쪽으로 이동하라고 말할 때, 이것은 소소하고 유쾌한 내러티브를 개시한다. 마리오는 언덕을 넘는다. 마리오는 언덕을 올라가기 시작한다. 그 언덕은 너무 가팔라진다. 마리오는 평지로 미끄러져 내려간다. 마리오는 벌벌 떨면서 일어난다. 이 모든 작동들(actions)은 우리에게서 어떤 것도 요구하지 않는다. 우리가 해야 하는 것은 단지 조이스틱을 한 번 움직이는 것이다. 컴퓨터 프로그램은 우리의 단 한 번의 행위( action)를 증폭시키며, 내러티브 시퀀스로 그 행위를 확장시킨다.[각주:49]

 

 이 사용자 증폭화는 고급 프로그래밍 언어에 동력을 공급하는 명령어 익스플로전”(고급 코드의 한 행은 기계 코드의 하나 이상의 행에 상응한다)을 모방한다. 사용자 증폭화는 게이밍 소프트웨어와 소프트웨어 아트의 산물일 뿐 아니라 프로그래밍의 힘에 핵심적인 것이다.

 거의 틀림없이 이 이중의 증폭화는 프로그래밍의 낭만화를 추동하며, 더 최근에는 소프트웨어 아트 혹은 제너레이션 플래시(Generation Flash)의 등장을 추동한다. 마노비치에 따르면, 제너레이션 플래시는 끝없는 포스트모던 인용의 순환에 참여하기보다는 독창적인 코드를 창조하는 새로운 예술가 집단(“낭만파”)이다. 프로그래머로서, 제너레이션 플래시의 예술가들이 생산하는 것은

데이터 시각화, 벡터 망, 픽셀 두께의 격자와 화살이라는 새로운 모더니즘, 즉 정보 디자인에 조력하는 바우하우스 디자인이다. 상업적 미디어의 바로크적 공격 대신에, 플래시 제너레이션은 우리에게 소프트웨어의 모더니즘 미학과 합리성을 제공해 준다. 프로그래밍이 역량 강화의 도구가 되어가는 동안, 정보 디자인은 현실을 이해하기 위한 도구로서 사용된다.[각주:50]

 

 현실을 이해하기 위해, 이런 예술가들과 디자이너들은 사용자 증폭화를 사용하는데, 왜냐하면 이들의 모더니즘 미학과 소프트웨어 기반 합리성이 원인과 결과를 증폭하고 단순화하기 때문이다. 보다 일반적으로, 소프트웨어와 함께 그들은 베일을 벗긴다. , 그들은 상황을 가시적으로 만든다. 이런 베일 벗기기(unveiling)는 사용자 측의 특정한 스마트함에 의존한다. 가장 강력한 기업들의 임원들 간 관계의 지도를 그릴 수 있는 방법을 사용자에게 제공하는 퓨처파머(Futurefarmer)의 프로젝트 데이룰넷(theyrule.net)을 설명하면서 마노비치는 이렇게 말한다.

패키징된 정치적 메시지를 제시하는 대신에, 데이룰넷(theyrule.net)은 우리에게 정치적 메시지를 분석할 수 있는 데이터와 툴을 제공해 준다. 데이룰넷(theyrule.net)은 우리가 옳은 결론을 도출할 수 있을 만큼 충분히 똑똑하다는 것을 알고 있다. 이것은 상호작용성의 새로운 수사학이다. 우리는 준비된 메시지를 들음/봄으로써가 아니라 오히려 데이터와 능동적으로 작업함으로써 납득하게 된다. 즉, 데이터를 재조직하고, 연결들을 드러내고, 상관관계를 알게 되면서 말이다.[각주:51]

 

 마노비치에 따르면, 이런 상호작용성의 새로운 수사학은 유토피아(UTOPIA)에서 더 탐구된다.

이런 세계의 우주 진화론(cosmogony)은 우리 자신의 행성에 대한 새로운 이해―포스트 냉전, 생태학, 가이아, 그리고 세계화―를 반영한다. 행위자들과 블록들을 연결하는 간신히 보이는 얇은 선에 주목하라. (이것은 데이룰넷에서 사용된 것과 동일한 장치다.) 유토피아(UTOPIA)의 우주에서, 모든 것은 상호연결되어 있으며, 개별 행위자의 각각의 행위는 전체로서의 시스템에 영향을 미친다. 지적으로, 우리는 이것이 지구가 생태적, 경제적으로 기능하는 방식이라는 것을 알고 있다. 하지만, 유토피아(UTOPIA)는 이것을 우리가 지각하여 파악할 수 있는 규모로 재현한다.[각주:52]

 

 유토피아(UTOPIA)는 프레드릭 제임슨(Fredric Jameson)인지적 지도(cognitive map)”라 부른 것을 가능케 한다. “인지적 지도전체로서의 사회구조의 앙상블인, 더 광범위하고 적절하게 재현이 불가능한 총체성에 종속된 개인 쪽의 상황에 따른 재현[각주:53]이다. 만약 자본의 비가시적인 네트워크 때문에 인지적 지도 그리기가 현재 어려운 동시에 필수적이라면, 이런 예술가들은 정보의 비가시성을 이용함으로써 인지적 지도를 생산한다. 마노비치가 논의하길, 소프트웨어 아트의 기능은 마르크스주의적 이데올로기 비판과 유사하다. 이데올로기의 베일은 개별 행위자들의 행위와 전체로서의 시스템 간의 관계들을 파악함으로써 산산이 조각난다. 소프트웨어는 미소세계에서 우리가 이해할 수 있는 규모로 이를 재현함으로써 이런 비판을 가능케 한다. 이런 베일 벗기기는 우리의 행위, 보기 위해 대상들을 조작하는 우리, 객체 지향 프로그래머처럼 생각하는 우리에 의존한다. 인지적 지도가 부족하기 보다는, 우리는 언제나 매체를 통해 인지적 지도를 생산한다. 이 매체는 이데올로기 비판을 시뮬레이션하며, 그것의 비존재 속에서 이데올로기 역시 시뮬레이션한다. [역자 설명-상호작용성이라는 환상이 일종의 이데올로기 비판, 즉 권력의 네트워크를 재현하는 것을 가능케 함과 동시에, 이 상호작용성이라는 환상 자체가 기계의 실제 작동을 은폐하고 있다는 것을 말한다.] 기계를 난독화하고 가상적 기계를 창조하도록 설계된, 그리고 파묻힌 명령에 토대를 두고 있는 소프트웨어가 투명한 것으로서의 연산이라는 저항하기 힘든 관념으로 이어졌다는 것은 진정으로 놀랄 만하다. 투명성에 대한 이런 관념은 실제적인 기술적 작동보다는 연산에 의해 설립된 미소세계와 더 관련이 있다.

이데올로기로서의 소프트웨어

 필자가 어딘가에서 논의했듯이, 소프트웨어는 이데올로기의 기능적 유사물(analog)이다.[각주:54] 형식적 의미에서, 소프트웨어와 하드웨어로 구성되었다고 이해되는 컴퓨터는 이데올로기 기계다. 컴퓨터는 우리가 가진 이데올로기에 대한 거의 모든 형식적 정의를 충족시킨다. (<매트릭스 The Matrix>에서 묘사된) 허위의식으로서의 이데올로기부터 이데올로기가 자신들의 실제적 존재 조건에 대한 개인들의 상상적 관계의 표상’”[각주:55]이라고 했던 루이 알튀세르(Louis Althusser)의 정의까지 말이다. 소프트웨어, 혹은 아마도 더 정확히 운영 체제(operating systems)는 우리에게 우리의 하드웨어에 대한 상상적 관계를 제공해 준다. , 운영 체제는 트랜지스터를 표상하는 것이 아니라 데스크톱과 휴지통을 표상한다. [역자 설명-트랜지스터는 전류와 전압의 흐름을 조절하는 반도체소자를 말하는데, 이것은 기계와 하드웨어의 측면에 속하는 것이다.] 소프트웨어는 사용자들을 생산한다. 운영 체제 없이는 하드웨어에 대한 접근 기회도 없을 것이며, 운영 체제 없이는 행위, 실습, 고로 사용자도 없을 것이다. 광고를 통해서, 각각의 운영 체제는 사용자를 호명(interpellate)한다. , 각 운영 체제는 사용자를 부르고, 사용자에게 동일시할 이름과 이미지를 제공한다. 그래서 맥(Mac) 사용자는 다르게 생각하며 마틴 루터 킹(Martin Luther King) 및 알버트 아인슈타인(Albert Einstein)과 동일시한다. 리눅스(Linux) 사용자는 오픈소스 파워 괴짜로, 뚱뚱하고 포식하는 펭귄의 이미지와 결부된다. 그리고 윈도우(Windows) 사용자는 이벤 모글렌(Eben Moglen)이 논의하길 정기적으로 고장나는 컴퓨터에 편안함을 느끼는 주류의 기능주의자 유형이다. 운영 체제가 제공하는 선택들은 가시적인 것과 비가시적인 것, 상상할 수 있는 것과 상상 불가능한 것을 한계 짓는다. 하지만 당신이 (놀랍게도 당신의 선호라고 언급되는) 소프트웨어의 기본값(defaults)에 좌절감을 느끼거나 당신이 여러 개의 운영 체제나 상충하는 소프트웨어 패키지를 사용하지 않는 한, 당신은 (“사용자 친밀감(user-friendliness)”으로도 알려져 있는) 소프트웨어의 끊임없는 제약과 호명을 알아차리지 못한다.

 또한 소프트웨어는 파일이 저장되었음을 나타내는 안심할 수 있는 소리부터 개인의 컴퓨터 소유권을 강조하는 내 문서와 같은 폴더 이름에 이르기까지 유순한 상호작용을 통해 사용자를 생산한다. 컴퓨터 프로그램은 당신, 그리고 다른 모두를 주체로서 호칭하는 나의당신같은 연동자(shifters), 대명사를 뻔뻔스럽게 사용한다. 소프트웨어는 당신이 읽도록 만들며, 당신에게 더 많은 관계들과 훨씬 더 많은 볼거리를 제공해 준다. 소프트웨어는 글자를 읽는 것을 넘어 추측하고, 해석하고, 계산하고 반복하는 비문학적이고 낡은 관행으로 향하는 읽기를 촉발한다. 소프트웨어는 물신주의적(fetishistic) 논리에 토대를 둔다.[각주:56] 사용자는 폴더와 데스크톱(desktops)이 정말로 문서철과 탁상(desktops)이 아니라는 것을 잘 알고 있지만, 그것들을 폴더와 데스크톱으로 지시함으로써 마치 정말 그러한 것처럼 취급한다. 슬라보예 지젝(Slavoj Zizek)에 따르면, 이런 논리가 이데올로기에 결정적인 것이다. (페터 슬로터다이크Peter Sloterdjik를 경유하며) 지젝은 이데올로기가 누군가의 신념이 아니라 누군가의 행위에서 영속한다고 주장한다. 이데올로기의 환상은 지식의 수준에서가 아니라 오히려 행위(doing)의 수준에서 존재한다. 상상계적인 법의 의미”(인과성)를 통해 유지되는 이런 환상은 권위가 진실을 결여하고 있다는 사실, 즉 사람들이 이해할 수 없을 정도로 법에 복종한다는 사실을 가린다. 이것은 연산이 아닌가? 의미와 인과성이라는 환상을 통해 우리는 연산을 완전히 이해하거나 통제하지 못한다는 것 그리고 그렇게 할 수 없다는 사실을 가리고 있지 않은가? 컴퓨터가 점점 더 서로를 설계하고 있다는 것 그리고 우리의 사용이 (어느 정도는) 간청(supplication)이라는 것은 맹목적 신앙인가? “상호작용성이라는 새로운 수사학은 그것이 드러내는 것보다 더 많은 것을 난독화한다.

 운영 체제는 또한 좀 더 말 그대로 사용자를 창조하는데, 사용자가 운영 체제의 구성물(construction)이기 때문이다. 사용자 로그인은 유닉스(UNIX) 같은 시분할(time-sharing) 운영 체제와 함께 등장했는데, 이는 사용자로 하여금 사용자가 작업하고 있는 기계가 사용자 자신의 기계라고 믿도록 만든다 (이 이전에, 컴퓨터는 주로 일괄 처리 방식batch processing을 사용했다. 그리고 그 이전에는, 사람들은 정말로 컴퓨터를 운용(run)했으며, 그렇기 때문에 운영 체제에 대한 필요성이 없었다. 사람들은 인간 운용자를 가지고 있었다). 많은 역사가들이 논의했듯, 1970년대 개발된 시분할 운영 체제는 개인용 컴퓨터를 낳았다.[각주:57]

 소프트웨어와 이데올로기는 모두 비물질적인 것(the immaterial)의 물질적 효과에 대한 지도를 그리려 시도하고 비물질적인 것을 시각적 단서를 통해 위치 짓기 때문에 완벽하게 서로 들어맞는다. 이 과정을 통해서, 비물질적인 것은 상품으로서, 타에 의존하지 않는 무언가로서 드러난다. 그렇기 때문에 소프트웨어를 더 쉽게 시각화할 수 있도록 만들고자 하는 선구자에 대한 브로이의 설명은 기이하게도 소프트웨어 자체와 유사하다. 왜냐하면, 무언가를 명시적으로 만들고, (기계와 같이) 가시적인 것을 비가시적으로 렌더링하는 동시에 감지할 수 없는 무언가를 가시적으로 만들려는 바로 그 노력이 아니라면 소프트웨어가 무엇이겠는가? 소프트웨어와 이데올로기 간의 유사점이 설득력 있다 해도 여기서 멈추지 않는 것은 중요한데, 왜냐하면 이데올로기를 소프트웨어로 환원시키는 것은 이데올로기에서 이데올로기의 권력 비판이데올로기에 대한 이론에 있어 절대적으로 필수적인 것을 비워내기 때문이다.[각주:58] 양파 같은 구조를 가진 소프트웨어가 이데올로기와 이데올로기 비판은폐하는 것이자 드러내는 것의 수단으로서 작용한다는 사실 또한 소프트웨어와 이데올로기 간의 유사점을 깨트린다. 소프트웨어의 권력은 소프트웨어의 이중 작동(dual action)과 소프트웨어가 비가시적으로 렌더링하는 가시적인 것, 즉 언어적 작업이 되어가는 프로그래밍 언어의 효과에 있다. [역자 설명-여기서 ‘소프트웨어가 비가시적으로 렌더링하는 가시적인 것’은 앞서 말한 기계와 하드웨어를 말하는 것으로 보인다.]

투명성을 통해 보기

당신이 모자에서 토끼를 꺼낸다는 것은, 당신이 애초에 토끼를 거기에 두었다는 것을 뜻한다.[각주:59] -자크 라캉

 

 이런 드러냄(revealing)의 작용은 투명성혹은 보드리야르가 커뮤니케이션의 외설성이라 불렀던 것에 핵심적인 데이터베이스와 다른 구조를 추동한다. 디지털 이미지화(imaging)는 확실히 투명한 것으로서의 컴퓨터 네트워크라는 관념에 한 몫을 하지만, 이것이 유일하거나 핵심적인 것이라는 의미는 아니다. 예를 들어, 범죄자나 테러리스트를 찾기 위해 공적이고 사적인 정보의 데이터베이스를 표면상에서 꼼꼼하게 살펴 추려내는 여러 주()에 걸쳐 있는 프로그램 매트릭스(The Matrix)”를 생각해보자. 이 프로그램은 이렇게 작동한다.

 자동차 등록, 운전 면허증 데이터, 범죄 이력과 부동산 기록 같은 이질적 원천으로부터 온 정보를 통합함으로써, 그리고 그 정보를 법 집행 조사를 도울 수도 있는 활동의 패턴을 위해 분석함으로써. 회사의 홍보 자료는 이렇게 말한다. “보기엔 중요하지 않은 충분한 수의 데이터가 수십억 개의 데이터 요소를 배경으로 분석될 때, 비가시적인 것은 가시적인 것이 된다.”[각주:60]

 

 옹호자들은 매트릭스가 법 집행에 이미 사용 가능한 정보를 단순히 취합하는 것이라 주장하지만,

이 프로그램의 반대자들은 산더미 같은 데이터를 결합하고 면밀히 조사할 수 있는 컴퓨터 네트워크의 능력이 경찰의 감시 권력을 증폭시키며, 무고한 사람들을 데이터 저인망에 얽히게 할 더 큰 위험에 놓이게 한다고 말한다. 그들이 말하길, 일상의 많은 측면들이 온라인 흔적들을 남기는 세상에서 문제는 복합적이다.[각주:61]

 

 2004315일까지, 3분의 2 이상의 주()가 예산과 프라이버시 문제를 이유로 들며 매트릭스에 대한 지지를 철회했다. “매트릭스는 프라이버시에 대한 침해로 여겨졌는데, 컴퓨터가 지표적(indexical) 이미지를 재생산했기 때문이 아니라, 매트릭스가 (다시금 말하자면, 소프트웨어의 작용 그 자체인) 비가시적인 것을 가시적으로 만들기 때문이다. 매트릭스는 경찰로 하여금 쉬운 연관성을 만들 수 있게 함으로써 경찰권을 증폭했다. 다양한 전자 데이터베이스를 취합하려는 미국 정부의 계획인 종합 정보국(Total Information Agency)은 비슷하게 비난받았으며 2003년 미 의회에 의해 근본적으로 기각되었다.

 좀 더 개인적인 수준에서, 비가시적인 것을 가시적으로 렌더링하는 것을 통해 연관성을 가능케 한 컴퓨팅은 개인용 컴퓨팅 인터페이스를 추동한다. 워드에서 타자를 침으로써, 글자가 내 스크린에 나타나는데, 이는 내 컴퓨터에 비가시적으로 저장되어 있던 것을 재현한다. 내 타자 행위와 클릭 행위는 스크린 상에서 그에 상응하는 동작(actions)을 가진 것처럼 보인다. 파일을 엶으로써, 나는 파일을 가시적으로 만든다. 그리고 모든 수준에서, 소프트웨어는 비가시적인 것을 가시적으로 만드는 것, 즉 컴퓨터가 읽을 수 있는 코드와 인간이 읽을 수 있는 언어 간의 번역에 대한 것처럼 보인다. 마노비치는 뉴미디어의 언어에서 이런 번역을 자기의 것으로 만들어 변환부호화(transcoding)”한 포맷에서 다른 포맷으로 파일들을 옮기는 것(translation)인데, 그는 이것을 문화적 층위와 컴퓨터 층위 간의 관계로까지 외삽(extrapolate)한다를 뉴미디어의 다섯 번째이자 마지막 원리로 만든다. 마노비치가 주장하길, 뉴미디어를 이해하기 위해서 우리는 양쪽 층위에 관여할 필요가 있는데, 왜냐하면 표면의 층위가 다른 모든 미디어와 같아보일지 몰라도, 연산이라는 숨겨진 층위는 뉴미디어와 올드미디어 사이의 차이프로그램화 가능성(programmability)가 놓여있는 곳이기 때문이다. 그러므로, 그가 주장하길, 우리는 미디어 연구에서 소프트웨어 연구로 이동해야 하며, 변환부호화의 원리는 소프트웨어 연구에 대한 사유를 시작할 수 있는 한 방법이다.[각주:62]

 변환부호화라는 마노비치의 관념이 가지고 있는 문제는 그것이 정적인 데이터에 초점을 맞추며, 연산을 그저 번역(translation)으로 취급한다는 것이다. 프로그램화 가능성은 이미지가 새로운 방식으로 조작 가능하다는 것만을 의미하는 것이 아니라, 우리의 컴퓨터가 우리의 통제를 넘어서는 방식으로 끊임없이 작동한다는 것 또한 의미한다. 소프트웨어를 단지 변환부호화로 여기는 것은 컴퓨터가 구동되는데 필수적인 연산을 지워버린다. 컴퓨터의 기만적인(duplicitous) 읽어들이기(reading)는 단지 코드를 텍스트/이미지/사운드로 번역하거나 변환부호화하는 것 혹은 그 역을 의미하지 않는다. , 컴퓨터의 읽어들이기읽기와 쓰기를 융합하는 읽어들이기 (컴퓨터에게, 읽는다는 것은 어딘가 다른 곳에서는 작성한다는 것이다)는 또한 다른 비가시적인 읽어들이기에 참여한다. 예를 들어, 마이크로소프트(Microsoft)의 미디어 플레이어가 CD를 재생할 때, 미디어 플레이어는 마이크로스프트사에 그 CD에 대한 정보를 전송한다. 미디어 플레이어가 CNN의 비디오 클립과 같은 리얼 미디어(Real Media)의 파일을 재생할 때, 미디어 플레이어는 CNN에 그 파일의 고유 식별자(unique identifier)”를 전송한다. 당신은 CD를 재생할 때 오프라인으로 작업하는 것 그리고 온라인일 때 당신의 미디어 플레이어가 고유 식별자를 전송하지 않도록 요청하는 것을 선택할 수 있지만, 이런 선택들은 기본값 설정에 있어 두 가지 변화를 요구한다. 미디어 플레이어를 설치함으로써, 당신은 또한 마이크로소프트가 컴퓨터에 자동으로 다운로드되는 운영 체제 구성요소에 보안 관련 업데이트를 제공하는 데 동의한 것이다. “이런 보안 관련 업데이트는 보안 콘텐츠(Secure Content)를 복제 및/또는 재생하고 컴퓨터에서 다른 소프트웨어를 사용할 수 있는 당신의 능력을 무력화할(disable) 수도 있다.”[각주:63] 기본적으로, 마이크로소프트는 고지(notice) 혹은 당신의 명시적인 동의 없이도 운영 체제의 구성요소를 바꿀 수 있다. 이와 같이 안전하다는(secure) 것이 사용자로부터 보안이 철저한(secure) 것을 의미하는 곳에서, 안전한(secure)” 컴퓨터를 만들기 위해 마이크로소프트는 해적판 파일과 응용프로그램을 무력화하고/거나 그것의 존재를 마이크로소프트의 메인 데이터베이스에 보고할 수 있다.[각주:64] 물론 마이크로소프트의 광고는 미디어 플레이어의 추적 메커니즘을 강조하지 않으며, 오히려 미디어 플레이어를 역량강화적이고 이용자 친화적인 것으로 판매한다. 이제 당신은 마우스 한 번 클릭으로 CD와 인터넷 기반 라디오 방송국을 청취할 수 있다. 이는 대형 휴대용 플레이어(boom box)와 비슷한데, 그것보다도 낫다. 이제 당신은 자동적으로 소프트웨어 업데이트를 받고 원격지(remote site)와의 연결을 최적화할 수 있다.

 명확히 하자. 이 논문은 자신이 무엇을 하는지 알 수 있었던 시대로 돌아가자고 요청하는 것이 아니다. 이런 날은 이미 가버렸다. 키틀러가 주장하듯, 근본적인 수준에서 우리는 더 이상 작성하지 않는다. , 우리는 워드 프로세서를 이용함으로써 그 작업을 컴퓨터에게 넘겨주었다.[각주:65] 또한 이 논문은 소프트웨어나 프로그래밍에 대한 고발도 아니다. (필자 역시 소프트웨어의 인과적 쾌락에 휘둘리고 매료된다.) 하지만 정확히 소프트웨어의 상식(common sense)으로서의 지위 때문에 (그리고 이런 면에서 소프트웨어는 헤게모니적 상식으로서의 이데올로기라는 그람시적 관념을 충족한다), 소프트웨어가 지워버리는 역사와 응시들 때문에, 그리고 소프트웨어가 가리키고 있는 미래 때문에, 이 논문은 소프트웨어에 대한 상식적 관념들에 맞서는 논의이다. 소프트웨어는 문화를 가리키는 상식적 약칭이 되었고 하드웨어는 자연을 가리키는 약칭이 되었다. (줄기세포에 대한 요즈음의 논쟁에서, 줄기세포는 하드웨어로 불려 왔다. 역사적으로 소프트웨어는 DNA에서 유전자를 분리해내는 데 필수적인, 물질로부터의 패턴의 분리를 촉진하기도 했다.[각주:66]) 소위 말하는 탈이데올로기적(postideological) 사회에서, 소프트웨어는 이데올로기와 이데올로기 비판이라는 관념을 지탱하면서 탈정치화한다. 사람들은 이데올로기를 부인할지 몰라도, 소프트웨어를 부인하진 않는다. , 그들은 이데올로기에 귀속되어 왔던 것보다 더 큰 권력을 은유적으로 소프트웨어에 귀속시킨다. 소프트웨어와의 상호작용은 우리를 훈육시키고, 원인과 결과에 대한 특정 기대를 창조하고, 우리가 믿기에 어딘가로 전이가 가능해야만 하는 쾌락과 권력을 우리에게 제공해주었다. 소프트웨어라는 관념은 대개 심문받지 않는 방식으로 우리의 주요 어휘집에 슬그머니 들어왔다.[각주:67] 소프트웨어와 그것이 영속시키는 시각적 지식에 대해 질문을 던짐으로써, 우리는 소위 말하는 지표성의 위기를 넘어, 시각적 지식이 단순히 자리를 잃거나 낡은 것이 되는 게 아니라 변형되고 영속되는 새로운 방식을 이해하는 데로 이동할 수 있을 것이다.

  1. 존 슈왈츠(John Schwartz)가 한 말을 인용한 것. “Privacy Fears Erode Support for a Network to Fight Crime,” The New York Times, 15 March 2004, C1. 사이신트는 이 논문에서 후반에 논의되는 컴퓨터 시스템 “매트릭스”를 개발한 회사다. [본문으로]
  2. Jean Baudrillard, The Ecstasy of Communication, trans. Bernard Schutze and Caroline Schutze (Brooklyn: Semiotext(e), 1988), 2122. 강조는 필자 [본문으로]
  3. 예를 들어, 마이크로소프트 워드(Microsoft Word)는 무엇인가? CD나 하드 드라이브(혹은 그것의 소스 코드)에 있는 암호화된 실행 가능한(encrypted executable) 것인가, 아니면 실행 가능한 것의 실행(execution)인가? 중요한 것은 둘 다 워드라고 불림에도 불구하고 그 둘은 동일하지 않다는 것이다. , 그 둘은 다른 위치에 있을 뿐 아니라, 하나가 프로그램이라면 다른 하나는 프로세스다. 나중에 논의하겠지만, 구조화 프로그래밍은 프로그램을 프로세스와 결합하는 데 핵심적이었다. [본문으로]
  4. 여기를 보라. Lev Manovich, The Language of New Media (Cambridge: MIT Press, 2001), 48. (한국어판: 레브 마노비치, 뉴미디어의 언어, 서정신 역, 커뮤니케이션 북스, 2014) [본문으로]
  5. Paul Ceruzzi, A History of Modern Computing, 2nd ed. (Cambridge: MIT Press, 2003), 80. [본문으로]
  6. Manfred Broy, “Software EngineeringFrom Auxiliary to Key Technology,” in Software Pioneers: Contributions to Software Engineering, ed. Manfred Broy and Ernst Denert (Berlin: Springer, 2002), 1112. [본문으로]
  7. Friedrich Kittler, “There Is No Software,” ctheory.net, 18 October 1995, http://www.ctheory.net/text_file.asp?pick=74. [본문으로]
  8. 1950년대에, 소프트웨어라는 용어는 드물게 사용되었으며, 케이블의 플러그 배열 같이 하드웨어를 보충하는 모든 것을 지칭했다. 1960년대 소프트웨어는 현재 우리가 시스템 소프트웨어라고 부르는 좁은 의미로 이해되기 시작했고, 더 넓게는 외부 공급업체에서 구매한 도구, 응용 프로그램 및 서비스의 모든 조합으로 이해되기 시작했다. Thomas Haigh, “Application Software in the 1960s as Concept, Product, and Service,” IEEE Annals of the History of Computing 24, no. 1 (JanuaryMarch 2002): 6. 이에 대해서 보충하고 싶다면 여기를 보라. Wolfgang Hagen’s “The Style of Source Codes,” trans. Peter Krapp in New Media, Old Media: A History and Theory Reader, ed. Wendy Hui Kyong Chun and Thomas Keenan (New York: Routledge, 2005). [본문으로]
  9. 여기를 보라. Herman Goldstine and Adele Goldstine, “The Electronic Numerical Integrator and Computer (ENIAC)” IEEE Annals of the History of Computing 18 no.1 (Spring 1996): 1016. 두 가지 활동이 아서 버크에 의해 구분이 되었는데, 하나는 수치적 프로그래밍(numerical programming)”(운용자에 의해 구현됨)이고, 다른 하나는 적절한 프로그래밍(programming proper)”(공학자에 의해 설계되고 마스터 프로그래밍 유닛에 의해 구현됨)이다. Arthur Burks, “From ENIAC to the Stored-Program Computer: Two Revolutions in Computers,” in A History of Computing in the Twentieth Century, ed. N. Metropolis et al., 311344 (New York: Academic Press, Inc., and Harcourt Brace Jovanovich, 1980). 수치적 프로그래밍은 문제의 세부사항과 산술적 단위들을 다루었으며, 마이크로프로그래밍과 유사했다. 적절한 프로그래밍은 통제 단위와 동작의 배열을 다룬다. [본문으로]
  10. 여기를 보라. Martin Campbell-Kelly and William Aspray, Computer: A History of the Information Machine (New York: Basic Books, 1996), 184. [본문으로]
  11. 여기를 보라. Wolfgang Hagen, “The Style of Source Codes,” in New Media, Old Media, ed. Wendy Hui Kyong Chun and Thomas Keenan (New York: Routledge, 2005). [본문으로]
  12. Adele Mildred Koss, “Programming on the Univac 1: A Woman’s Account,” IEEE Annals of the History of Computing 25, no. 1 (January–March 2003): 56. [본문으로]
  13. 여기를 보라. Jacques Derrida, “Signature Event Context,” in Jacques Derrida, Limited Inc., trans. Samuel Weber and Jeffrey Mehlman, 123 (Evanston: Northwestern University Press, 1988). [본문으로]
  14. John Backus, “Programming in America in the 1950sSome Personal Impressions,” A History of Computing in the Twentieth Century, ed. Metropolis et al., 127. [본문으로]
  15. Koss, 58. [본문으로]
  16. Jean Sammett, Programming Languages: History and Fundamentals (Englewood Cliffs: Prentice-Hall, 1969), 144. [본문으로]
  17. Sammett, 148. [본문으로]
  18. 다음과 같은 예를 보라. Theodor Nelson, Computer Lib (Richmond, WA: Tempus Books of Microsoft Press, 1987). [본문으로]
  19. Harry Reed, “My Life with the ENIAC: A Worm’s Eye View,” in Fifty Years of Army Computing from ENIAC to MSRC, Army Research Laboratory, 2000, 158; accessible online at: http://ftp.arl.mil/~mike/comphist/harry_reed.pdf. [본문으로]
  20. 여기를 보라. “Anecdotes: How Did You First Get into Computing?” IEEE Annals of the History of Computing 25, no. 4 (OctoberDecember 2003): 4859. [본문으로]
  21. Paul N. Edwards, The Closed World: Computers and the Politics of Discourse in Cold War America (Cambridge: MIT Press, 1996), 71. [본문으로]
  22. I.J. Good. “Pioneering Work on Computers at Bletchley,” in A History of Computing in the Twentieth Century, ed. Metropolis et al., 3146. [본문으로]
  23. 다음에서 인용. Ceruzzi, 82. [본문으로]
  24. 여기를 보라. Michael S. Mahoney, “Finding a History for Software Engineering,” IEEE Annals of the History of Computing 27, no. 1 (JanuaryMarch 2004): 819. [본문으로]
  25. 이전에 논의했듯, 소프트웨어는 가시적인 효과를 생산하지만, 소프트웨어 자체는 보이지 않는다. 하나이지 않은 성 This Sex Which Is Not One에서 뤼스 이리가레(Luce Irigaray)는 유사하게 여성 섹슈얼리티가 비시각적이라고 주장했다. “그녀의 성적 기관은 아무것도 볼 수 없다는 공포를 표상한다.” 강조는 필자의 것. Luce Irigaray, in This Sex Which Is Not One (trans. Catherine Porter, Ithaca, NY: Cornell UP, 1985), 26. (한국어판: 뤼스 이리가레, 하나이지 않은 성, 이은민 역, 동문선, 2000) [본문으로]
  26. Sadie Plant, Zeros + Ones: Digital Women + The New Technoculture (New York: Doubleday, 1997), 37. [본문으로]
  27. Campbell-Kelly and Aspray, 181. [본문으로]
  28. Koss, 51. [본문으로]
  29. Koss, 49. [본문으로]
  30. Fitz, 21. [본문으로]
  31. Paul Edwards, “The Army and the Microworld: Computers and the Politics of Gender Identity,” Signs 16, no. 1 (1990): 105, 125; 강조는 필자 추가. [본문으로]
  32. 바네바 부시는 속기사(stenographer)의 행위를 다음과 같이 묘사했다. “여성은 무기력하게 타자를 치며, 불안을 조성하는 응시로 방을 둘러보고 때로는 발화자를 바라본다.” Vannevar Bush, “As We May Think,” The Atlantic Monthly, July 1945, repr. 1994, http://www.ps.uni-sb.de/~duchier/pub/vbush/vbush.txt. 여성은 대부분 프로그래머에서 사용자로 쫓겨났으며, 동시에 하드웨어 생산직이 태평양 너머로 이동했음에도 생산 인력 풀을 계속해서 지배했다. [본문으로]
  33. 소프트웨어 위기, 그리고 그것과 소프트웨어 공학 사이의 관계에 대해서 더 알고 싶다면 여기를 보라. Cambell-Kelly and William Aspray, 196203, Ceruzzi, 105, and Frederick P. Brooks’s The Mythical Man-Month: Essays on Software Engineering, 20th Anniversary Edition (NY: Addison-Wesley Professional, 1995). [본문으로]
  34. Mahoney, 15. [본문으로]
  35. Edsger W. Dijkstra, “EWD 1308: What Led to ‘Notes on Structure Programming,’” in Software Pioneers, ed. Broy and Denert, 342. [본문으로]
  36. Edsger W. Dijkstra, “Go to Statement Considered Harmful,” in Software Pioneers, ed. Broy and Denert, 352, 354. [본문으로]
  37. 거의 틀림없이, 고투(go to)는 해로운데, 왜냐하면 고투는 컴퓨터가 직접적으로 주소지정되는 순간이기 때문이다. 조건부 분기(conditional branching)와 루프는 프로그램이 이런 주소 없이 다른 섹션으로 이동할 수 있게 해준다. 이런 주소는 다음과 같은 질문을 제기한다. 정확히 누가/무엇이 다른 섹션으로 가야(go to) 하는 건가? 흥미롭게도, 고투는 어셈블리 명령 제어 전송(transfer control to)”의 번역인데, 제어 전송은 주소 X에 위치한 명령에 프로그램 제어 권한을 부여한다. 고투와 제어 전송 간의 차이는 프로그래밍의 핵심에 있는 행위성의 위기의 기저를 이룬다. [본문으로]
  38. John V. Guttag, “Abstract Data Types, Then and Now,” in Software Pioneers, ed. Broy and Denert, 444. [본문으로]
  39. Guttag, 444. [본문으로]
  40. Guttag, 445. [본문으로]
  41. David Eck, The Most Complex Machine: A Survey of Computers and Computing (Natick, MA: A. K. Peters, 2000), 329, 238. [본문으로]
  42. Koss, “Programming on the Univac 1: A Woman’s Account,” 49. [본문으로]
  43. Paul Edwards, “The Army and the Microworld,” 108–9. [본문으로]
  44. 프로그래밍의 쾌락에 대해 더 알고 싶다면 여기를 보라. Linus Torvalds, Just for Fun: The Story of an Accidental Revolutionary (New York: HarperBusiness, 2001). (한국어판: 리누스 토발즈, 데이비드 다이아몬드, 리눅스*그냥 재미로, 안진환 역, 한겨레출판, 2001) Eben Moglen, “Anarchism Triumphant: Free Software and the Death of Copyright,” First Monday 4, no. 8 (2 August 1999). [본문으로]
  45. 여기를 보라. Edwards’s discussion of John McCarthy’s work in The Closed World, 258. [본문으로]
  46. John von Neumann, Papers of John von Neumann on Computing and Computer Theory, ed. William Aspray and Arthur Burks (Cambridge: MIT Press, 1987), 413. [본문으로]
  47. Ben Schneiderman, “Direct Manipulation: A Step Beyond Programming Languages,” in The New Media Reader, ed. Noah Wardrip-Fruin and Nick Montfort (Cambridge: MIT Press, 2003), 486. [본문으로]
  48. Brenda Laurel, Computers as Theatre (Reading, MA: Addison-Wesley Publishers, 1991), xviii. [본문으로]
  49. 49. Lev Manovich, “Generation Flash,” 2002, http://www.manovich.net/DOCS/generation_flash.doc. [본문으로]
  50. 역량강화라는 관념은 “독창적 코드”를 생산한다는 것이 의미하는 게 무엇인지 그리고 정보 디자인에 조력하는 바우하우스 디자인이 어떻게 인용이 아니게 되는 것인지에 대한 질문을 제기하게 만든다. Manovich, “Generation Flash.” [본문으로]
  51. Manovich, “Generation Flash.” [본문으로]
  52. Manovich, “Generation Flash.” [본문으로]
  53. Fredric Jameson, Postmodernism, or The Cultural Logic of Late Capitalism (Durham: Duke University Press, 1991), 51. (한국어판: 프레드릭 제임슨, 포스트모더니즘, 혹은 후기 자본주의의 문화 논리, 임경규 역, 문학과지성사, 2022) [본문으로]
  54. 여기를 보라. Wendy Hui Kyong Chun, Control and Freedom: Power and Paranoia in the Age of Fiber Optic (Cambridge: MIT Press, 2005). [본문으로]
  55. Louis Althusser, “Ideology and Ideological State Apparatuses (Notes Towards an Investigation),” in Lenin and Philosophy and Other Essays, trans. Ben Brewster (New York: Monthly Review Press, 2001), 109. (한국어판: 루이 알튀세르, 이데올로기와 이데올로기적 국가장치, 아미엥에서의 주장, 김동수 역, , 1991) [본문으로]
  56. 여기를 보라. Slavoj Zizek, The Sublime Object of Ideology (London: Verso, 1989), 1153. (한국어판: 슬라보예 지젝, 이데올로기의 숭고한 대상, 이수련 역, 새물결, 2013) [본문으로]
  57. 여기를 보라. Ceruzzi, 2089; Cambell-Kelly, 20729. [본문으로]
  58. 하지만, 이런 유사점들은 이데올로기에 대한 우리의 이해가 정확히는 인터페이스와 같이 근본적으로 행동의 극장 모델에 의존하고 있는 한 결여적이라는 사실을 드러낸다. [본문으로]
  59. Jacques Lacan, The Seminar of Jacques Lacan, Book II: The Ego in Freud’s Theory and in the Technique of Psychoanalysis (1954–1955), ed. Jacques-Alain Miller, trans. Sylvana Tomaselli (New York: Norton, 1991), 81. [본문으로]
  60. Schwartz, C1. [본문으로]
  61. Schwartz, C1. [본문으로]
  62. Manovich, The Language of New Media, 48 (한국어판: 레브 마노비치, 뉴미디어의 언어, 서정신 역, 커뮤니케이션 북스, 2014) [본문으로]
  63. 여기를 보라. Media Player’s “Licensing Agreement.” [본문으로]
  64. 마이크로소프트는 팔라디움 이니셔티브에서 이런 조치를 고려중이다. 여기를 보라. Florence Olsen, “Control Issues: Microsoft’s plan to improve computer security could set off fight over use of online materials,” Chronicle of Higher Education, 21 February 2003, http://chronicle.com/free/v49/i24/24a02701.htm. [본문으로]
  65. 여기를 보라. Kittler, “There Is No Software.” [본문으로]
  66. 여기를 보라. Francois Jacob, The Logic of Life: A History of Heredity, trans. Betty E. Spillman (New York: Pantheon Books, 1973), 24798. (한국어판: 프랑수아 자코브, 생명의 논리, 유전의 역사, 이정우 역, 민음사, 1994) [본문으로]
  67. () 너머: 생명 과학의 수사적 변환에서 발전된 수사적 소프트웨어(rhetorical software)”라는 리차드 도일의 개념은 비과학적 학문 담론에서 소프트웨어를 주요 용어로서 사용하는 것의 전형을 보여주며, 소프트웨어가 우리의 생각을 구조화하고 그럼으로써 많은 질문을 요하는 개념으로 놓이게 되는 정도를 드러낸다. [본문으로]