Por que você deve aprender JavaScript?

JavaScript é uma linguagem interpretada que surgiu em meados de 1995, com o intuito de executar scripts diretamente no seu browser, sem a necessidade de executar no servidor, como é o caso do Java, PHP, Python, etc.


Evolução

Como o tempo, ele foi ganhando mais importância no mercado e ganhando atualizações. Seu core, o ECMAscript, está na versão 5, com a versão 6 na iminência do lançamento com grandes novidades que garantem mais facilidade para desenvolver aplicações orentadas à objetos.

Em meados de 2008, a Google apresentou sua engine open-source “V8”, de JavaScript escrita em C++, que seria utilizada no Google Chrome. Desde então, essa engine começou a ser aproveitada em vários projetos com outras aplicações. Um desses projetos deu origem ao Node.js, que é a principal plataforma para desenvolvimento de aplicações Server-side em JavaScript escrita sobre o V8, e até ferramentas de auxílio e otimização de código para aplicações Web.


Como usar?

O JavaScript pode ser usado em sistemas Web, executado em browsers, em sistemas Desktop ou Server-side, graças ao Node.js, em dispositivos móveis, graças ao projeto Cordova da Apache, ou até mesmo em plataformas mais baixo nível, como Arduino, graças ao projeto Cylon.js.

Para executar um código Javascript em um Browser, por exemplo, basta importar o módulo(ou até mesmo escrever o código diretamente) em uma tag <script> em seu HTML, que quando a página for carregada em um Browser, o script também será.

Exemplos de uso do Javascript em HTML

Além do Browser, você também pode executar um script diretamente no seu computador através do Node.js, basta fazer sua instalação no computador e invocar o interpretador especificando o arquivo através de um programa de linha de comando (CMD ou PowerShell no Windows, Terminal no Linux ou Mac), como em:

$ node meuscript.js

O output aparecerá no próprio console.


Como funciona?

O JavaScript é uma linguagem orientada a eventos e altamente concorrente, isso quer dizer que você programa o callback de um determinado evento no momento que você define que espera que ele vá ocorrer como resposta à alguma operação, mas esse trecho de código só será executado quando o evento de fato acontecer. Isso garante agilidade no ciclo de vida da sua aplicação, já que ele não é travado enquanto espera que alguma resposta de operação com dados externos chegue para continuar a execução.

Embora o JavaScript seja single-threaded, todos os seus eventos são executados de forma assíncrona, ou seja, em uma linha de controle paralela à principal. Isso é possível porque, embora sua arquitetura não seja multi-threaded, ele consegue criar processos filhos que executam outras tarefas e se comunicam com seu processo pai.


Quais são suas vantagens?

Graças à essa arquitetura focada em concorrência de operações e minimização do tempo ocioso das threads, é possível conseguir uma performance muito boa e muito estável, se comparado às grandes plataformas que temos dominando o mercado de hoje.

Comparativo entre Go, PHP e Node.js em relação ao número de requisições que consegue responder por segundo. (Fonte: http://www.hostingadvice.com/blog/comparing-node-js-vs-php-performance/)
Comparativo entre .NET e Node.js em relação ao tempo de resposta para requisições para um número crescente de requisições paralelas. (Fonte: http://www.salmanq.com/blog/net-and-node-js-performance-comparison/2013/03/)
Comparativo de performance entre as aplicações Node.js e Java para responder às requisições de determinados serviços do PayPal (Fonte: https://www.paypal-engineering.com/2013/11/22/node-js-at-paypal/)

Além da performance a nível de aplicação, também deve-se levar em consideração a curva de aprendizado de construção de um software usando JavaScript de ponta-a-ponta.

JavaScript é uma linguagem muito fácil de se aprender e muito rápida para se usar. Você não precisa escrever muito código para fazer operações com valor. Embora praticamente tudo no mundo JS seja objeto, essa não é uma linguagem que liga muito para tipos de dados, o que a torna muito flexível e ainda mais fácil para quem vem do mundo Python ou PHP.

Um outro grande problema que uma empresa enfrenta ao manter uma ferramenta Web cujo servidor utiliza uma outra linguagem que não seja JavaScript, é a questão do domínio da equipe sobre o sistema. Se torna necessário que a empresa tenha uma equipe especializada nas tecnologias de Front-end(HTML, CSS, JavaScript, etc.) e outra especializada nas tecnologias de Back-end utilizadas(Java, Python, PHP, SQL, etc.). Não há como garantir que as duas equipes conversariam tão bem quanto se ambas trabalhassem com as mesmas tecnologias. Se o projeto for escrito em uma mesma linguagem de ponta-a-ponta, é possível, inclusive, diminuir custos com as equipes, já que poderia ocorrer intercâmbios de profissionais quando necessário. O JavaScript possibilita isso sem perda de qualidade ou performance.

Uma aplicação em JavaScript é altamente escalável e extensível. É muito fácil implementar funcionalidades em um sistema desenvolvido com a linguagem. Embora a manutenção do código seja bem complicada e custosa se escrito “puro”, sem a ajuda das ferramentas que a comunidade fornece, com o uso de tais ferramentas todo o processo de desenvolvimento, otimização, manutenção, teste, integração e atualização se torna tão descomplicado quanto um clique.


Comunidade

A comunidade de desenvolvedores JS também é outro diferencial, visto que é extremamente ativa, receptiva e aberta a quem estiver interessado em se aventurar. Para quem deseja informações sobre a linguagem e suas aplicações, há uma infinidade de portais e serviços que disponibilizam o conhecimento de forma gratuita, de maneira que praticamente qualquer problema que você tiver ao desenvolver uma aplicação já tenha sido resolvido por alguém e a solução disponibilizada online.

Há, inclusive, vários módulos e ferramentas construídos para auxiliar no desenvolvimento de aplicações JavaScript, como é o caso do gerenciador de pacotes NPM, que indexa os módulos publicados pela comunidade para agilizar tarefas tanto de desenvolvimento quanto de produção de software, como, por exemplo, o Gulp e o Grunt, que são seus principais gerenciadores de tarefas.


Mercado

Com a ascensão do JavaScript em, praticamente, todas as linhas de desenvolvimento de software, o profissional com esse domínio vem sendo extremamente valorizado. Ter essa característica em seu currículo, hoje, tem um grande potencial de diferenciação. Isso sem contar com a agregação de valor que traz ao custo da hora de trabalho.

Como há linhas de desenvolvimento em várias frentes distintas, o leque de opções de áreas de atuação para esse profissional se amplia consideravelmente. O desenvolvedor JavaScript, pode atuar hoje como desenvolvedor Front-end, mas amanhã pode decidir se aventurar no desenvolvimento de aplicações mobile. Hoje essa migração é muito simples, visto que o JavaScript também possui infra-estrutura para desenvolvimento de projetos mobile através de tecnologias Web.


Conclusão

Hoje o JavaScript é uma das principais tendências para o desenvolvimento de projetos e tem uma comunidade crescente. Várias grandes empresas estão apostando muito nisso. Como qualquer outra linguagem, ela também tem seus defeitos e desvantagens, mas, no geral, oferece uma relação “custo x benefício” muito boa.

É muito importante estar sempre em busca de conhecimento sobre as melhores formas de aproveitar o máximo das tecnologias disponíveis para resolver seu problema, até por conta da velocidade com que novas tecnologias surgem com novas propostas. Pode ser que nem sempre o JavaScript seja a sua resposta. Mas o ter como uma possibilidade, é um ótimo caminho para resolver seus problemas.

Like what you read? Give Fred Souza a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.