Qual é a diferença entre as linguagens de programação?

Com o passar do tempo, diversas linguagens de programação foram surgindo com propostas diversas para múltiplos fins. Mas entre elas, uma característica se destaca: a grande maioria das linguagens será dividida em compiladas e interpretadas. Qual a diferença, entretanto?

O que significa?

Sabemos que os compiladores e interpretadores recebem e leem o código, traduzindo-o de uma linguagem que pode ser lida por seres humanos para uma linguagem de máquina que o computador consegue entender.

Com uma linguagem compilada, a máquina compila o código antes de executá-lo, ou seja, o próprio computador traduz o programa diretamente. Já uma linguagem interpretada tem um intermediário, que é o interpretador. Ele lê e executa o código.

Para facilitar, podemos exemplificar: imagine que você tem uma receita de bolo que está em japonês. Se você ou qualquer outra pessoa que fala o idioma consegue ler e fazer a receita por si só (linguagem compilada). Agora, você não fala japonês, mas tem um amigo que sim. Quando você estiver pronto para confeccionar o bolo, ele pode sentar ao seu lado e ir lendo as instruções para você (linguagem interpretada).

Linguagem Compilada

As linguagens compiladas são convertidas em uma linguagem que o computador pode ler, ou seja, linguagem de máquina. Isso garante que elas sejam mais rápidas e eficientes em sua execução. Também dá ao desenvolvedor mais controle e segurança, pois permite que ele consiga manipular o hardware e que os erros de código sejam mostrados no momento da compilação do programa.

No momento da montagem do código (build), este é traduzido para linguagem de máquina. Isso quer dizer que sempre que alguma parte do código for alterada, será necessário realizar o ‘build’ novamente.

Exemplos de linguagens compiladas: C e C++, Rust, Erlang, Haskell e Go

Linguagem Interpretada

Esse tipo de linguagem o interpretador le linha por linha do codigo, executando o codigo de maneira ordeira. Assim caso seja necessario algum tipo de alteracao basta tirar o antigo e colocar um novo codigo.

Com essa explicação, fica subentendido que uma linguagem interpretada é muito lenta, mas isso não é mais verdade. Antigamente, havia uma diferença até significativa, porém, com o desenvolvimento da compilação just-in-time, essa diferença vem se tornando cada vez menor.

Exemplos de linguagens interpretadas: JavaScript, Ruby, Python e PHP

Pequena observação

A maioria das linguagens de programação pode ter implementações compiladas e interpretadas, o que significa que elas não necessariamente são compiladas ou interpretadas. No entanto, por uma questão de simplificação, as pessoas geralmente se referem a elas dessa maneira.

Por exemplo, o Python pode ser executado como um programa compilado ou como uma linguagem interpretada em um modo interativo. Por outro lado, teoricamente, a maioria das ferramentas de linha de comando, ou CLIs, e shells pode ser classificada como linguagens interpretadas.

Vantagens e Desvantagens

Vantagens das linguagens compiladas:

Os programas compilados em código de máquina nativo tendem a ser mais rápidos que o código interpretado. Isso ocorre porque o processo de traduzir o código em tempo de execução aumenta o tempo do processo, podendo fazer com que o programa seja, em geral, mais lento.

Desvantagens das linguagens compiladas:

As desvantagens mais notáveis são:

  • Tempo adicional necessário para concluir toda a etapa de compilação antes dos testes.
  • Dependência da plataforma do código binário gerado.

Vantagens das linguagens interpretadas:

As linguagens interpretadas tendem a ser mais flexíveis, geralmente oferecendo recursos como digitação dinâmica e tamanho reduzido de programa. Além disso, como os interpretadores executam o código fonte do programa por conta própria, o código não depende da plataforma.

Desvantagens das linguagens interpretadas:

A desvantagem mais notável é a velocidade típica de execução em comparação com as linguagens compiladas.