“Tenho um contato próximo com JavaScript há pouco mais de seis anos. Durante esse tempo, conheci muitas outras linguagens, mas nenhuma me deu a liberdade de criar como o JavaScript”. É esse pensamento que Zeno Rocha, Front-end Engineer na empresa norte-americana Liferay, tem sobre JavaScript.
Tendo completado 20 anos em setembro de 2015, o JavaScript foi lançado pela primeira vez na versão beta do navegador Netscape 2.0, em setembro de 1995, sendo que em dezembro do mesmo ano foi implementado no navegador Netscape versão 2.0B3.
O fundador do JavaScript foi o americano Brendan Eich. O programador iniciou sua carreira na Silicon Graphics, trabalhando por sete anos em sistemas operacionais e sistemas de rede. Depois atuou por três anos na MicroUnity Systems Engineering, escrevendo microkernels e códigos para DSPs, e bolou a primeira portagem do compilador GCC para MIPS R4000. Mas Eich ficou realmente conhecido por seu trabalho na Netscape e na Mozilla.
Para Zeno Rocha, que já foi desenvolvedor de software na Petrobras e no Globoesporte.com, o JavaScript acompanha a evolução da web desde as barras de scroll customizadas até animações em 3D. Para entender o posicionamento dele sobre a linguagem, confira o bate-papo no qual falamos de tudo um pouco: características positivas e negativas do JS; padronização; evolução digital e tecnológica; comparação com outras linguagens; e o que podemos esperar do JavaScript daqui a 20 anos.
Revista iMasters: Há quanto tempo você usa JavaScript e o que a linguagem representa para você?
Zeno Rocha: Tenho um contato próximo com JavaScript há pouco mais de seis anos. Durante esse tempo, conheci muitas outras linguagens, mas nenhuma me deu a “liberdade de criar” como JavaScript.
RiM: Você consegue imaginar quais eram os objetivos do JS quando foi lançado em 1995? Eles foram atingidos e superados?
ZR: Não consigo imaginar qual era o objetivo quando foi lançado, mas acredito que uma linguagem criada em apenas dez dias não tinha planos tão ambiciosos assim. Nem o mais otimista acreditaria, isso lá em 95, na dimensão que isso tudo iria tomar.
RiM: Com 20 anos de história, podemos dizer que JavaScript acompanhou a evolução da web?
ZR: Sem dúvida. Desde as barras de scroll customizadas até animações em 3D. O JavaScript foi figura carimbada na história da web.
RiM: Quais são as características positivas e negativas do JavaScript?
ZR: Muitos podem discordar, mas acredito que uma característica muito positiva é o fato de ser uma linguagem interpretada e não compilada. Isso abre margens para problemas de debug, mas ao mesmo tempo possibilita maior experimentação. O aspecto negativo são as falhas de design da linguagem que trazem incertezas ao mais experiente engenheiro de software.
RiM: Enquanto desenvolvedor, quais foram as maiores dificuldades que você observou na padronização da linguagem?
ZR: Entre todas as dificuldades que passei como desenvolvedor, a padronização da linguagem nunca foi um problema, mas sim a inconsistência das APIs que foram e são implementadas nos diferentes browsers.
RiM: JavaScript é forte na web e tem sua força no servidor. Com a evolução digital e tecnológica, o que podemos esperar daqui para frente (Internet das Coisas, aparelhos vestíveis etc.)?
ZR: As coisas vão se integrar muito mais umas com as outras. Tecnologia não vai ser vista como um campo separado, vamos todos respirar isso. As pessoas vão passar a não tolerar sistemas medíocres que foram instituídos na nossa sociedade há muito tempo. Essa transformação já pode ser vista em diferentes segmentos do mercado, só que ainda falta muito, principalmente nos setores de transporte público e saúde.
RiM: Como você compararia o JavaScript com outras linguagens – Ruby, Perl e PHP -, já que a maioria é baseada no servidor? Quais são as principais diferenças?
ZR: Entre essas linguagens, JavaScript é a única baseada em protótipo, e isso causa uma mudança de paradigma enorme. Entretanto, é muito delicado fazer uma comparação dessas linguagens. Cada uma tem suas características e cada uma tem seu espaço. Apples and oranges.
RiM: O JavaScript está muito bem implantado há anos. O que podemos esperar da versão ES2015, também conhecida como ES6?
ZR: Muitas novidades! Graças ao Babel (6to5), muita gente tem tido acesso e a oportunidade de experimentar essa versão. Inclusive, quem não quiser ficar para trás já deveria estar estudando esse assunto. A minha previsão é de que arrow functions vão conquistar muitos desenvolvedores.
RiM: Christian Hellmann (ex-Mozilla, atualmente Microsoft) afirmou recentemente que “Trocar os pneus de um carro em movimento é tão difícil quanto tentar fazer inovações com JavaScript”. Você concorda com essa afirmação?
ZR: Absolutamente. Isso acontece não só com a linguagem, mas com qualquer software ou plataforma com muita adoção de público. Qualquer mudança, por menor que seja, pode afetar um ecossistema inteiro. Eu diria que trocar os pneus de um carro em movimento é fácil. O pior que pode acontecer é você quebrar o carro. Agora imagina quebrar a web?
RiM: Quando o Node.JS surgiu, JavaScript ganhou popularidade no servidor. Por que isso aconteceu?
Zeno Rocha: Porque sempre foi muito apelativa a ideia de utilizar uma só linguagem em diferentes plataformas. Foi como se um gap fosse preenchido. E, com isso, uma legião de desenvolvedores que só sabiam programar no navegador ganharam o poder de também desenvolver no servidor.
RiM: Quanto da evolução do JS se deve ao Node?
ZR: Com certeza a popularidade da linguagem cresceu bastante à medida que o Node foi evoluindo – talvez a maior influência tenha sido o sistema de módulos.
RiM: Muito se falou de jQuery nos últimos quatro anos, e há menos tempo que isso tivemos a ascensão do Node.JS. Qual o próximo passo? O que se tornará a nova tendência na divulgação do JavaScript?
ZR: Pela primeira vez, eu tenho visto mais ânimo e energia da comunidade sendo colocados nas mudanças da linguagem em si, em vez de library X ou framework Y. Todo mundo está de olho no ES2015 e explorando maneiras de usar isso, mesmo com a enorme falta de compatibilidade entre as plataformas. Esse é um momento bem interessante na história, que só demonstra como a comunidade amadureceu nos últimos anos.
RiM: Você acredita que o JavaScript continuará sua evolução como tem feito desde da sua origem para se adaptar às novas ferramentas?
ZR: Sem dúvida, sua maleabilidade é talvez uma das suas características mais poderosas.
RiM: A ECMAScript 4 foi descontinuada e a versão 4 ficou reservada por conta da grande mudança que haveria entre a ECMA 3 e a 4; foi dito, na época, que essa grande mudança poderia quebrar a web. A ECMA 6 está finalmente chegando e, com ela, muitas mudanças que estariam presentes na ECMA 4. Além do contexto histórico e do cenário atual da web, seria possível enumerar alguns fatores que poderiam contribuir para a adoção da ECMA 6? Ainda, se a ECMA 4 tivesse sido especificada na época como a ECMA 6 está sendo especificada hoje, será que ela teria sido descontinuada também?
ZR: Vivemos um momento único, no qual existe muita gente interessada na especificação e na padronização da linguagem. Isso faz com que a responsabilidade e a cobrança aumentem muito. Quanto maior o interesse da comunidade, menor a possibilidade de descontinuação.
RiM: Além de JavaScript, PHP e Java também completaram 20 anos em 2015. É possível traçar um paralelo no crescimento dessas linguagens e do desenvolvimento no geral?
ZR: Ainda falta muito, mas acho que essas linguagens e as comunidades em volta delas estão amadurecendo em ritmo muito parecido. PHP vai continuar atraindo um público iniciante, enquanto que Java vai continuar atraindo o mercado enterprise. Independentemente de suas características, cada uma teve um papel importante nessa história e conseguiu de alguma forma sobreviver nesse mercado extremamente mutável.
RiM: Se for pensar no JavaScript daqui a 20 anos, lá em 2035, o que vamos encontrar?
ZR: JavaScript sempre esteve em constante evolução, mas nunca teve a credibilidade necessária. Só depois de 20 anos é que as pessoas começaram a levar essa linguagem a sério. Agora que essa barreira foi vencida e a comunidade chegou ao tamanho que está, o ritmo de evolução vai aumentar muito mais. O que vamos encontrar em 2035? Essa eu deixo para a Mãe Diná, só tenho a certeza de que será algo absolutamente diferente do que temos hoje.
***
Este artigo foi publicado originalmente na Revista iMasters: http://issuu.com/imasters/docs/rim16-baixa