Exploring the Potential of Javascript
Por: João Gabriel Lima • 19/1/2019 • Artigo • 3.174 Palavras (13 Páginas) • 272 Visualizações
1
Exploring the potential of Javascript
Nosso primeiro passo, para a construção do conhecimento proposto neste livro, será explorarmos o potencial da linguagem javascript e entendermos porque ela vem crescendo cada dia mais no mercado. Atualmente, como veremos em detalhes neste capítulo, podemos encontrar esta linguagem em praticamente todos os lugares do meio digital, desde sua aplicação mais simples em qualquer website, até embarcada em microcontroladores, drones, carros inteligentes e totalmente bem adaptada à realidade da internet das coisas.
Neste capítulo cobriremos os seguintes pontos:
- Apresentar porque javascript se tornou um requisito básico para o mundo da programação conectada
- Mostrar as diversas forma de modularizar uma biblioteca ou uma aplicação para ser reutilizada
- Explicar o funcionamento do Nodejs em seu núcleo central
- Iniciar a construção e execução dos primeiros scripts como base para a aplicação do conhecimento apresentado neste livro
A evolução do Javascript
Trata-se de uma linguagem incrivelmente fácil de aprender, e que atualmente é o requisito mais básico de qualquer desenvolvedor web. Todos os dias, nos deparamos com o surgimento de novas bibliotecas e soluções envolvendo esta linguagem. Com uma enorme comunidade de desenvolvedores e com milhares de fontes de conhecimento, sejam em formato de vídeos, artigos, tutoriais e ou sites especializados, destinados a profissionais que querem aprimorar os conhecimentos sobre a linguagem.
Estamos diante de uma grande expansão da linguagem, dentre os diversos meios, podemos destacar aplicativos para desktop, que, por incrível que pareça, é um nicho e uma tendência de desenvolvimento utilizando a linguagem (como Spotify, Slack etc.), além disso temos os incríveis subsets, como o asm.js, que proporcionam executar programas escritos em outras linguagens, como C, em JavaScript, promovendo a capacidade de expansão da linguagem embarcada em soluções no contexto de IoT – Internet das Coisas.
Tratando-se de IoT, uma das mais fascinantes utilizações de javascript “fora do browser” podem ser encontradas na comunidade NodeBot (http://nodebots.io/), que reúne projetos e iniciativas ao redor do mundo para a criação de robôs ou soluções eletrônicas utilizando javascript.
Um dos módulos mais famosos é o Jhonny-five (http://johnny-five.io/) que pode ser usado para a construção de aplicações que irão ser executadas em placas compatíveis com Arduíno (https://www.arduino.cc/). São inúmeras as soluções que surgem através do uso destas ferramentas, é comum encontrarmos projetos de Dones, robôs para competições, smarthomes, utilizando a linguagem javascript. Abaixo segue um exemplo de código usando a biblioteca jhonny-five para acender um LED:
var five = require("johnny-five");
var board = new five.Board();
board.on("ready", function() {
var led = new five.Led(13);
led.blink(500);
});
Em um mundo altamente conectado, um seguimento que vem evoluindo constantemente é o das SmartTVs. É comum vermos atualizações e melhorias sendo lançadas aumentando a concorrência entre as fabricantes. O que isso tem a ver com javascript? Simples. Você pode construir aplicativos para as SmartTvs com tecnologias Web – HTML, CSS, JavaScriot. Cada fabricante tem seu próprio sistema operacional, que irá suportar estas aplicações, podemos tomar como exemplo, a Samsung (http://developer.samsung.com/) com o sistema Tizen e a LG (https://developer.lge.com) que trás em suas TVs o WebOS. Ambas fabricantes disponibilizam seus SDK e diversos tutoriais que guiarão o usuário para a construção de aplicações para suas SmartTVs.
Além da Web, temos javascript no desktop, embarcado em robôs, drones e soluções de IoT, o que mais temos o poder desta linguagem?
A General Motors, multinacional, montadora de automóveis, com mais de 100 anos de história, fabricantes de alguns dos automóveis mas vendidos no mundo, possui uma plataforma chamada de NGI – Next Generation Infotainment (https://developer.gm.com/ngi) trata-se de um computador de bordo completo com diversas funções, onde executa aplicações construídas sobre tecnologias Web, ou seja, com os seus conhecimento de javascript, você poderá construir aplicações para seu veículo, acessando, no caso do NGI, mais 350 sinais de dados. A ferramenta vem com um CLI – Command Line Interface que facilita o trabalho na criação e execução de projetos, além de possuir também um emulador para auxiliar na implementação dos Apps.
Como você pode ver, javascript tem um enorme potencial e hoje já é reconhecida como uma linguagem eficiente, simples de usar e, principalmente, confiável.
Diante disso, percebemos que javascript é uma linguagem altamente portável. Um dos fatores que contribuem para esta portabilidade, é a sua arquitetura orientada a eventos. Esta é perfeita para representar como o mundo real funciona, ao reagir a eventos de entrada e saída, como cliques no botão ou informações recebidas de sensores.
Neste livro, vamos explorar a capacidade do javascript ser utilizada para a construção de soluções de aprendizagem de máquina, ou seja, agora terá inteligência, será capaz de aprender com seus usuários e ,principalmente, reproduzir padrões.
Modularização – distribuindo e reutilizando scripts
Agora, precisamos compreender que existem regras, padrões, especificações e modelos para a construção de projetos javascript, que estão muito além dos padrões sugeridos pelos diversos frameworks e bibliotecas disponíveis no mercado. Esta seção irá mostar quais são esses padrões. Principalmente, compreender como distribuir nossas implementações, modularizando o código-fonte. Seguir estas estratégias lhe dará a garantia de total extensibilidade e reutilização do código.
Neste contexto, temos três famosas especificações: AMD (Asynchronous Module Definition), CommonJS e UMD (Universal Module Definition).
Asynchronous Module Definition
Naturalmente você já deve ter visto diversas implementações que utilizam este formado de especificação de módulos. Sua utilização tornou-se famosa e muito comum na comunidade com o surgimento do RequireJS – em resumo, um carregador de módulos e otimizador, trazendo ganhos para velocidade e qualidade das implementações em javascript. O formato de um módulo escrito em AMD é:
define('newmodule', [ 'jquery' ], function( $ ) {
return 'Exploring the potential of javascript';
});
Essa é a estrutura básica de um módulo AMD. A função define será usada para criar um novo módulo. Vamos analisar os parâmetros:
...