Vantagens e desvantagens da linguagem de máquina |
O objetivo de qualquer linguagem de programação é transformar um computador de um peso para papéis caro em um dispositivo útil de processamento e armazenamento de dados. A linguagem escolhida para realizar essa tarefa deve estar equilibrada entre a eficiência e a facilidade de uso. A linguagem de máquina representa os extremos do espectro para ambos fatores.
A linguagem de máquina produz o único conjunto de instruções que um computador entende sem um tradutor. Os computadores conseguem reproduzir áudio e vídeo, processar e armazenar dados, comunicar-se com a internet e realizar outras tarefas especializadas, respondendo a um conjunto de instruções que reconhece apenas uns e zeros. Escrever centenas de linhas de código com apenas uns e zeros é uma tarea entediante que contribui à popularidade de linguagens de nível alto, como o C e o Java.
Vantagens iniciais
O primeiro computador pessoal da IBM estava equipado com 512 KB de memória de acesso aleatório e uma unidade de disco flexível de 360 KB. Depois de que o sistema operacional era carregado na memória a partir do disco flexível, os programas eram carregados no espaço de memória restante, deixando uma pequena área da memória RAM, geralmente menos de 100 KB, para que o programa ativo processasse dados. Durante esse período, a preocupação principal de um programador era criar códigos concisos e eficientes. A ferramenta de programação mais usada nesses computadores era a linguagem de máquina, que pode ser consideravelmente menor do que uma versão escrita em BASIC ou C. Também era um pouco mais fácil usar a linguagem de montagem (assembly).
A linguagem de máquina aponta diretamente ao hardware do computador, dando ao programador um controle completo de cada aspecto da execução de um programa. A desvantagem dessa abordagem é que o programador deve conhecer a arquitetura de cada conjunto de circuitos integrados (chipset) para escrever um código eficaz. Quando um componente como uma placa de vídeo ou controlador de disco é alterado, o código deve ser atualizado para reconhecer e utilizar o novo dispositivo.
Linguagens de nível alto
As vantagens na velocidade e no menor uso de memória da linguagem de máquina são superadas pela dificuldade de escrever instruções a nível de chip em código binário. A disponibilidade de gigabytes de RAM e terabytes de armazenagem eliminou a necessidade de ter código conciso e eficiente nos computadores pessoais modernos. As demandas adicionais de memória e armazenamento dos programas escritos em linguagens de nível alto, tais como o C e o Java, não são mais um fator ao escolher uma plataforma de desenvolvimento. As facilidades de uso e manutenção são fatores preferidos à velocidade e à eficiência na maioria dos projetos de software modernos.