A LINGUAGEM QUER SER OCULTADA: SOBRE SOFTWARE E IDEOLOGIA
ALEXANDER R. GALLOWAY
Originalmente publicado em: Journal of Visual Culture 2006; 5; 315-331
Tradução: Ednei de Genaro
* *

“Prover classes e interfaces para obter informação refletida sobre classes e objetos” – Descrição do pacote de programação Java, ‘java.lang.reflect’, Sun Microsystems, 2004.
Um Analógico*…
Este artigo principia a partir de outro: o fascinante “Software: a Persistência do Conhecimento Visual” (2004), de Wendy Hui Kyong Chun, no qual uma tese, entre outras, é exposta: “o software é um análogo funcional da ideologia” (p. 43)[1]. Por mais breve que seja, leva-nos a uma rica série de discussões, não exatamente sobre a teoria e a história do software e da ideologia, mas sobre a questão da funcionalidade, e do modo como uma coisa pode ser análoga à outra. Mais ainda, a última questão, a do analógico, é especialmente pertinente para uma exploração do processo de interpretação, e como os objetos culturais empregam modos de figuração, de alegoria, por exemplo (tema que será importante ao final). Embora a questão da funcionalidade ocupe a segunda metade do artigo, será bom defini-la agora: adoto a maneira pela qual a ciência da computação emprega o termo, de modo que uma função significa qualquer sub-rotina ou bloco fechado de códigos; sendo, pois, distinto do da matemática, em que a função é qualquer ente capaz de traduzir um conjunto de entradas em um conjunto de saídas. Um dos argumentos iniciais de Chun é que há uma similaridade, que poderíamos chamar de similaridade formal, entre a estrutura da ideologia e a estrutura do software. Convenientemente, tal intenção argumentativa pode ser estendida na caracterização do software em si mesmo: é uma tecnologia de simulação e, de tal modo, tem como disposição central a capacidade de “tomar forma” de várias maneiras. Em outras palavras, software é pensado por uma via de definição formal (enquanto código matemático ou abstrato e lógico), e, portanto, ajustando-se bem nas comparações estruturais – alguém poderia dizer, melhor ainda que seus primos, a saber, a imagem visual e a narrativa verbal. A analógica ou “expressiva” teoria da ideologia igualmente não é desconhecida. Tal como a obra de Louis Althusser evidencia, a estrutura da ideologia assemelha-se mais ou menos a um desenho arquitetural de uma casa, com a base material da sociedade embaixo e a base cultural ou superestrutural acima. Ideologia não aparece exatamente como uma casa, mas como uma projeção figurativa de uma camada sobre a outra; sendo, pois, o substituto para aquilo que os marxistas chamam de história, ou, de forma grosseira, a contínua reificação das relações e processos sociais, estando ela mesma apta a representar problemas particulares a partir do passado no presente. Que o software seja menos um veículo para a ideologia e mais uma simulação ou modelo, não há dúvida, devido às qualidades formais do software, pelas quais, combinadas com a relevância do software e de tantos outros artefatos culturais e históricos, permanecem bem ajustadas à perfeita modelagem matemática dos fenômenos reais do mundo – da funcionalidade, da projeção espacial, da visão e do som; porém, de uma maneira que a distância material ou a falsidade empírica da simulação é primeiro sequencialmente evidenciada como um erro fatal e depois creditada como insignificante. “Ideologia” é, pois, nome que pode ser usado para coisas que agem de tal modo; e logo um intenso bosque mimético emerge: software enquanto tecnologia mimética; ideologia enquanto projeção por meio da “fenda” entre indivíduos e suas reais condições de existência, e, por fim, a formidável tese de Chun, de que o software pode ser concebível como uma cópia continuamente variável (isto é, um analógico) da ideologia.
Seria lógico abrir tal discussão revisitando a teoria clássica da ideologia, contudo, por ora, ignoremos que a ideologia e sua conceituação na própria teoria do discurso venham a estar em discordância, de modo a afirmar então que o poder da ideologia (se tem algum, afinal) é o alto nível de restrições que ela imputa ao próprio discurso, visando um sistema absoluto ou “suave” de pensamento. Ideologia sempre foi relativa a duas coisas simultaneamente, à representação de uma relação social vivida (seguindo a definição de Althusser), e a uma questão implícita de crítica (como certa vez disse Frederic Jameson, sobre o capitalismo: basta pronunciar a palavra “ideologia” e logo parece incitar um desdém sobre). No discurso sobre, um primeiro argumento, o do pensamento científico, sugere que a ideologia é sempre definida a partir de outros estilos de pensamento; aqui particularmente a história do conceito ganha um complemento, uma vez que Destutt de Tracy, autor que cunhou o termo em 1790, defendeu sua nova ciência da ideologia como um antídoto para a filosofia e a metafísica (depois ele ficaria famoso em virtude de Napoleão ridicularizá-lo por se importar pouco com o “conhecimento do coração humano” e com as “lições da história”); de qualquer forma, a narrativa sofística é invertida por Althusser, autor que apresentaria a crítica marxista como científica e a ideologia como um ameaça tal pensamento tão claro. Segundo, e provavelmente tão influente quanto à narrativa científica, é a narrativa do fracasso político, que se encontra em variados escritos a respeito da ideologia. Aqui, a ideologia serve como um tipo de “explicação” antropológica para todos os tipos de alienação, exploração e falsa consciência existentes na sociedade, da mesma maneira que a doutrina do pecado original ou do argumento teológico sobre a existência do diabo enquanto explicação do por que o aqui e agora é tão inferior ao vindouro. Essa explicação é uma eficaz estratégia da teoria da ideologia, evidente em Gramsci e outros, servindo como prova teórica da não-existência da revolução, apesar da percepção de que já estejam presentes todos os fenômenos do mundo real que seriam necessários para que isto ocorresse. (O messianismo político é exposto de forma altamente convincente em Espectros de Marx, de Derrida [1993].) Os dois primeiros argumentos são sintetizados por um terceiro, a respeito da narrativa determinista da ideologia, de modo que se examina como um sistema totalizante de pensamento pode ou não determinar coisas como os sujeitos humanos. Aqui podemos incluir a obra da Escola de Frankfurt, ou novamente a de Althusser, a partir da questão central da industrialização dos corpos e mentes em modos crescentemente insidiosos de eficiência e instrumentalidade. Contudo, seria preciso retornar a Marx e Engels, particularmente na conhecida “tese da ideologia dominante”, extraída de passagens do Manifesto Comunista, e em certas partes da Ideologia Alemã, referindo-se às determinações da consciência. A teoria da ideologia foi recuperada no final do século XX, sendo pensada como uma narrativa sintética: ideologia é uma via de mão única, sendo sempre acondicionada na interseção entre a produção e o consumo culturais. Em tal contexto, a ideologia segue uma lógica mais dialética, como aparecem nos dois termos de Jameson, “reificação e utopia” (formulação encontrada em As marcas do Visível, cujos termos são levemente distendidos para “utopia e ideologia”, em O Inconsciente Político), ou na bem conhecida teoria da “articulação” de Stuart Hall; ou ainda antes na noção de hegemonia de Gramsci, em que o domínio político ou cultural é sempre o resultado de intensas negociações e produções.
Mesmo diante destas várias e às vezes conflitantes teorias da ideologia, seria miopia compreender como um tipo de desilusão cognitiva, uma névoa da falsa consciência afligindo as cabeças afetadas. Ideologia não é algo que possa ser resolvido como um quebra-cabeça, ou curado como uma doença. Em vez disso, ideologia é entendida de modo bem mais problemático, isto é, um ambiente onde aparecem problemas teóricos, sendo gerados e sustentados enquanto problemas em si mesmos. A partir da contribuição de Chun, o software também parece poder ser compreendido não como um objeto social e técnico, mas como um ambiente problemático – de fato, um ambiente continuamente em processo de produção de seu próprio status social e técnico. (Assim, “problema” é sinônimo de “máquina”, sendo aspirante substituto de “software”).
Pelos motivos acima, eu asseveraria que o conceito de software não pode ser utilizado sem uma significativa quantidade de altercações iniciais. A primeira dificuldade é que o software, de diferentes maneiras e magnitudes, costuma estar em oposição às noções de qualidade e continuidade, geralmente resumida como o “reino do analógico” (o termo analógico é tão mal empregado que devemos enunciá-lo com extremo cuidado). Embora a polaridade analógico-digital seja em si mesma espinhosa, é preciso estar particularmente atento às discussões contemporâneas, uma vez que a questão do analógico já foi discutida, na descrição de Chun da modelagem interna do software, como uma ideologia-em-código. A segunda dificuldade, o software se baseia na suposição de que há algo como um programador e como um usuário. Isto levanta também uma série de problemas, a mais importante é a do status do atuante versus o do atuado (a narrativa do determinismo mencionada acima), e sobre quais circunstâncias definem cada um. Atualmente a “indústria cultural” adquire um significado totalmente novo, uma vez que internamente no software o “cultural” e o “industrial” são circunvizinhos (por isso que é tautologia falar hoje de lógica cultural da informática). As formas detalhadas de interação e de jogo algorítmicos requeridas hoje ao público que utiliza computadores são bem semelhantes a escrever códigos, penso eu, de sorte que a divisão entre os dois certamente precisa ser imputada a outros fins. Talvez isso tenha a ver com a criação e manutenção de outra classe servo-especialista pelejando em decodificar o software, algo semelhante ao crítico que anseia a “engenharia reversa” da ideologia. Talvez seja melhor contextualizar o assunto com o moroso debate acerca dos grupos produtores e consumidores e das dinâmicas de poderes assombrando implicitamente as distinções mútuas. Uma terceira dificuldade é a noção de que, ao empregar o conceito de software, de alguma maneira se exclui o hardware. Isso deriva de uma discussão de longa data, na qual os dados seriam fundamentalmente imateriais ou etéreos, e, inversamente, as máquinas seriam a substância das engrenagens e alavancas. Essa é a assertiva fundamental acerca das primeiras máquinas informáticas. Contudo, tal como Chun e outros apontaram, “programar” um computador originalmente implicou conectar circuitos usando cabos ou conectores e, dessa forma, “software” começou historicamente não como aplicativo de software executáveis, como conhecemos hoje, mas como um tipo de labor performático realizado dentro das ou mediante as máquinas informáticas; mesmo os vídeos eram antes conhecidos como “software”, distinguindo-se do “hard” aparelho de som ou da câmera. Assim, o que está em operação hoje é um efeito de segregação, pelo qual os dados são relegados ao reino das ideias e as máquinas ao reino da tecnologia. O resultado disso é um presentismo, algo que será repetidamente afirmado por mim mais tarde, de modo que o software é compreendido como uma linguagem de máquina simbólica somente no final do século XX, e não antes, quando o software pode ser corretamente definido como pré ou não-linguístico.
Os problemas acima são alguns dos destacados na obra de Friedrich Kittler, particularmente em seu There is No Software (1995), um inteligente e ocasionalmente desconstrutivo ensaio sobre a divisão entre códigos e máquinas. A ideia do título do ensaio é que, de fato, o software é simplesmente uma categoria amistosa ao humano, subtraindo o fato de ser sempre uma operação de hardware. Portas lógicas são máquinas eletrônicas, sendo dispositivos físicos, sem dúvida. As tensões nos circuitos eletrônicos são materiais, não imateriais (qualquer coisa que seja). Como em Parmênides: o que não é, não pode ser. De tal forma, é preciso assumir que o “soft” vem de uma fluidez informática dos dispositivos, como entendeu Turing quando definiu sua máquina de “universal” em vez de “discreta”. Quando a funcionalidade básica da porta lógica é abstraída e agrupada em comandos de máquina, traduzida em códigos operacionais de montagem e, posteriormente, articulada em uma linguagem de computador de nível superior, como a C, o argumento de Kittler é que nunca se deve entender essa máquina simbólica “superior” como algo empiricamente diferente das interações simbólicas “inferiores” de tensões através de portas lógicas. Sim, eles são agregados complexos, mas é tolice pensar que escrever uma estrutura de controle “se/então” em oito linhas de linguagem assembly seja algo mais ou menos maquínico como fazer o mesmo em uma linha de C, assim como a mesma equação quadrática pode crescer com qualquer número de multiplicadores e ainda assim manter-se equilibrada. A relação entre os dois é técnica.
É claro que isso não deixa de ser interessante, particularmente em relação à questão da ideologia. Eu proponho aqui que software é um exemplo de transcodificação técnica sem figuração que, contudo, coexiste com um nível exorbitante de fetichismo ideológico e de desentendimento. (Isso não seria, afinal, a própria definição de tecnologia?) Chun (2004) faz uma conexão explícita: “Software é fundado em uma lógica fetichista. Os usuários sabem muito bem que as pastas e as áreas de trabalho não são realmente pastas e áreas de trabalhos, mas eles as tratam como fossem – referindo-as como pastas e áreas de trabalho” (p. XX). Se isso é realmente uma lógica fetichista, ou uma alegoria, precisa ser apurado. Em Marx, fetichismo surge da expressiva e figurativa lógica de representação – como um valor que aparece na forma de algo que não é –, um fato que sem dúvida permite que a metodologia marxista seja facilmente vertida para outros campos intelectuais que lidam também com o problema da representação (semiótica, história da arte, crítica literária, teorias de raça, e assim por diante). No entanto, é claro que a força das análises de Marx em O Capital dá-se porque ele derivou o fetichismo de uma base de relações essencialmente empírica, ou “técnica” (as leis dos mercados de troca, a estandardização da força de trabalho, as ciências da produtividade e eficiência, e assim por diante). A dialética da transcodificação técnica e a abstração fetichista existem desde sempre, portanto. É por isso que irei sugerir ao final que tal relação entre software e ideologia não é meramente um veículo para a ideologia; em vez disso, as contradições da transcodificação técnica e da abstração fetichista são apregoadas e “resolvidas” a partir da própria forma do software.
O poder do ensaio de Chun é dado a partir de um sintoma, de uma ideia que aparece no título, mas logo desaparece durante a maior parte do ensaio com a mesma velocidade que surge no início. Para Chun (2004), a relação entre software e ideologia (uma relação, e não uma homologia, afinal) é um retrocesso: é o conhecimento visual que persiste no software, e, portanto, devemos assumir que a qualidade visual do conhecimento é a chave do quebra-cabeça software/ideologia. “O computador”, ela escreve, isto é, “o dispositivo mais não-visual e não-transparente – promoveu paradoxalmente mais ‘cultura visual’ e ‘transparência’” (p. XX). Sem dúvida, os puristas do software ficarão descontentes com isso, assim como os mais afeitos ao terreno intelectual da cultura visual, no qual a presente revista [Journal of Visual Culture] obviamente cumpre parte disso, e no qual o tema do meu artigo está evidentemente implicado apenas de modo contra-intuitivo. Se posso ler o ensaio de Chun nas entrelinhas, não é exatamente a disciplina de cultura visual que fornece pano de fundo ao seu projeto, apesar do uso do termo “visual”, e apesar da indicação feita em seu livro Control and Freedom (2006). E aqui as coisas começam a ficar espinhosas, já que é preciso fazer uma distinção entre o “visível”, que é tipicamente compreendido como algo específico, da faculdade da visão óptica, e o “visual”, que pode ser compreendido de forma mais ampla e figurativa como um processo epistêmico de entendimento cognitivo e conceitual: poder-se-ia arrazoar como um “insight” mental com ou sem a faculdade óptica, tal como alguém pode “ver” uma imagem em seu sonho. Isso resulta, à primeira vista, em modos de argumentação surpreendentes, expostos na recente obra de W. J. T. Mitchell (2005), What Do Pictures Want?, que a formação genética da cultura não é o texto nem mesmo a ideia, mas precisamente a imagem. É claro, ao ler convenientemente Mitchell (ou Chun), não vem ao caso assumir que ele pensa que o mundo é feito somente de telas televisivas, propagandas, pinturas, rolos de filmes, logomarcas corporativas, o que Vilém Flusser denominou de “superfícies significativas” – não, tais não são as imagens que eles se referem, pelo menos não apenas. Em vez disso, o “visual” pode ser compreendido como referência a qualquer semelhança ou motivo que corrija algum conjunto de elementos, de modo que se possa “ver” esses elementos tanto em um todo relacional (uma memória, refrão, gesto, rastro etc.) como em termos de suas partes constituintes (fonema, textura, cor, tom, pixel etc.). Isso não é, pois, um argumento radical, e certamente se encontra alinhado à filosofia e à estética ocidentais desde o início.
De tal modo, o Iluminismo epistemológico, que une (colapsa, alguém poderia dizer) o conhecimento e o visual em variadas tecnologias de transparência e comunicabilidade representacionais, prossegue no software não apenas, argumenta Chun, por conta das conceituações e “observações” recém-mencionadas, mas também na medida em que promove um modelo aprofundado de representação entre fontes e superfícies, scripts e telas, o código e o usuário. Contudo, o modelo iluminista tem também provocado, com razão, uma montanha de críticas em torno da impossibilidade de tal representação transparente. Chegamos, pois, a um paradoxo: qualquer mediação tecnológica é obrigada a se apagar o máximo possível a fim de uma comunicação irrestrita, mas, ao fazer isso, prova sua virtuosa presença enquanto tecnologia, desfazendo então o apagamento original. “O que é o software”, escreve Chun (2004), “senão um esforço para fazer explícito – fazer o intangível visível – enquanto ao mesmo tempo tornar o visível (isto é, a máquina) invisível?” (p. 44). A linguagem quer ser ocultada [overlooked]. Contudo, ela quer ser ocultada precisamente porque com isso pode ser mais efetiva, “sobre vista” [“over look”], isto é, ela pode funcionar melhor como um sistema sintáxico e semântico projetado para especificar e articular ao passo que permanece destacada dos próprios processos de especificação e articulação. Tem-se aqui um sentido no qual a linguagem, que por si mesma não é necessariamente conexa a uma visão óptica, pode, no entanto, ser “visual”. O conselho de Chun é que para compreender o software devemos voltar à discussão dos problemas envolvendo visual e ideologia, e não saltar para um reino estético puramente maquínico e, então, principalmente não-visual. É um bom conselho, mas o apelo ao conhecimento visual precisa ser compreendido em um sentido figurativo, não literal (isto é, óptico), uma vez que, como argumentarei, é mais fundamental separar em vez de anular os aspectos visuais e maquínicos dos softwares, em um confronto mutualmente distinto, pois tal separação simula a mesma ordem de confronto na arena sociopolítica, entre um modelo informático ou maquínico de organização e outro um pouco mais antigo, que valoriza as formas estéticas, de narrativa verbal e de imagem visível. Em outras palavras, a separação entre o visual e o maquínico no software é importante porque é uma alegoria do social. A “persistência do conhecimento visual” de Chun significa o duplo-cego, que alguns denominam otimistamente de era da informação: sobrevaloriza o fato de que o software é enraizado em lógica simbólica e não em visão óptica, e então não pode totalmente explicitar a forma dominante existente mesmo hoje na sociedade do espetáculo, embora ela ao mesmo tempo se desenvolva precisamente em virtude desta forma social que ela simula com tanta eficácia.
Visualidade e computação têm uma história complicada. Autores como Lev Manovich (ver, em particular, seu ensaio “The Automation of Sight”, 1996) apontaram corretamente o erro do divórcio de um do outro. De fato, em uma época em que o cinema se tornou sinônimo de Final Cut Pro, a fotografia de Photoshop, a escrita de Microsoft Word, e assim por diante, qualquer compreensão contemporânea da mediação visual que ignore o software faz por seu próprio risco. A história do pixel é instrutiva a respeito: em sua invenção, em meados do século XX, o pixel eletrônico era essencialmente a mesma coisa que bit binário, um existindo na modalidade da luz visível e o outro na modalidade do valor matemático. Contudo, eu permaneço igualmente compreensivo com certa posição recente e minoritária da teoria de mídia sobre a especificidade dos computadores enquanto não-ópticos, ou mesmo enquanto mídias não-visuais. Para aqueles que desejam dispor os computadores dentro da estrutura da “cultura visual”, isto seria uma infeliz fetichização da interface, como se o monitor do computador fosse um substituto cômodo para o meio como um todo, consistindo, além de telas de variadas formas e tamanhos, de inúmeras outras tecnologias: interfaces não-ópticas (teclado, mouse, controle, sensor); dados em memória e em disco; algoritmos executáveis; tecnologias de redes e protocolos; e a lista continua. Do mesmo modo, os campos da visão computacional e da computação gráfica são apenas uma fração da ciência da computação como um todo, ocupando quase todo o seu tempo com algoritmos, estrutura de dados, criptografia, robóticas, bioinformáticas, redes, aprendizado de máquina, e outras aplicações não-visuais de sistemas simbólicos[2].
Deixando irresoluta a discussão acerca do visual, prossigo oferecendo a primeira de duas observações gerais quanto ao software e a ideologia. Software opera a partir de um modelo tecnológico, ressaltando meticulosamente declarações e descrições simbólicas, enquanto simultaneamente demanda ocultação, encapsulamento e ofuscação de grandes parte dos códigos. Formulado enquanto proposição, software demanda tanto reflexão* como ofuscação**. Se de fato isso é uma analogia alegórica da ideologia, não deveria ser surpresa o software funcionar de modo tão dialético. Os críticos da ideologia por vezes descreveram isso em termos sintéticos (Jameson, Hall, Gramsci, et al.). Reflexão é quase axiomático: a totalidade das regras sintáticas e semânticas da linguagem computacional precisa ser definida e escrita dentro de algum ambiente projetado para ser interpretado, analisado ou executado. (À parte: nas chamadas linguagens naturais isso nunca é o caso, apesar dos dicionários e guias de estilos, uma vez que inesperados empregos “induzidos” de linguagem possam ser encontrados ou inventados sem a bênção da proveniência, enquanto no software as articulações imprevistas de linguagem são basicamente rejeitadas como erros ou “exceções”. É claro que isso não exclui a possibilidade ou a necessidade de surgirem hacks e outros exploits*** de softwares na complexidade da rede de software; exploits que nunca podem ser antecipados “estatisticamente”, como iria dizer um cientista da computação. A diferença é que os exploits operam intensivamente dentro e por meio das regras do sistema simbólico, enquanto a linguagem natural opera extensivamente, como resultado da lógica discursiva combinatória, intentando sempre inquirir sobre os limites tolerados do estilo.) O reflexivo sandboxing**** de código de software, dentro de uma máquina construída para analisar, considerando o caso de um computador em linguagem tipo Java, precisaria ser compilado e então rodado em bytecode, dentro de um ambiente especial de execução temporal; no caso de um computador em linguagem C, precisaria ser compilado e depois rodado como máquina de instruções “nativas”; ou com uma linguagem de marcação simples como HTML cujas especificações devem ser inteiramente projetadas em qualquer navegador destinado a interpretá-lo e exibi-lo; ou ainda, por outros tipos de códigos de interpretação, cujos modelos tridimensionais, a partir de valores matemáticos para vértices e texturas, precisariam ser transcodificados de acordo com as regras de certa formatação de dados e de estilo visual de projeção. Essa reflexão existencial ou de meta-mediação é mais bem aclarada nas variáveis paratextuais “globais” ou do “sistema”, existentes em muitas linguagens (a implementação de Perl é particularmente impressionante: $$ para o número do processo, $! para o último erro de chamada do sistema, $0 para o nome do programa etc.), ou linguagem do tipo Java, que inclui objetos “meta” especiais, tal como no pacote java.lang.reflect e a classe java.lang.class que são projetadas para obter informações sobre classes e objetos[3]. Tais meta objetos são usados para escrever softwares reflexivos como depuradores e interpretadores, ou para dinamicamente declarar novos objetos durante o tempo de execução. De fato, a própria ontologia, anteriormente um ramo da filosofia, é agora um ramo da ciência da computação, destacando-se explicitamente em padrões ontológicos de redes, tal como na OWL (Ontology Web Language).
O segundo termo, ofuscação, é igualmente fundamental para o modo como o software é projetado tanto no nível do código-fonte como no do executável. Embora o princípio permeie o software, isso talvez seja mais bem compreendido por meio de variações básicas, de transcodificação técnica e encapsulamento. O princípio de transcodificação, que estou adotando a partir de Manovich, assevera que os novos objetos de mídia podem ser convertidos digitalmente de uma estrutura de dados para outra; contudo, mais ainda, existem formatos de mídia baseados inteiramente em conversões. De tal modo, um aplicativo como o BIND (Berkeley Internet Name Domain), uma das melhores resoluções de nomes de domínios, existe para que os endereços IP possam ser mascarados por nomes de domínios mais legíveis aos humanos. A máscara de rede é similar: em matemática binária, um bit em um número binário pode ser extraído usando uma máscara especial e um operacional “e” para cada bit; da mesma forma, em endereçamento de redes, as sub-redes são definidas usando um número especial chamado máscara de rede, especificando a seção de endereço de rede para a própria sub-rede. Em uma imagem numérica bitmap, valores são usados para representar intensidades de cores em uma grade de pixels. Porém, eles nunca são representados dessa forma, mas sim convertidos em sinais de dados e enviados para um adaptador de vídeo no qual converte esses valores em voltagens, aparecendo como luzes na tela. Assim, neste caso de “conversão” há certa conjunção entre o sinal “físico” e o número “abstrato”, de modo que um fica oculto graças ao outro. Mesmo no exemplo anteriormente referido do HTML é o mesmo princípio de ocultação de dados que é utilizado: o HTML nunca é explicitado na tela do navegador, sendo sempre analisado e convertido de texto ASCII para um layout gráfico (podendo ou não também incluir texto ASCII). Esses são apenas alguns exemplos do que é uma larga tendência em design de software ocultando a codificação numérica de dados por trás de privilegiados formatos “semânticos”, em linguagem natural ou em gráficos. Números seguem fundamentalmente uma lógica oculta: eles são ocultados no exato momento que se expressam. É o que Chun (2004) chama de “a não-refletiva alteração de fatos no software” (p. XX). A segunda variação, o encapsulamento, é mais presente no campo da autoria e compilação de dados. O princípio mais fundamental de design para linguagens orientadas a objetos é a combinação de variáveis e operações em variáveis (métodos) naquilo que é denomino classe. Classes podem ser instanciadas enquanto objetos, ou tais interagem da capacidade de enviar mensagens para outros objetos via interfaces de objetos. É aqui que entra o encapsulamento: os detalhes de como um objeto compõe dada operação são deliberados mantendo-os ocultos de outros objetos que façam solicitações. Por exemplo, os métodos de entrada e saída podem estar visíveis, mas no modo como se processam as entradas e saídas, permanecem ocultos. A fim de empreender tecnologias de encapsulamento, é empregado um sistema de modificadores de visibilidade, como no caso da linguagem Java, em que classes, métodos ou variáveis podem ser considerados “públicos”, “privados” ou “protegidos”, ajudando a determinar se cada designação, classe, método ou variável, permanece visível para o resto do código.
A ofuscação, ou “ocultação de informações” [information hiding], é usada de forma a tornar o código mais modular e abstrato e então mais fácil de mantê-lo. Um método de classe pode ser atualizado, e quanto mais ele continue a adequar-se em sua “assinatura” na interface pública, mais poderá assegurar que o código continuará a ser executado. O texto a seguir articula a racionalidade da ofuscação na perspectiva da ciência da computação.
Um grande desafio – o maior, provavelmente – na construção de qualquer corpo amplo de software é como dividir os trabalhos entre os programadores de modo que os trabalhos possam proceder simultaneamente de múltiplas fontes. Tal modularização de esforços depende criticamente da noção de ocultação de informações, que tornam invisíveis, sempre que possível, os objetos e algoritmos, nas partes do sistema em que eles não são necessários. Uma apropriada modulação de códigos reduz a “carga cognitiva” no programador, minimizando a quantidade de informações requeridas para compreender qualquer parte do sistema. Em um programa bem-projetado, as interfaces entre os módulos são mais “estreitas” (isto é, simples) quanto possível, e qualquer decisão de projeto propenso à mudança é ocultado dentro de um único módulo. O último ponto é crucial, já que em muitos softwares comerciais a manutenção (correções de bugs e aprimoramentos) consome muito mais anos de trabalho do programador do que a sua construção inicial.
Além de reduzir a carga cognitiva, a ocultação de informação tem vários outros benefícios de segurança. Primeiro, reduz o risco de nomes conflitantes: com poucos nomes visíveis há menos chance de que um nome seja o mesmo que outro já utilizado. Segundo, salvaguarda a integridade dos dados abstratos: qualquer tentativa de acessar objetos fora da(s) sub-rotina(s) em que elas pertencem fará com que o compilador emita uma mensagem de erro “símbolo indefinido”. Terceiro, ajuda a compartimentar erros de tempo de execução: se a variável assume um valor inesperado, podemos geralmente estar seguro de que o código está no escopo da variável. (Scott, 2000, p. 122).
Assumindo o risco de ser demasiadamente literal, vale ressaltar a significativa semelhança entre a descrição do processo de trabalho e a mesma descrição oferecida por Marx e seus partidários na discussão acerca da ideologia. Em ambos os casos temos um “objeto” imbuído na maquinaria complexa de ocultação das coisas, seja pelo objeto mercadoria (ou a mercadoria enquanto imagem, como Guy Debord maniacamente demonstrou) e suas habilidades em dissimular a própria história de produção e a divisão social do trabalho por ela gerada, ou pelo objeto Java e sua capacidade de blindar várias funcionalidades dentro de um ou outro site de inscrição e execução, o que é sem dúvida uma abstração ou mapeamento da atual divisão global do trabalho em empresas ponto-com, onde uma parte do código pode surgir de um escritório em Redmond e a outra parte em Bangalore, sem que nenhuma esteja à frente da outra. A estrutura do software facilita tal realidade social alargada. Isso não significa promover um tipo de teoria da conspiração sobre a nova economia, mas simplesmente observar a significação formal da similaridade entre a estrutura do software enquanto mídia tecnológica e a estrutura da ideologia – com a mercadoria sendo ponto de referência entre as duas (a mercadoria e a ideologia, em Debord, ou em Jean-Joseph Goux, ou Roland Barthes, devemos lembrar, são quase sinônimas).
Precisamos destacar igualmente que “reflexão” e “ofuscação” não tem nada a ver com o debate acerca do código aberto versus software proprietário. Não tem nada a ver com “bom” versus “mau” uso do código. Assim como o software proprietário, o software de código aberto segue o princípio de ocultação da fonte. De tal maneira, não é a capacidade de visualizar a fonte que está em questão, mas se a fonte é disposta ou não na frente e como central no meio em si mesmo; e em quase todos os sistemas de softwares, isso não acontece (permissões especiais precisam ser feitas para mídias como desmontadores, editores hexadecimais e kits de desenvolvimento de softwares). Isso não é estranho aos campos da poética ou da hermenêutica, que frequentemente lida com modelos de expressão nos quais o cerne da obra é relegado ao lugar do inefável, como na “sugestão” ou no “silêncio” articulável do Simbolismo, ou da masoquista condenação do cinema, que nunca pode realmente recriar seu sujeito, a ação por meio do espaço e tempo, apenas descreve o acontecido. Tal é a contradição fundamental do software: o que você vê não é o que você tem. Código é o meio que não é um meio. Ele nunca é visto como é, mas, em lugar disso, é compilado, interpretado, analisado, ou então levado a se ocultar em blocos ainda maiores de códigos. O princípio de ofuscação, portanto. Contudo, ao mesmo tempo, é o grau excessivamente alto de reflexividade declarativa no software que permite o código operar tão efetivamente como fonte ou essência algorítmica – a exposição de variáveis desde o início, as declarações de métodos, tudo antes que a “linguagem” real assuma seu lugar –, em um ambiente de software ampliado e sempre predestinado a analisar e executar o código. O princípio de reflexão, portanto.
… Que É Funcional
Voltemos à asseveração de Chun (2004), “o software é um análogo funcional da ideologia” (p. XX). Isso indica não somente que o software é um análogo da ideologia, mas uma afirmação muito mais fundamental de que o software é funcional por natureza, sugerindo daí que a ideologia também seja. Ou, em outras palavras: software é ideologia desdobrada em máquina. Essa noção foi sugerida anteriormente pela “narrativa determinista” da ideologia. A discussão da narrativa determinista foi posta para ressaltar que o aspecto ideológico orienta a mudança e a inflexão do mundo material, sendo, em Althusser, o primeiro exemplo de como deveria ser a discussão de interpelação e formação dos sujeitos. Em contraste, muitos argumentaram – Foucault, notadamente – que é o inverso, na verdade: ideologia não é o veículo primário de projeção dos sujeitos à sua imagem, mas sim os dispositivos sociais e técnicos, que disciplinam e inflexionam os recursos materiais imanentes a eles, sejam em corpos humanos ou não. O padrão de restrições prescritivas pode não ser original, mas o que é crucial no software é a translação de forças ideológicas em estruturas de dados e em lógica simbólica, um processo sem dúvida coincidente com a evolução da linguagem em si mesmo. Software é algoritmicamente afetivo de uma maneira que a ideologia nunca foi. Isso é mais bem compreendido não como prova de uma cisão entre software e ideologia, mas como a própria consumação das narrativas determinísticas e das conveniências entre ambos.
Poderíamos resumir a natureza funcional do software a partir do seguinte slogan: código é a única linguagem que é executável. Isso é completamente similar à teoria do ato de fala e da noção de um ato de fala ilocucionário, definidos como expressões verbais que, quando pronunciadas, mudam o estado das coisas no mundo. Acerca da qualidade ilocucionária de todos os códigos, Katherine Hayles escreve:
O código virou um debate tão imprescindível quanto o da linguagem natural, isto porque faz com que as coisas aconteçam, requerendo que sejam executadas como um comando que as máquinas podem executar.
O código que é rodado na máquina é performativo em um sentido muito mais forte do que é atribuído à linguagem. Quando é dito que a linguagem é performativa, os tipos de ações que ela “performa” acontece na mente dos humanos, tal como quando alguém diz “Eu declaro esta sessão legislativa aberta” ou “Eu declaro vocês marido e mulher”. Outorgadas, tais mudanças na mente podem e dão resultados efetivos nos comportamentos; contudo, a força performática da linguagem está ligada às mudanças externas por meio de complexas cadeias de mediação. Por outro lado, o código rodando em computador digital determina mudanças no comportamento da máquina e, por meio de portas de redes e outras interfaces, pode desencadear outras mudanças, todas implementadas a partir da transmissão e execução do código. (pp. 49-50)
Os críticos da afirmação de que todo código é ilocucionário apontam que as linguagens computacionais e naturais não são diferentes em relação à questão da execução. Eles argumentam que os atos de fala ilocucionárias em linguagens naturais requerem uma compreensão social geral entre grupos de pessoas, a fim de que a qualidade performática seja efetiva – um pronunciamento de casamento a partir da boca de um padre cria uma mudança no mundo, mas o mesmo pronunciamento a partir da boca de um ator teatral não tem o mesmo efeito –, e, da mesma forma que o código computacional requer uma infraestrutura geral, o hardware do computador também carece, a fim de executar seu comando “ilocucionário”. Não obstante, eu concordo com Hayles: código é primeiramente maquínico e depois linguístico; uma infraestrutura intersubjetiva não é a igual a uma infraestrutura material (mesmo que infelizmente tal afirmação divida esses dois sistemas simbólicos entre o “soft” das linguagens naturais versus o “hard” das linguagens computacionais). Ver o código enquanto subjetividade performativa ou enunciativa seria antropomorfizar, projetá-lo em uma rubrica psicológica, em vez de compreendê-lo por meio de sua própria lógica de “cálculo” e “comando”. O substrato material do código, que sempre deve existir como um amálgama de sinais elétricos e de operações lógicas em silício, seja grande ou pequeno, demonstra que o código existe primeiro e fundamentalmente como comandos emitidos de uma máquina. O código não tem outra razão de existir senão instruir alguma máquina sobre como atuar. Não se pode dizer o mesmo para as linguagens naturais. (Alhures, Chun compila tal linha de raciocínio com seu argumento evocativo de que o código-fonte é realmente compreendido somente como código-fonte após o fato). É claro que isto não exclui a importância cultural e técnica de qualquer código que execute contra as ordens recebidas da máquina de execução, tal como nos glitch computacionais ou nos exploit de softwares, simplesmente para ressaltar a natureza fundamentalmente funcional de todos os softwares (glitch e exploit inclusos).
Contudo, aproximamo-nos de um impasse, uma vez que existe uma tensão entre o software, que entendo ser fundamentalmente uma máquina, e a ideologia, que é genericamente compreendida como certo tipo de narrativa. Espen Aarseth, em sua heroica reformulação acerca do texto e a narrativa, chamou o texto eletrônico de “funções transversais”, indicando de que forma a narrativa não pode existir no código enquanto tal, mas precisa ser simulada, seja como uma função de fluxo “narrativo” governando elementos semânticos específicos, ou como linguagem computacional em uma “imagem” de elementos em relação, tal como no caso de uma matriz ou de um banco de dados. Software não é primariamente uma narrativa verbal ou uma imagem visual, mesmo se certamente estas últimas formas possam ser remediadas no software. O problema decorre de dois entendimentos básicos sobre o software, uma como linguagem computacional e a outra como máquina. Como linguagem, o software é um sistema simbólico que pode existir de diferentes maneiras, volta e meia compreendido na perspectiva de “camadas” linguísticas ou de códigos (o núcleo argumentativo de Kittler [1995], em “There is No Software”). Como eu argumentei anteriormente, no contexto da transcodificação, um dos resultados desta perspectiva é que cada camada é relacionada tecnologicamente, senão inteiramente equivalente, a todas as outras camadas. No entanto, o modelo de software por camada linguística é mais instrutivo para uma discussão totalmente diferente, desta vez sobre a incomensurabilidade fundamental entre dois pontos ou limiares no continuum de camadas, e, portanto, sobre a dificuldade de alcançar uma experiência coletiva ou “total”. Como tais translações técnicas não são simplesmente inertes, um momento privilegiado ocorre, no qual a escrita torna-se puramente maquínica e vice-versa. O sistema operacional pode existir como executável no disco, mas ele também existe fenomenologicamente como uma metafórica interface cibernética: o “desktop”. (É claro que a metáfora é um termo totalmente errado para falar sobre interatividade figurativa, porém isso servirá no momento; no contexto dos jogos de computador, eu propus o termo “alegorítmico”, mas na discussão presente isso parece um pouco estranho).
Em relação ao acima, Aarseth (1997) considera como a “natureza dual do sinal cibernético”. Enquanto alegoria, isso é mais bem compreendido em um contexto social expandido, no qual o divórcio forçado entre o poético e o funcional, entre o privado e o público, ou entre o processo e o inerte, é uma projeção das cicatrizes agonizantes da fragmentação e atomização de todas as camadas da vida social. O movimento dialético entre fluidez e fixidez, observado no trabalho interno do software, onde estados e mudanças de estado são cotidianos, vem a ser precisamente o mesmo problema político assentado pela ideologia (as narrativas da falha e do determinismo resumidas no início do artigo). Software pode não ser uma narrativa no sentido estrito da palavra, mas ainda assim pode ter um início, meio e fim (parafraseando Aristóteles), mesmo que esses momentos narrativos sejam reformulados como meras variáveis dentro do amplo mundo da simulação com software, e então podendo ser também a ideologia redefinida em formato digital.
Portanto, o software é tanto linguagem como máquina, mesmo se o maquínico é primário. E, mais importante, há um processo de mistificação ou distanciamento em ação assegurando que o linguístico e o maquínico definitivamente não são a mesma coisa. De fato, parte da implicação ideológica do software são a criação e manutenção de tal distinção. Isso leva à minha segunda observação geral, que tem a ver com o modelo aprofundado de representação (introduzido anteriormente por Chun, “a persistência do conhecimento visual”): o software é simultaneamente escritural [scriptural] e executável. Tal como discutimos, essas duas características são às vezes distribuídas em um modelo hierárquico de duas ou mais camadas de código: o código-fonte é “anterior ao” tempo de execução; linguagens de máquina são linguagens de programação “por baixo”; os aplicativos de software “conduzem” a experiência do usuário, e assim por diante. Vale a pena citar esmiuçadamente um pertinente trecho de Aarseth (1997), por sua clareza e profundidade.
A dupla natureza dos processos de sinais cibernéticos pode ser descrita da seguinte forma: enquanto alguns sistemas de significação, tal como quadros pintados e livros impressos, existem somente em nível material (isto é, no nível da tinta e da tela, ou da tinta e do papel), outros existem em dois ou mais níveis, como um livro sendo lido em voz alta (papel com tinta e as ondas sonoras de voz) ou uma imagem em movimento sendo projetada (a fita de filme e a imagem na tela prateada). Nestes últimos casos, a relação entre os dois níveis pode ser vista como trivial, já que a transformação de um nível para o outro (podemos chamar de produção secundária de sinais) será sempre, se não determinística, pelo menos dominada pela autoridade material do primeiro nível. No entanto, na transformação do sinal cibernético, a relação pode ser vista como arbitrária, porque o nível interno codificado somente pode ser totalmente experimentado por meio do nível externo, expressivo. (Quando inativos, o programa e os dados do nível interno podem ser, é claro, estudados e descritos como objetos em si mesmos, mas não como equivalentes ontológicos de suas representações no nível externo.) Além do mais, o que ocorre no nível externo somente pode ser totalmente compreendido à luz do interno. Ambos são equivalentes intrínsecos, em oposição ao status extrínseco da performance de uma peça em contraste com o roteiro da mesma. Para complicar o assunto, duas diferentes expressões de objetos podem resultar do mesmo código de objeto em circunstâncias praticamente idênticas. As possibilidades de sinais de comportamento único ou não intencional são infinitas, o que deve ser má notícia para os tipologistas. (p. 40)
A diferença entre o “trivial” e o “arbitrário” é fundamentalmente a mesma daquela entre a representação analógica e a representação digital. O analógico é considerado “trivial” somente por conta da evidente percepção da congruência mimética, utilizando um valor de material continuamente variável (por exemplo, a representação curvilínea de uma onda sonora). Da mesma forma, o digital é considerado “arbitrário” por conta da aparente desconexão entre um referente empírico e a aproximação matemática de sua forma utilizando quanta discretos. Contudo, ambos os modos, o “arbitrário” incluso, são governados por aquilo anteriormente definido como “transcodificação técnica sem figuração”. O que torna provocativa a afirmação de Aarseth, e que espero realmente rearticular neste artigo, é que a transcodificação técnica, ou “arbitrária”, dos sistemas simbólicos não é de modo algum uma teoria do determinismo material inerte. De fato, é o exato oposto: o fato de que a abstração e a figuração existam no software (a metáfora da interface do “desktop” como emanação funcional do código-fonte, ou quaisquer exemplos citados previamente) demonstra a indeterminação fundamental do aparato tecnológico que é, reconhecidamente, fundado em linguagem matemática determinística. É a representação na forma, e não na ação, e este é o paradoxo. É a representação enquanto recodificação matemática, e não como qualquer processo de figuração social ou culturalmente significativo, mas o que emerge no fim das contas é exatamente isso. Esse é o sentido de “as possibilidades de sinais de comportamento único ou não intencional são infinitas”. Deixe-me salientar que isso precisa ser compreendido não no “soft” sentido antropocêntrico dos intangíveis variantes interpretativos e cognitivos, mas no sentido “hard” dos sistemas materiais complexos e das inúmeras combinatórias (alguns chamariam de emergentes) possíveis que podem surgir a partir delas. Em Marx, o fetiche nunca é culpa das deficiências da mente humana, mesmo se isso siga uma lógica do mau reconhecimento. Não se deve fazer o mesmo com o software.
***
A discussão deste artigo é uma tentativa de analisar o software utilizando uma abordagem muito específica, por meio da qual a interpretação política dos objetos culturais e técnicos apresenta-se não como um estilo de leitura possível a ser modificado aqui e ali de acordo com uma preferência metodológica, mas, em vez disso, como a interpretação política dos objetos culturais e técnicos que é fundamentalmente sinônima da interpretação em si, de maneira que realizar uma é necessariamente fazer a outra (e, igualmente, ignorar a primeira é deixar pobre a segunda). Software, em outras palavras, perpetra uma pergunta na qual a interpretação política dele é a única resposta coerente. Esta é uma abordagem diferente daquela que desmascara como tal ou qual que o software pode ser portador de certa visão política de mundo. Isso não é uma teoria de ideologias, cada uma acompanhada de uma apropriadamente perspicaz crítica elaborada para desmascará-la. Minha tarefa aqui não é afirmar que o software tem um “significado” político ou não, podendo isso ser revelado por uma armação metodológica conveniente denominada intepretação política. É certa rede de relações que está em jogo: o software, o social e o ato de interpretação se combinam em um “intenso bosque mimético”, e é neste bosque, em sua própria criação, que pode ser convocado o político.
A afirmação primeira de Chun (2004) de que “o software é um análogo funcional da ideologia” (p. XX) contém todas as várias vertentes desta emergente estrutura: (1) o software e a ideologia estão relacionados de uma maneira fundamental; (2) sendo ainda uma relação de figuração pela qual as complexidades e contradições ideológicas, que em si mesmas possuem tanto os instintos utópicos como repressivos, são modeladas e simuladas a partir da estrutura formal do próprio software; (3) além disso, o software é funcional por natureza e, portanto, exacerba e ridiculariza a própria tensão entre as camadas narrativa e maquínica – as transcodificações estritamente funcionais do software, por meio de um compilador ou um intérprete de script, por exemplo, estampam no rosto do senso comum o fato de que o software tem tanto uma camada executável, que se supõe obediente às regras do aspecto puramente funcional do código (semelhante ao que Genette chama de “paratextual”, na literatura), quanto uma camada escritural, que se supõe obediente às regras semânticas e de expressão (em Deleuze, devemos lembrar, o maquínico que é o não-expressivo).
O leitor notou, sem dúvida, que tudo isso provém de um nome mais corriqueiro: alegoria. O ponto aqui não é simplesmente notar que o software é funcional, mas que a falsa resolução da tensão do software entre o maquínico e a narrativa, entre o funcional e o disciplinar, entre o fluido e a fixidez, entre o digital e o analógico, é uma figura alegórica da maneira como essas mesmas realidades políticas e sociais são “resolvidas” hoje: não pela opressão ou pela falsa consciência, tal como na crítica ortodoxa da ideologia, mas pela implacável regra do código, que propõe que o analógico dure até o fim, mostrando simplesmente que, antes de tudo, o analógico nunca existiu. E, como os autores Frederic Jameson e Northrop Frye evidenciaram, o ato de interpretação não é senão mais um momento de estruturação alegórica, na medida em que discursos paralelos ou “analógicos” são extraídos ou, se quiser, expressos através e dentro de tecnologias midiáticas (ou, antes, nos textos). De Platão em diante, essa é a lógica da ideologia. Afirmar que isto existe é afirmar que a apatia política e a canalização maquínica estão aqui ao lado da própria possibilidade de sua transcendência – caso contrário, isso não seria ideologia, mas algo como psicose. Portanto, é realmente o desejo que vem a ser o material da ideologia. É um desejo não pela falta de ideologia como em o fim da história, mas pela própria presença da ideologia enquanto um lembrete de como o sagrado “fim” precisa estar sempre contido no presente profano. Essa é uma lógica que brilha com plena elegância nas palavras de Ernst Bloch (2006 [1910-1929]), escrevendo bem no início era da máquina. “Alguém certa vez disse que as pessoas estão no Paraíso e não sabem disso; o Paraíso certamente ainda parece um pouco obscuro. Abandone tudo da declaração dele, exceto a vontade de que seja verdade – então ele estava certo” (p. 28).
Referências
Aarseth, Espen (1997) Cybertext: Perspectives on Ergodic Literature. Baltimore, MD: Johns Hopkins University Press.
Bloch, Ernst (2006[1910–29]) Traces. Stanford, CA: Stanford University Press.
Chun, Wendy Hui Kyong (2004) ‘On Software, or the Persistence of Visual Knowledge’, Grey Room 18: 26–51.
Chun, Wendy Hui Kyong (2006) Control and Freedom: Power and Paranoia in the Age of Fiber Optics. Cambridge, MA: MIT Press.
Derrida, Jacques (1994[1993]) Specters of Marx: The State of the Debt, the Work of Mourning and the New International. London: Routledge.
Gosling, J.; McGilton, H. (1996) ‘The Java Language Environment, A White Paper’, URL (consulted May 2006): http://java.sun.com/docs/white/langenv
Hayles, N. Katherine (2005) My Mother Was a Computer: Digital Subjects and Literary Texts. Chicago: University of Chicago Press.
Jameson, Fredric (1982) The Political Unconscious. London: Routledge.
Jameson, Fredric (1992) Signatures of the Visible. London: Routledge.
Kittler, Friedrich (1995) ‘There is No Software’, Ctheory, URL (consulted June 2006): http://www.ctheory.net/articles.aspx?id=74
Manovich, Lev (1996) ‘The Automation of Sight’, in Timothy Druckery (ed.) Electronic Culture: Technology and Visual Representation. New York: Aperture Books.
Mitchell, W.J.T. (2005) What Do Pictures Want? Chicago: University of Chicago Press.
Scott, Michael (2000) Programming Language Pragmatics. San Francisco: Morgan Kaufmann Publishers.
Sun Microsystems (2004) ‘Package java.lang.reflect’, URL (consulted June 2006): http://java.sun.com/j2se/1.5.0/docs/api/java/lang/reflect/package-summary.html
[1] Citamos a tese do ensaio de Chun, que reaparece reexaminada em formato livro (Chun, 2006).
[2] Aqui a discussão se volta para as demandas de formação de um novo campo intelectual a partir dos conhecidos campos “estudos de software”, “crítica de software” ou “estudos críticos da Internet”. Veja, em particular, os valiosos trabalhos de Lev Manovich, Geert Lovink, Arjen Mulder, Tiziana Terranova, Florian Cramer e Matthew Fuller.
* Na ciência da computação, a programação reflexiva condiz tecnicamente com a atividade que permite que um objeto obtenha informações sobre sua estrutura e sobre os motivos de sua computação, preservando as informações como metadados, anexando-as ao código gerado. [Nota da tradução]
** Na ciência da computação, a programação por ofuscação condiz tecnicamente com a atividade de encobrir intencionalmente os significados do código-fonte e/ou do código da máquina, normalmente com o propósito de evitar que um programa seja apropriado por engenharia reversa. [Nota da tradução]
*** Os termos hack e exploit possuem dimensões técnicas e políticas. Mais conhecido, hack refere-se normalmente ao gesto de modificar ou reconfigurar, sem autorização, um programa proprietário. O termo exploit, particularmente teorizado por Galloway, em livro publicado com Eugene Thacker (The exploit: a theory of networks. Mineapolis: UMP, 2007), ganha maior relevância política, ao tratar das táticas e estratégicas de resistência e sabotagem ao diagrama político dominante, constituído por softwares, topologias e protocolos de redes computacionais centralizadoras do poder, tomando vantagens das vulnerabilidades, falhas ou defeitos deste diagrama. [Nota da tradução]
**** Termo técnico utilizado pelos desenvolvedores de software, referindo-se ao ambiente de teste no qual as modificações ou códigos alterados são isolados até serem testados, protegendo assim funcionalidade de um programa. [Nota da tradução]
[3] Para um documento fundador da linguagem Java, discutindo esse e outros conceitos de design de linguagem, consulte: Gosling; McGilton (1996).
