SOFTWARE

A. O conjunto de instruções, regras e dados que governam o funcionamento de um sistema de processamento de informação. Etimologicamente, o termo (cunhado por John Tukey em 1958, por analogia irônica com hardware) designa a parte "mole", modificável e fluida do sistema. É o componente lógico que instrui o componente físico sobre o que fazer e como fazer.

B. Considerado como obra do espírito, o software é um texto escrito numa linguagem formal (código-fonte) destinado a ser traduzido (compilado ou interpretado) para a linguagem de máquina. Diferentemente de outros textos (literários ou jurídicos), o software possui uma eficácia performativa imediata: a sua leitura pela máquina causa uma alteração de estado no mundo físico (acender um pixel, gravar um disco, enviar um sinal).


Crítica

A natureza do software levantou a questão de se a sua existência é independente do suporte. Um algoritmo de ordenação (ex: Quicksort) existe como entidade matemática abstrata e intemporal. No entanto, o software propriamente dito só se "realiza" quando instanciado num suporte físico (disco, memória). Um programa impresso em papel é software em potência, mas é literatura de fato; só se torna software em ato quando carregado num hardware.

A "suavidade" (softness) implicada no nome é muitas vezes ilusória na prática da engenharia (ver Dívida Técnica). Sistemas de software complexos e antigos ("legado") podem tornar-se extremamente rígidos, difíceis de alterar e frágeis, exibindo uma "viscosidade" que contradiz a facilidade da sua modificação, possivelmente indicada pelo termo. Neste sentido, o software pode tornar-se "mais duro" que o hardware, uma vez que substituir um servidor físico é frequentemente mais fácil do que reescrever o sistema bancário que corre nele.


Observações

Na arquitetura de von Neumann (o modelo da maioria dos computadores modernos), o software reside na memória ao lado dos dados que processa. Sob este aspecto, o software é também um dado: pode ser lido, copiado, modificado e apagado por outro software.

Na hierarquia da computação, distingue-se habitualmente: 1. Software de Sistema: A infraestrutura básica que gere o hardware e fornece serviços comuns (Sistema Operacional, Drivers, BIOS/UEFI). É o intermediário necessário entre o físico e o lógico. 2. Software de Aplicação: Os programas destinados a realizar tarefas específicas para o utilizador (processamento de texto, navegação na web, jogos). Utiliza os serviços do sistema para não ter de lidar diretamente com a complexidade do hardware.