Linguagens de script versus linguagens de programação: as principais diferenças

Linguagens de script versus linguagens de programação: as principais diferenças

Qual é a diferença entre Python e C++? Por que um é muito mais difícil que o outro? Por que idiomas diferentes têm escopos e alcances diferentes?

Imagem em destaque

Pegue um desenvolvedor de software aleatório e pergunte em qual linguagem ele é proficiente e provavelmente ele responderá C#, Python ou JavaScript. Continue pesquisando e alguém mencionará PHP, Java, C++ ou SQL (para alguns é uma linguagem, para outros não). Talvez você encontre algum desenvolvedor estranho que fale sobre Clojure ou Ruby. Apenas por probabilidades, seria tentador pensar que existem cerca de algumas dezenas de linguagens de programação, talvez até uma centena.

Para alguns, é uma surpresa descobrir que existem, de facto, mais próximos de 700 linguagens de programação Na natureza. Agora, para ser justo, isso inclui linguagens obsoletas, obsoletas, obscuras e piadas construídas a partir do tédio ou para provar um ponto de vista. Mas mesmo se os filtrássemos, ainda teríamos muitas maneiras de escrever código.

Na maioria dos casos, uma linguagem é criada para resolver um problema. Por exemplo, o PHP começou como um conjunto de ferramentas criadas por um único desenvolvedor para lidar com suas páginas pessoais da web. Com o tempo, as ferramentas cresceram e finalmente se fundiram na linguagem de programação de desenvolvimento web que o PHP é hoje. Python foi projetado como um sucessor do ABC que se concentraria na simplicidade e na legibilidade. Java foi projetado desde o início com a programação orientada a objetos em mente. Pesquise o suficiente e você descobrirá que cada idioma conta uma história interessante.

Você deve ter ouvido pessoas classificando linguagens em grupos diferentes, como alto ou baixo nível, dinâmico ou estático e programação ou script. Este último caso é aquele que quero focar hoje. Compreender a diferença entre scripts nos dará insights importantes sobre o valor de cada um de nossos projetos.

O que é uma linguagem de computador?

Basicamente, uma linguagem de computador é um conjunto de regras que facilitam a comunicação entre humanos e computadores. É uma ponte que nos permite dar instruções ao computador. Existem diferentes idiomas para diferentes propósitos. Por exemplo, linguagens de comando são utilizadas para controlar as tarefas do próprio computador, como iniciar programas, e linguagens de consulta são utilizadas para fazer consultas em bancos de dados e sistemas de informação.

Os computadores não entendem a linguagem como nós. Se eu gritar para uma CPU “Quanto é 2+2?” ele não consegue me entender (e as pessoas provavelmente vão me olhar de forma engraçada). Abaixo da interface do usuário, as informações estão sendo processadas em termos de 0 e 1, dados binários. Isso é o que chamamos de código de máquina. Em teoria, um ser humano com esforço e força de vontade suficientes poderia compreender o que esses 0 e 1 significam, mas para a maioria de nós, isso é simplesmente impossível.

Assim, tal como um visitante de um país diferente que contrata os serviços de um tradutor, utilizamos linguagens de computador como forma de traduzir a nossa intenção em código de máquina. Essas linguagens podem ser subdivididas em níveis dependendo de quão próximas estão de sua contraparte de máquina. Para fins resumidos, vamos dividi-los em 2 níveis:

  • Linguagem humana
  • Linguagens de alto nível
  • Linguagens de baixo nível
  • Código da máquina

O principal exemplo de linguagem de baixo nível é Assembly, ou asm, em que cada instrução equivale a 1 instrução de máquina. Em outras palavras, o engenheiro tem controle absoluto sobre como as informações são tratadas. Embora as linguagens de baixo nível em termos de desempenho sejam imbatíveis, escrever código costuma ser difícil e demorado.

As linguagens de alto nível, por outro lado, tendem a estar mais próximas da linguagem humana. Caso em questão, mesmo não-programadores podem ler e ter uma ideia aproximada do que um código python está tentando realizar. Infelizmente, essas linguagens tendem a ser lentas em comparação com suas irmãs de baixo nível.

Programação versus script

Critério Linguagens de script Linguagens de programação
Definição Um tipo de linguagem de programação que automatiza tarefas e controla outros softwares Um conjunto de instruções usadas para criar aplicativos de software e controlar o comportamento do computador
Compilação Interpretado em tempo de execução, sem necessidade de compilação Geralmente compilado em código de máquina antes do tempo de execução
Velocidade Mais lento devido à interpretação em tempo de execução Mais rápido porque o código compilado é executado diretamente na CPU
Fácil de usar Geralmente mais fácil de aprender e usar, geralmente de alto nível com sintaxe simples Pode ser de baixo ou alto nível, com vários graus de complexidade
Casos de uso Freqüentemente usado para desenvolvimento web, automação, processamento de texto, etc. Usado para uma ampla gama de aplicações, de sistemas operacionais a jogos
Exemplos JavaScript, Python, Ruby C, C++, Java, Ferrugem
Interatividade Frequentemente usado para criar aspectos interativos em páginas da web Pode ou não ter recursos interativos dependendo da linguagem e do ambiente de desenvolvimento
Organização de arquivos Frequentemente usado de maneira independente com um ou poucos arquivos Grandes projetos normalmente são organizados em muitos arquivos e diretórios
Acesso aos recursos do sistema Acesso normalmente limitado aos recursos do sistema por motivos de segurança Acesso total aos recursos do sistema
Verificação de erros Os erros normalmente são verificados em tempo de execução Os erros normalmente são verificados durante a compilação
Curva de aprendizado Curva de aprendizado mais fácil devido a abstrações de alto nível e simplicidade Curva de aprendizado mais acentuada, especialmente para idiomas de baixo nível
Integração Frequentemente usado para unir componentes e aplicativos ou para automatizar interações entre sistemas Usado para construir aplicativos ou componentes independentes que podem ser colados usando scripts de linguagem

Quando falamos sobre linguagens de programação, muitas vezes nos referimos a linguagens usadas para construir software do zero – apenas para mencionar os exemplos mais populares, temos C, C++, C#, Rust e Java. O que todos eles têm em comum é que essas linguagens são compiladas. Em outras palavras, depois de terminar de escrever seu programa, você o traduz em código de máquina (ou uma alternativa semelhante de baixo nível) para que possa ser executado imediatamente.

As linguagens de script, por outro lado, são usadas para manipular, personalizar e automatizar as instalações de um sistema existente. Por exemplo, digamos que eu queira escrever um script (um conjunto de instruções de computador) que baixe dados da web e os salve automaticamente em meu disco rígido. Não preciso escrever um novo software para fazer isso, apenas dar instruções sobre o que já tenho.

Ao contrário das linguagens compiladas, as linguagens de script são frequentemente interpretadas. Em outras palavras, outro software lê o código linha por linha durante a execução e o traduz em código de máquina, retornando um erro se encontrar algum problema em uma linha.

Como as linguagens de script não são projetadas para escrever programas completos, elas são mais lentas e consomem mais energia do que as linguagens de programação. As linguagens mais populares hoje em dia são, na verdade, consideradas linguagens de script (como JavaScript ou LUA). Mas espere, isso não faz sentido, certo?

Por um lado, você pode escrever código JavaScript definitivamente e compilá-lo usando o mecanismo JS. E quanto ao Python? É interpretada, mas é considerada por muitas pessoas como uma linguagem de programação. Então o que acontece?

Para ser honesto, a diferença entre linguagens de script e linguagens de programação tornou-se bastante confusa nas últimas décadas. A maioria das linguagens modernas e populares tem o suficiente para realizar qualquer uma das tarefas com relativa facilidade. Dito isto, nenhuma pessoa sã pensaria em desenvolver um sistema operacional ou um mecanismo de videogame em JavaScript.

Quando usar um ou outro

Embora linguagens de alto nível possam escrever programas, nem todo programa deve ser escrito com uma. O desenvolvimento de software complexo e em termos de desempenho requer soluções de baixo nível que se concentrem na economia e na eficiência. Para ser justo, a maioria dos aplicativos básicos pode ser escrita e executada em uma linguagem como Python sem se preocupar com o desempenho. Sim, pode ser mil vezes mais lento que C++, mas essa é a diferença entre 0,01 segundos e 0,00001 segundos. Mais lento, sim, mas nunca notaremos isso.

Agora, os motores de jogos, por exemplo, precisam executar milhões de cálculos por minuto. Vá assistir a qualquer filme da Pixar. Cada personagem, cada textura e cada luz foram calculados por um computador – estes são os casos em que cada milissegundo conta. Da mesma forma, os sistemas operacionais que gerenciam software diretamente precisam, por natureza, ser compilados em código de máquina, algo que as linguagens interpretadas simplesmente não podem fazer.

Se você estiver criando algo destinado a manipular um sistema existente, usará uma linguagem de script. Se você pretende construir software, pode usar uma linguagem de programação de alto ou baixo nível. Você poderia até usar ambos, escrevendo algumas partes em C ou Assembly e deixando o Python cuidar do resto.

Linguagens de alto nível e linguagens de script são mais fáceis de usar, mais rápidas de depurar e mais fáceis de usar — ​​esse é seu principal ponto forte. Linguagens de baixo nível são potências capazes de fazer muito mais, mas exigem mais conhecimento.

Conteúdo Relacionado

Voltar para o blog

Deixe um comentário

Os comentários precisam ser aprovados antes da publicação.