Front-end e a origem e o futuro da área
Front-end e a origem e o futuro da área – Eu nasci front-end. Meu primeiro contato com desenvolvimento web foi em 2001, quando eu tinha 11 anos, em um curso de WebDesign na DataByte.
“Quando eu cheguei na internet era tudo mato, só dava pra colocar 12 fotos no Orkut.”
Não existia front-end naquela época, não existia sequer o conceito de front-end: ou você era WebDesigner ou WebMaster.
No curso nós aprendemos a usar o Microsoft FrontPage, DreamWeaver, Macromedia Flash e HTML (no bloco de notas). Não tive contato com Javascript o curso inteiro, era basicamente um curso que ensinava a criar sites com o mouse.
Aliás, falando em cursos, dá uma conferida em alguns bons cursos de javascript, se você estiver começando ou até mesmo buscando se atualizar.
Alguns anos se passaram e, quando entrei no mercado de trabalho, fazendo um site inteiro com PHP, MySql, Html e CSS. Também já mexia um pouco com Javascript. Estava me tornando um front-end.
No entanto, meu conhecimento se resumia a validação de formulários e algumas interações bem básicas com o DOM (dropdown, atributos, etc). E claro: muita coisa com Adobe Flash também.
O Flash era a internet, tudo era feito com ele para interação com o usuário, jogos, uploads, chat, animações, vídeos e etc. Qualquer coisa que tivesse um pouco de interatividade era feito em flash, até que…
Do fim do Flash até o nascimento de Node.js
“Steve Jobs está morto”Adobe Flash – 2011
Com o aparecimento do iPhone virou decreto a morte lenta e dolorosa do glorioso Flash e o que entraria em seu lugar seria o HTML5. Naquela época, o flash era o front-end, mesmo sem ser. Calma, eu vou explicar.
Junto com o HTML5, vem o elemento canvas, que traria toda interatividade que havia no flash para ser usado nativamente dentro do navegador. É aqui que o “front-end” que conhecíamos se transforma totalmente. Mesmo sem sabermos com clareza que éramos programadores front-ends.
Segundo a Apple, o flash consumia muito os recursos do smartphone e isso degradava a sua performance, mas na verdade sabemos que a Apple não queria que o seu produto dependesse de um software de terceiros. Pois é.
E agora, finalmente, dá para dizer que temos um marco: começa a surgir o front-end moderno, como conhecemos hoje.
Jquery, Ajax, WebGl, Canvas, WebSocket: tudo isso começou a se espalhar de forma exponencial em toda a internet.
A primeira aplicação web a se popularizar de fato foi o Gmail, que usando Ajax, permite que você use toda a ferramenta sem precisar recarregar a página ou ir para outro link.
O Google Chrome começa a ganhar mercado dando início à queda de popularidade do Internet Explorer.
O Google Chrome, com seu poderoso interpretador de Javascript, o V8, abriu um mar de possibilidades e surge o revolucionário Node.js.
‘Mas, o que o Node.js tem a ver?’
“No princípio Deus criou o céu e a terra, porém na terra não havia forma nem vida e uma grande escuridão cobria o mar, 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 lançado, em 2009, apresentava todo dia algo novo para aprender, e, nós, que embarcamos nessa, tínhamos que correr muito para ficarmos atualizados com as demandas do mercado.
As SPA (Single Page Application) estavam se tornando o padrão na internet. Ferramentas como BackBone, Ember, Grunt, Gulp, Sass, Less, CoffeeScript e Angular.js eram agora requisito para quase toda as vagas de front-end.
Todo um paradigma novo de desenvolvimento era necessário para criar uma aplicação moderna.
As novas versões do JavaScript eram implementadas com o Babel nas aplicações e uma nova ferramenta desenvolvida pela equipe do Facebook ganhava o mundo:
Bem-vindo, React.js
O React. js foi um grande passo para a implementação de testes no
front-end e também apresentou o JSX, que era uma nova maneira de se programar.
Com ele, você trazia o HTML para dentro do Javascript e também a modularização do código. Ganhos? Você escrevia pedaços cada vez menores do código, em vários arquivos, mantendo tudo independente e fácil de entender.
Todos esses marcos moldaram o front-end moderno, deixando a área ainda mais lapidada e tornando fácil escalonar projetos complexos.
Front-end: novas tecnologias e um futuro brilhante
“JavaScript? Para onde vamos não precisamos de Javascript”Doutor Emmet Brown, De Volta Para o Futuro
O Javascript se tornou um espécie de Assembly da internet.
Com a linguagem, foram desenvolvidas ferramentas como CoffeeScript, Babel, JSX, Opal, Elm, etc) e todas elas se transformam em uma forma otimizada e compacta de Javascript (tudo isso pelo Node.js).
Tudo isso para que possam se executar nos navegadores modernos.
Mesmo assim, o Javascript moderno (EcmaScript) por si só já é uma grande linguagem.
A EcmaScript, usada também para manipular o DOM e usar várias APIs de hardware como acelerômetro, gps, câmera, microfone, usb e etc.
Você também pode criar service workers para cache, threads paralelas e várias outras coisas incríveis, que eram inimagináveis só com Javascript puro.
Além disso, o EcmaScript é a única linguagem aceita em todos os navegadores, então iremos ainda conviver com o bom e velho Javascript por um bom tempo.
Mas isso não significa que continuará sendo a única linguagem soberana dos navegadores.
O Javascript vai morrer?
“Um pequeno passo para o usuário, mas um salto para a internet”Neil Armstrong sobre WebAssembly – 20 de julho de 1969
Em um futuro próximo, o WebAssembly (wasm) será o Assembly da internet e não mais o Javascript, pelo menos para tarefas que necessitam alto desempenho.
Com ele, hoje, você pode executar virtualmente qualquer linguagem de programação diretamente no browser.
Por exemplo, ao invés de baixar o Photoshop para a sua máquina, você usa ele dentro do navegador.
A equipe de desenvolvimento pode usar o mesmo código tanto para a aplicação desktop quanto para a web.
Além de ser multiplataforma, o mesmo código tem uso no Windows, assim como no Linux, iOS, Android, etc.
Sobretudo ter que reescrever o mesmo código para várias plataformas é um grande problema hoje e a web é a melhor solução para isso.
Com o Wasm, seu navegador seria um sandbox completamente independente do sistema em que ele está.
Hoje várias linguagens já implementaram seus compiladores para WebAssembly.
São elas: Rust, C/C++, C#/.Net, Java, Python, Elixir, Go e várias outras.
Hoje, já temos também ferramentas de grande porte como o AutoCad, que usa a mesma base de código para a versão web e desktop. Nessa ferramenta, o front-end da aplicação é feito com React e o render do AutoCad com WebAssembly.
Isso mostra o poder do Javascript, juntamente com o WebAssembly nos dias de hoje.
O futuro já chegou: atualmente a plataforma de desenvolvimento de jogos Unity já exporta o código em WebAssembly, também podendo rodar jogos de alta performance direto no navegador.
Não vai falar de PWA?
Leitor apressado com o texto longo – agora.
A ideia do Steve Jobs era de primeiramente que os smartphones seriam baseados na web e não em aplicativos, como aconteceu e acontece até hoje.
Na época, o desenvolvimento web como é hoje ainda estava engatinhando e aplicativos nativos foram a solução para a demanda da época.
Hoje em dia temos um ambiente robusto e padrões para garantir o funcionamento do código em várias plataformas.
A nova aposta para aplicações web multiplataforma é o PWA (Progressive Web App).
Com ele, você pode transformar qualquer aplicação web em uma aplicação nativa (pelo menos se comportar como uma) com um ícone, tela cheia sem barra do navegador, cache para acessar o aplicativo offline, splash screen, service workers para push notifications, etc.
Aqui é mais uma vez o conceito de um código só para qualquer plataforma (desktop, mobile, etc).
Isso hoje em dia já é uma demanda real e, se eu fosse você, corria pra aprender mais sobre isso. Esse é o futuro do mercado front-end!
O que o Programador Front-end deve esperar do futuro?
“O que dizer desse cara que eu mal conheço e já considero pacas!”Depoimento no Orkut do WebAssembly – 2004
Ainda haverá espaço para tecnologias front-end menos atualizadas
Por um tempo, é claro. Veja o quanto bancos e outras grandes instituições pagam atualmente para Programadores Cobol ou Java. É considerável, certo? Demanda sempre haverá.
Óbvio que ainda existe e existirá, durante um tempo, um mercado para ferramentas não tão modernas como WordPress, jQuery, Drupal e etc, mas a tendência é cada vez menos gente apostando nessas tecnologias.
Logo, se você está pensando em entrar na área de front-end, prepare-se para desapegar do seu ego, aprender coisas novas e deixar as velhas ferramentas para trás (sdds jquery </3 :/).
A “natalidade” de front-ends vem diminuindo
Para qualquer problema que você tiver, provavelmente já existe alguém que passou por isso e desenvolveu algo para ajudar outras pessoas.
Mesmo assim, muita gente não conseguiu acompanhar esse novo mercado e acabou seguindo outros caminhos. Ocorrerá o mesmo nessa nossa geração. As mudanças serão grandes e muitos não nos acompanharão nessa jornada.
É por isso que hoje em dia o profissional front-end está cada vez mais caro e difícil de ser encontrado.
Também é cada vez mais difícil novos programadores front-end surgirem, pois a cada 6 meses alguma coisa nova aparece e você tem mais um monte de coisa nova pra aprender.
A linha que separará desktop e web será ainda menor
A área de front-end irá ter uma nova demanda de profissionais que são capazes de desenvolver ferramentas para desktop e web usando a mesma base.
Também não pára de crescer o número de desenvolvedores de linguagens clássicas, como Java e C++, que estão focando em web. O futuro nos diz que mercado do front-end irá “explodir” de demanda como essas.
E, assim como aconteceu no surgimento do Node.js, coisas novas vão surgir a todo momento.
O que o front-end do futuro precisa estudar?
O futuro do mercado front-end será cada vez mais competitivo e várias linguagens tomarão conta do mercado.
Minha dica é: nós não podemos deixar de nos atualizarmos.
Estude PWA, WebAssembly, EcmaScript e tudo de inovador que você identificar.
A tendência é de que a web se tornará um ambiente de programas multiplataforma.
Com a performance de um programa nativo, seu navegador irá de um interpretador de HTML, CSS e Javascript para uma ambiente fechado de aplicações nativas sob demanda.
Veremos o Google começará a colocar aplicações PWA direto na PlayStore e, consequentemente, a Apple também tomará esse rumo.
Veremos front-ends que fazem aplicações com React, Angular, Vue ou outras novas ferramentas de SPA continuando a criar aplicações com Javascript e, essas aplicações, por sua vez, usando cada vez mais APIs nativas.
PWAs serão cada vez mais difundidas e um novo tipo de programador irá cada vez ser mais procurado. Esse programador será aquele que consegue programar tanto para desktop, quanto para web, usando aplicações mais pesadas. E essas aplicações serão cada vez mais usadas no nosso dia a dia.
Agora, cabe a você ficar antenado a essas demandas e escolher onde você irá aprofundar seus conhecimentos e manejar seus talentos.
“10% de uma aplicação é código escrito do zero. 80% é copiar e colar do google. 35% é stackoverflow. 50% é plugin pronto do npm e 98% é café”Albert Einstein (citação encontrada no google) – 1940
Leia também “5 Dicas que todo aluna da faculdade de TI deveria saber“