Vamos falar sobre JavaScript?

Rodolfo Olivieri | junho de 2020

Vamos falar sobre programação? No post de hoje vamos falar sobre uma linguagem mundialmente utilizada por programadores, designers, estudantes e entusiastas de programação… Consegue adivinhar qual linguagem vamos abordar? (Acertou! É o nosso querido JavaScript!)

javascript

Introdução: Afinal, o que é JavaScript?

Eu já ouvi esse nome antes… JavaScript não é igual aquela outra linguagem? Java, não é?

— Leitor, 2020.

O JavaScript (carinhosamente abreviado como JS) é uma linguagem interpretada e estruturada de alto nível, possui uma tipagem dinâmica e fraca, e é considerada como uma linguagem de multiparadigma. Hoje em dia, existe um órgão internacional chamado Ecma International que toma conta do JavaScript para coordenar a evolução da linguagem.

O nome Ecma International surgiu em 1994 após a organização tomar a decisão de refletir as suas atividades de forma internacional. Até então, a organização era conhecida apenas como Ecma desde sua criação em 1961.

O nome Ecma é um acrônimo para:

  • European
  • Computer
  • Manufacturers
  • Association

Conforme a linguagem evoluiu desde o seu lançamento, a Ecma International resolveu criar especificações chamadas de ECMAScript para o nosso querido JS. Dessa forma, a organização conseguiria montar um padrão de organização para todas as aplicações que desejam dar suporte ao JavaScript. Atualmente, o JavaScript é documentado no padrão ECMA-262.

programação

Vale ressaltar que o padrão ECMA-262 é aprovado pela ISO, mais especificamente a ISO-16262, e esse padrão não abrange as especificações do DOM (vamos explicar o que é DOM logo logo) que estamos acostumados a ver quando utilizamos o JavaScript voltado para desenvolvimento web. Para isso, temos um órgão que descreve e padroniza esse padrão, o famoso World Wide Web Consortium (W3C).

Agora que temos uma pequena introdução sobre o que é o JavaScript e quem cria os padrões para a linguagem, podemos passar para os próximos tópicos!

Ah, aqui vai uma curiosidade sobre o “Java” em JavaScript!

Quando o JavaScript foi criado, ele inicialmente tinha outro nome: “LiveScript”. Mas o Java era muito popular na época, então foi decidido que o posicionamento de uma nova linguagem como um “irmão mais novo” do Java ajudaria.

Mas, à medida que evoluía, o JavaScript se tornou uma linguagem totalmente independente, com sua própria especificação chamada ECMAScript, e agora não tem nenhuma relação com o Java.

Javascript.info, 2020.

Certo… Bacana… Mas aonde posso utilizar essa linguagem???

Agora que já vimos o que é JavaScript e quem a mantém, vamos falar um pouco sobre aonde podemos utilizá-la.

Por ser uma linguagem multiplataforma, podemos escrever códigos que serão executados em diversas plataformas. Para ilustrar, aqui estão alguns cenários aonde podemos rodar nosso código:

  • Browser (Firefox, Chrome, Edge etc…)
  • Desktop (Node.js V8, DENO etc…)
  • IOT (Node-RED, Johnny-Five, Cylon etc…)
  • Mobile (React Native, Native Script, Ionic etc…)

Perceba que existe mais de uma opção para utilização do JavaScript dentro das plataformas que queremos usar, por exemplo, podemos rodar nosso código em browsers, desktops, IOT e por aí vai… Legal, né?

Nesse momento, você deve estar se perguntando:

Poxa, que maneiro, uma única linguagem consegue ser executada em diversas plataformas! Mas será que eu preciso escrever códigos diferentes para essas plataformas? Será que o código que escrevi em Desktop pode ser executado em IOT ou até mesmo no Browser???

— Leitor, 2020.

Bom, a resposta curta para essa dúvida é: “Sim” e “Não”.

javascript & o que é programação

Vamos explicar a diferença entre essas plataformas com um pouco de código, certo?

Para isso, leve em consideração o seguinte código que pode ser executado em qualquer navegador:

javascript

Legal! Agora que vimos um caso de execução de código em JavaScript em um browser, vamos ver o que esse mesmo código faz quando é executado em um desktop utilizando o Node.JS?

o que é javascript

Perceba que o node diz para a gente que document não está definido. Isso acontece pois a variável document é fornecida pelos navegadores através do DOM.

DOM é um acrônimo para:

  • Document
  • Object
  • Model

Portanto, certas funções que são executadas dentro de um browser, não podem ser executadas direto em um desktop ou até mesmo em IOT, que possuí instruções mais específicas para hardware.

Bacana! Mas como ficaria o mesmo código se fossemos rodar ele em um desktop?

Perceba que agora conseguimos rodar nosso código no desktop! Como não temos o DOM disponível em outras plataformas fora do browser, podemos chegar ao mesmo resultado atribuindo uma string a nossa variável.

o que é programação

Apesar do JavaScript manter um padrão da linguagem entre as diferentes plataformas, é possível ver que temos algumas particularidades entre elas. Portanto, dando continuidade a resposta do “sim” e “não”, é possível sim escrever o mesmo código JavaScript entre as plataformas, mas não é possível utilizá-lo da mesma forma entre as diferentes plataformas, sendo necessário fazer alguns ajustes para o mesmo código funcionar corretamente na plataforma desejada!

Trago aqui um exemplo de uma exceção a essa regra. O framework Ionic permite escrever códigos que serão executados em um navegador, mas que também podem ser executados em plataformas mobile sem precisar de edição. Legal, né?

Existem diversos outros frameworks que fazem o mesmo trabalho do Ionic para permitir escrever apenas um único código e executá-lo em diversas plataformas.

Legal! Vou sair programando em diversas platafo… Calma lá, jovem!

O JavaScript é uma linguagem bem documentada e com diversos tutoriais, artigos e vídeos que vão te ensinar de uma forma mais aprofundada como a linguagem funciona. Porém, eu gostaria de fazer uma menção aos frameworks e bibliotecas que são componentes essenciais ao desenvolvimento de qualquer aplicação!

Frameworks? Bibliotecas? Que papo é esse…

— Leitor, 2020.

Vamos definir primeiro o que é um framework, beleza?

Um framework, de modo geral, é um modelo de códigos já existentes para uma função específica necessária ao desenvolvimento de outros softwares.

Em outras palavras, trata-se de uma ferramenta que une códigos comuns a diversos projetos para que o desenvolvedor não precise programar um código novo para funções que já existem.

Blog da Revelo, 2019.

Legal, mas e o que são as bibliotecas?

Se você tiver que fazer um trabalho de matemática, por exemplo, poderá ir até uma biblioteca física, pegar um livro e utilizar equações desenvolvidas no livro. Então, não será preciso desenvolver as equações desde o início. Em outras palavras, você não precisa reinventar a roda! Ainda bem, né?

Em programação, a biblioteca possui a mesma função. Desenvolvedores disponibilizam bibliotecas que possuem muitas funções prontas. Assim, outros programadores podem utilizá-las, permitindo que o desenvolvimento seja mais fácil e rápido.

Zanette, 2017.

À primeira vista, pode parecer que frameworks e bibliotecas (libs) são a mesma coisa. Porém, quando analisamos de uma forma mais profunda a diferença entre ambas, percebemos que frameworks são mais robustos que as libs. Segue alguns exemplos de frameworks e libs disponibilizadas pela comunidade do JavaScript.

Frameworks:

  • Angular (Utilizado para desenvolvimento Web & Mobile)
  • Vue.js (Utilizado para desenvolvimento Web)
  • Meteor (Utilizado para desenvolvimento Backend)

Bibliotecas:

  • React (Utilizado para desenvolvimento Web & Mobile)
  • Inquirer (Utilizado para desenvolvedor programas em CLI)
  • D3 (Utilizado para montar visualizações de gráficos)

Buscando mais conteúdo sobre tecnologia? Então leia Teste de Software: se você está corrigindo muitos erros no produto final, você está fazendo isso errado!

Palavras finais

JavaScript é uma linguagem utilizada pelo mundo todo e com certeza é uma das linguagens que contém o maior número de artigos, tutoriais e vídeos. De fato, é uma ótima linguagem para se aprofundar e, como vimos nesse post, o uso dela pode ser bem amplo, podendo rodar de navegadores até mesmo em aplicações mobile!

Caso haja interesse em aprender mais sobre a linguagem, recomendo as seguintes fontes de estudo, são ótimas e bem explicativas!

Referências

Rodolfo Olivieri