As desvantagens e dificuldades do Assembly

Agora que você já leu sobre ‘A melhor linguagem de programação’, e sabe da santa verdade, vamos entrar em detalhes sobre o uso do
Assembly.

Nesse artigo vamos discutir as as
desvantagens da linguagem.
Vamos mostrar os problemas de se programar nessa linguagem e que vão pesar na hora de você decidir que tecnologia deve usar para seu sistema.

Quando não se deve usar Assembly

Embora seja uma poderosa e importantíssima linguagem,
louvar e querer usar sempre o Assembly, para qualquer tarefa, é algo totalmente
inviável.
Para deixarmos o leitor da apostila Assembly Progressivo informado e realista, vamos começar falando das desvantagens dessa linguagem de
programação.

Complexidade dos programas em Assembly

Não vamos mentir nem tentar esconder nada: Assembly é a
linguagem mais difícil sim.
Não é tão óbvia e simples de se aprender, como Python ou
Visual Basic.
Isso não quer dizer que é impossível de se programar em
Assembly, só quer dizer que você terá que se dedicar mais ao estudo da
linguagem.

Configurações específicas para programar em Assembly

A grande diferença, ou sacada, da linguagem Java é que é
multi-plataforma.
Ou seja, criando um programa em Windows, ele rodará num
sistema Linux ou MacOS, não importando a arquitetura de seu computador.
Aliás, não precisa nem ser computador, várias outras
linguagens rodam dispositivos móveis, tablets, TV Digital etc.

Como explicamos no artigo sobre Como Programar em Assembly, precisamos programar especificamente para cada tipo de arquitetura,
pois há diferenças nos tipos de Assembly.
Logo, Assembly não é portável. Você não pode criar um programa
em Assembly e garantir que ele vá rodar em outros sistemas.

Essa é uma das grandes vantagens de programação voltadas
para web, como PHP, JavaScript e a linguagem de marcação HTML, elas só dependem
do navegador, não dependem do sistema operacional, muito menos de um tipo
específico de processador, como precisa as variáveis do Assembly.


























Baixa produtividade do programador Assembly

Quem é iniciante ou programa por hobbie, provavelmente
nunca se preocupou com produtividade.
Mas quem trabalha e depende disso como meio de vida, sabe
que não basta usar bem uma linguagem de programação ou saber muito de
computação: você terá chefe e prazos.

As vezes deixamos de lado uma linguagem poderosa e
eficiente (como Assembly, C ou C++) e optamos por uma mais lenta e menos poderosa,
como Java ou C# simplesmente porque precisamos ser produtivos, ou seja,
precisamos produzir mais em menos tempo.

Uma aplicação que você faz em algumas horas em Java,
Python ou Perl, levaria semanas ou meses para fazer em Assembly. Os códigos em
Assembly são longos, cheios de detalhes e pormenores, o programador fica a
cargo de tudo.

Assembly é uma linguagem crua e com poucos ‘recursos’

Não importa qual seja o programa que vá criar, para uma
empresa, loja ou um jogo, boa parte do que você precisa já está feito em Java
ou C#, na forma de API’s e Frameworks, que são recursos prontos que você pode
usar em suas aplicações.

Já em Assembly as coisas não vêm prontas, não há uma
infinidade de bibliotecas, funções e recursos feitos e prontos do jeito, e do
tanto, que as linguagens de alto nível. Logo, é necessário criar mais códigos e
programas para fazer algo nessa linguagem.

Difícil manutenção de código Assembly

Os iniciantes talvez não vão entender bem isso, mas em
empresas, não basta apenas escrever o código para o programa funcionar. Códigos
fonte sempre são alterados com o tempo.
Por isso é importante fazer um código ‘legível’, de fácil
entendimento, comentado e documentado para que outras pessoas (ou você no
futuro) possam ler e entender depois.

Como os códigos em Assembly geralmente são grandes, não
são tão óbvios e fáceis de entender (em algumas linguagens, como Python, basta
passar o olho no código para entender o que está ocorrendo).  Portanto, códigos em Assembly costumam dar
trabalho para se fazer a manutenção.

Veja também: