Front-end: a origem e o futuro da área
Há muito tempo atrás, em um mundo totalmente diferente do que vivemos hoje, as pessoas não tinham aparelhos de comunicação móveis que são verdadeiros computadores de bolso, muito menos conexões de rede tão velozes que conseguimos assistir vídeos de altíssima qualidade em televisões de alta resolução.
Você se imagina hoje viver sem sua conexão com a internet? Sem os contatos nas redes sociais ou aquele bate papo no app de chat da moda?
Eu vejo! No passado, nossos ancestrais não tinham.
Você está aqui hoje porque quer entender a história do campo de front-end e entender que precisamos voltar no tempo para a invenção da internet e como os computadores funcionavam naquela época. Então podemos evoluir no tempo e ver as tecnologias físicas e virtuais evoluírem em paralelo, até hoje.
Do fim do Flash ao nascimento do Node.js
Adobe Flash – 2011
Com a chegada do iPhone, o lento e doloroso desaparecimento do glorioso Flash foi uma conclusão inevitável, para ser substituído pelo HTML5. Naquela época, o Flash era o front-end, mesmo que não fosse. Calma que eu explico.
Também vem com o HTML5 o elemento canvas, que trará toda a interatividade encontrada no Flash para o navegador para uso nativo. Foi aqui que o “front end” como conhecíamos se transformou completamente. Mesmo sem saber claramente que somos programadores front-end.
Segundo a Apple, a memória flash consome muitos recursos do smartphone, o que diminui seu desempenho, mas na verdade sabemos que a Apple não quer que seus produtos dependam de software de terceiros. É isso.
Agora, finalmente, podemos dizer que atingimos um marco: o front end moderno como o conhecemos hoje começa a surgir.
Jquery, Ajax, WebGl, Canvas, WebSocket: tudo isso está começando a se espalhar exponencialmente na internet.
O primeiro aplicativo da web realmente popular foi o Gmail, que usava o Ajax para permitir que você usasse toda a ferramenta sem precisar recarregar a página ou acessar outro link.
O Google Chrome começou a ganhar mercado, iniciando o declínio da popularidade do Internet Explorer.
O Google Chrome abriu infinitas possibilidades com seu poderoso interpretador Javascript, V8, e o revolucionário Node.js apareceu.
‘Mas, o que o Node.js tem a ver?’
“No princípio Deus criou o céu e a terra, mas não havia forma ou vida na terra. O mar estava coberto de grande escuridão, então Deus disse: npm install -g [email protected]”
Cid Moreira, Gênesis 1:1; 6000 A.C
O Node.js revolucionou o front-end. Quando foi lançado em 2009, tinha algo novo para aprender todos os dias, e quem desceu a estrada teve que correr muito para acompanhar as demandas do mercado.
SPA (Single Page Application) está se tornando o padrão na internet. Ferramentas como BackBone, Ember, Grunt, Gulp, Sass, Less, CoffeeScript e Angular.js agora são indispensáveis para quase qualquer trabalho de front-end.
Todo um novo paradigma de desenvolvimento é necessário para criar aplicativos modernos.
Novas versões de JavaScript são implementadas em aplicativos usando Babel, e novas ferramentas desenvolvidas pela equipe do Facebook estão ganhando popularidade:
Bem-vindo, React.js
reação. Node.js é um grande passo para a implementação de testes
No front-end, também é introduzido o JSX, que é uma nova forma de programação.
Com ele, você pode trazer HTML para Javascript e modularizar seu código. renda? Você escreve códigos cada vez menores em vários arquivos, mantendo tudo separado e fácil de entender.
Todos esses marcos moldaram o front-end moderno, tornando a área mais refinada e facilitando a escalabilidade de projetos complexos.
Front-end: novas tecnologias e um futuro melhor
“JavaScript? Para onde vamos, não precisamos de Javascript”
Dr. Emmett Brown, De Volta para o Futuro
O Javascript se tornou um espécie de Assembly da internet.
Utilizando a linguagem, ferramentas como CoffeeScript, Babel, JSX, Opal, Elm, etc. foram desenvolvidas e todas convertidas em formato Javascript otimizado e compacto (tudo feito por Node.js).
Tudo isso os faz funcionar em navegadores modernos.
Mesmo assim, o Javascript moderno (EcmaScript) é uma ótima linguagem por si só.
EcmaScript, também usado para manipular o DOM e usar várias APIs de hardware como acelerômetro, gps, câmera, microfone, usb, etc.
Você também pode criar service workers para cache, threads paralelos e muitas outras coisas incríveis que são inimagináveis apenas com Javascript puro.
Além disso, EcmaScript é a única linguagem suportada por todos os navegadores, então ainda usaremos o bom e velho Javascript por um longo tempo.
Mas isso não significa que continuará sendo a única linguagem soberana do navegador.
O Javascript vai morrer?
“Um pequeno passo para o usuário, mas um salto para a Internet”
Neil Armstrong no WebAssembly – 20 de julho de 1969
Em um futuro próximo, WebAssembly (wasm) se tornará Internet Assembly em vez de Javascript, pelo menos para tarefas que exigem alto desempenho.
Hoje, com ele, você pode executar praticamente qualquer linguagem de programação diretamente no seu navegador.
Por exemplo, em vez de baixar o Photoshop no seu computador, você pode usá-lo no seu navegador.
As equipes de desenvolvimento podem usar o mesmo código para aplicativos de desktop e aplicativos da web.
Além de ser multiplataforma, o mesmo código funcionará para Windows, Linux, iOS, Android e muito mais.
Ter que reescrever o mesmo código para várias plataformas é um grande problema hoje em dia, e a web é a melhor solução.
Com o Wasm, seu navegador será uma sandbox completamente independente do sistema em que estiver.
Hoje várias linguagens já implementaram seus compiladores para WebAssembly.
São eles: Rust, C/C++, C#/.Net, Java, Python, Elixir, Go, etc.
Hoje, também temos grandes ferramentas como o AutoCad que usam a mesma base de código para as versões web e desktop. Nesta ferramenta, o front end da aplicação é feito com React e a renderização do AutoCad é feita com WebAssembly.
Isso mostra o poder do Javascript e do WebAssembly hoje.
O futuro chegou: atualmente, a plataforma de desenvolvimento de jogos Unity exportou código em WebAssembly, podendo também rodar jogos de alto desempenho diretamente no navegador.
Agora cabe a você focar nessas necessidades e escolher onde aprofundar seus conhecimentos e gerenciar seus talentos.