O poder do JavaScript



       
        Frequentemente abreviado como JS, o JavaScript é uma linguagem de programação que permite implementar funcionalidades complexas em páginas web. Quase todas as vezes que você leitor acessa uma página na web que não é estática e que mostra em tempo real conteúdos atualizados, animações, vídeos, mapas e outros está, muito provavelmente, visualizando um conteúdo que contém JavaScript.
Originalmente a linguagem foi implementada como parte dos navegadores web para que os scripts que controlam os comportamentos das páginas HTML pudessem ser executados do lado do cliente, sendo atualmente a principal linguagem de programação client-side em navegadores web, mas não está restrita ao client-side. Com a criação e a propagação do NodeJS, o JavaScript têm sido bastante utilizado também do lado do servidor também. [1]
De acordo com sua definição, o JavaScript é uma linguagem de programação leve, interpretada,  multi-paradigma e dinâmica com funções de primeira classe. Ooops...calma...foi muito rápido para você também? Vamos lá, vamos dissecar cada um dos termos:  que significa uma linguagem de programação ser interpretada? Uma linguagem de programação pode ser convertida ou traduzida em código de máquina por interpretação ou por compilação. Em ambas ocorre a tradução do código fonte para código de máquina, porém no caso das linguagens interpretadas o texto do programa é executado à medida que vai sendo traduzido pelo interpretador. No caso dos programas compilados, todo o texto é traduzido para só depois ser executado, sendo geralmente mais rápido em tempo de execução do que as linguagens interpretadas. [2]
Multi-paradigma e dinâmica se refere ao fato de que suporta os estilos orientado a objetos, imperativo e funcional. A orientação a objetos ou POO (Programação Orientada a Objetos) é um paradigma de análise, projeto e programação de sistemas que se baseia na composição e interação de unidades de software chamadas objetos. A saber, seus pilares são: abstração, encapsulamento, herança e polimorfismo. [4] Na programação imperativa a computação é descrita como ações, enunciados ou comandos que mudam o estado (variáveis) de um programa. Está fundamentada no conceito da Máquina de Turing, que é uma abstração matemática que corresponde ao conjunto de funções computáveis. [6] No paradigma funcional, de forma bem resumida, as computações são representadas por funções ou expressões puras (retornam sempre o mesmo resultado para um dado input), evitando efeitos colaterais e dados mutáveis. [5]
Ao dizer-se que o JavaScript possui funções de primeira classe refere-se ao fato de que ela trata as funções como cidadãos de primeira classe. Isso significa que nessa linguagem funções podem ser passadas como argumentos para outras funções, retornar funções como valores de outras funções, atribuí-las a variáveis ou armazená-las em estruturas de dados. Podem até mesmo ser anônimas, ou seja, não possuem um nome. Funções primeira classe são uma necessidade para o estilo de programação funcional. [3]
Com isso, agora entendemos com maior clareza toda a definição e características principais da linguagem. Mas ao meu ver, o grande e verdadeiro poder do JavaScript está em sua versatilidade, pois podemos desenvolver aplicações web, servidor, desktop ou mobile com uma mesma linguagem. Isso é uma grande vantagem, pois pode-se reutilizar os conhecimentos para desenvolver em diversas áreas sem a necessidade de aprender ou conhecer diversas linguagens de programação.

[1] - https://developer.mozilla.org/pt-BR/docs/Aprender/JavaScript
[2] - https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/About_JavaScript
[3] - https://en.wikipedia.org/wiki/First-class_function
[4] - https://www.devmedia.com.br/os-4-pilares-da-programacao-orientada-a-objetos/9264
[5] - https://medium.com/@leandrotk_/princ%C3%ADpios-de-programa%C3%A7%C3%A3o-funcional-com-javascript-37ec5d6afab9
[6] - https://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_imperativa

Comentários

Postagens mais visitadas deste blog

Como utilizar Tag Prefix WinCC Professional

TUTORIAL: Criando WinCC Tags a partir de documentos de texto utilizando script em Python

Utilizando interfaces, inversão de controle e injeção de dependências em programação - Um exemplo em C#