Já trabalhei com Delphi que é uma linguagem Compilada e realmente é bastante lenta comparada com um sistema desktop feito em java. Mais atualmente a maioria dos sistemas segue o desenvolvimento na WEB , onde grande parte são do tipo interpretadas.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Já trabalhei com Delphi que é uma linguagem Compilada e realmente é bastante lenta comparada com um sistema desktop feito em java. Mais atualmente a maioria dos sistemas segue o desenvolvimento na WEB , onde grande parte são do tipo interpretadas.
Oi, Moacir, tudo bem ?
Desculpa a demora em te responder!
Como você mencionou, para que linguagens compiladas possam ser executadas, é preciso ter um tempo para realizar a tradução do código fonte. O ato de compilar implica em unir tudo de uma única vez. São necessários alguns passos para compilar e isso pode levar alguns segundos ou minutos, mas feito isso, não é necessário fazer mais todo esse processo, a não ser que o código seja alterado. Para executar em outra máquina, é necessário traduzir em cada uma, pois os compiladores transformam todo o código-fonte em código de máquina.
Já no caso dos interpretadores podem traduzir e executar o código fonte sem a necessidade de gerar um novo arquivo, ou seja, a tradução acontece em tempo real, dessa forma os erros só podem ser percebidos ao executar o código e isso faz com que haja perdas na performance. Contudo, por possibilitar uma tradução simultânea eles conseguem ser executados em diferentes máquinas.
O JIT (Just in time compilation ou compilação na hora certa) esse tipo de tradução também é conhecido como tradução dinâmica e consiste em traduzir o código em um formato intermediário que depois é interpretado por diversas máquinas.
Desse modo, temos a vantagem de um programa compilado que permite uma execução mais rápida e de uma linguagem interpretada que pode ser executada em diferentes máquinas, tudo isso simultaneamente num mesmo tipo de linguagem.
Utilizando o Java, que você mencionou como exemplo, ele é um sistema que traduz o código fonte utilizando um compilador para uma linguagem conhecida como Byte Code, que atua como uma linguagem intermediária. Em seguida essa linguagem intermediária é interpretada pelo JVM (máquina virtual Java) e executada.
Perceba que ao mesmo tempo e em uma mesma linguagem utilizamos tanto um compilador quanto um interpretador para podermos nos aproveitar das vantagens de cada um.
Vale ressaltar que a maioria das linguagens de programação pode ter implementações compiladas e interpretadas – a linguagem em si não é necessariamente compilada ou interpretada. Porém, para fins de simplicidade, elas são normalmente referidas deste modo.
Com isso, é preciso entender qual a necessidade da nossa aplicação para conseguir escolher a linguagem que melhor se adapta ao contexto em que ela será inserida, permitindo a otimização do processo e dos resultados, e ter experiência com diferentes linguagens é essencial para conseguir entender como cada uma delas atua no dia a dia de uma pessoa desenvolvedora.
Continue se dedicando em seus estudos para aprimorar ainda mais suas habilidades e desenvolver seus conhecimentos e caso tenha dúvidas, estarei à disposição.
Grande abraço!