JavaScript: A língua franca da Web

Mike Shaver, um membro fundador da equipe da Mozilla, tem fortes sentimentos sobre como a Web se tornou popular:

Se o senhor escolher uma plataforma que precise de ferramentas, se o senhor abrir mão da colaboração viral suave do View Source e dos mashups de copiar e colar e a possibilidade de colocar jQuery no buraco que costumava ter Prototype, o senhor perde o que deu à Web sua evolução distribuída e seu incrementalismo. O senhor perde o que tornou a Web excelente e o que fez a Web vencer.

O fonte radicalmente aberta, a natureza viral do menu View Source é certamente uma parte fundamental do sucesso da Web. Mas isso é apenas parte da história. A maturidade cada vez maior da implementação do JavaScript nos navegadores modernos é a base do presente e do futuro da Web:

Um ingrediente do [Web 2.0] é certamente o Ajax, que eu ainda não consigo usar sem aspas. Basicamente, o que “Ajax” significa é “Javascript agora funciona”. E isso, por sua vez, significa que os aplicativos baseados na Web agora podem funcionar de forma muito mais parecida com os aplicativos de desktop.

Como muitos programadores, no início eu considerava o JavaScript uma linguagem de brinquedo. Até mesmo Douglas “meu nome do meio é JavaScript” Crockford era culpado por essa concepção errônea:

Quando o JavaScript foi apresentado pela primeira vez, eu o rejeitei como se não merecesse minha atenção. Muito tempo depois, dei outra olhada nele e descobri que, escondido no navegador, havia uma excelente linguagem de programação. Minhas atitudes iniciais foram baseadas no posicionamento inicial do JavaScript pela Sun e pela Netscape. Eles fizeram muitas afirmações errôneas sobre o JavaScript para evitar posicioná-lo como concorrente do Java. Essas afirmações errôneas continuam a ecoar nas dezenas de livros mal escritos sobre JavaScript voltados para o mercado de manequins e amadores.

Independentemente de seus sentimentos originais em relação à linguagem, o JavaScript tem percorreu um longo caminho desde os velhos tempos ruins de 1995. Temos poder de CPU para queimar no cliente; tanto poder, na verdade, que até mesmo uma linguagem interpretada e dinâmica como o JavaScript pode ser um ambiente de desenvolvimento confiável no lado do cliente. A linguagem tem sido padronizada como ECMA-262, edição 3 desde 1999, portanto, agora há uma expectativa razoável de compatibilidade entre os navegadores.

Cada vez mais sites utilizam o JavaScript para ampliar os limites do que o navegador pode fazer. A ideia de navegar na Web atual com o JavaScript desativado é quase estranha. Com o sucesso de tantas startups baseadas em nada além de JavaScript, HTML e a linguagem do lado do servidor de sua escolha, seria de se esperar que o JavaScript já tivesse algum respeito conquistado a duras penas. Mas ainda vejo muita angústia e aborrecimento em relação ao JavaScript por parte dos desenvolvedores, mesmo nos dias de hoje. Scott Koon tinha uma maneira inteligente de colocar isso:

[JavaScript won] por padrão. As pessoas queriam criar aplicativos da Web melhores. A programação com filmes em Flash era péssima. O Javascript já estava em todos os navegadores. Se o senhor for o último homem que restou na Terra, não importa o quanto seja feio quando as mulheres vierem repovoar o planeta.

Alguns programadores farão quase tudo para evitar sujar os pés no mundo altamente imperfeito do JavaScript. Os fornecedores estão muito dispostos a oferecer suas alternativas:

Apesar de todos os pretendentes ao trono, o JavaScript não vai desaparecer tão cedo. O JavaScript é o runtime de computação mais onipresente do mundo. É hora de aprendermos a aceitar e abraçar o JavaScript em vez de lutar cegamente contra ele. Isso não significa que não possamos explorar alternativas, mas a melhor maneira de transcender as limitações do JavaScript é mergulhar nessas limitações. Pelo menos dessa forma, o senhor sabe pelo que está lutando e o que as alternativas realmente significam.

O JavaScript é irritante às vezes? Claro. É irritante lidar com todos os problemas entre navegadores com os quais o senhor inevitavelmente se deparará? Com certeza. A depuração no navegador é uma dor de cabeça? Pode apostar que sim, embora o FireBug ajude. Mas o JavaScript, à sua maneira, é tão inovador quanto irritante:

A sintaxe do JavaScript, semelhante à do C, incluindo chaves e a declaração for, faz com que pareça ser uma linguagem procedural comum. Isso é enganoso porque o JavaScript tem mais em comum com linguagens funcionais como Lisp ou Scheme do que com C ou Java. Ele tem arrays em vez de listas e objetos em vez de listas de propriedades. As funções são de primeira classe. Ele tem closures. O senhor obtém lambdas sem ter que equilibrar todos esses parênteses.

JavaScript é o língua franca da Web. Ignore-a por sua conta e risco.

Se quiser se familiarizar novamente com o JavaScript, o melhor recurso da Web ainda é Site de Douglas Crockford. Também recomendo a série de vídeos do Yahoo de Douglas Crockford, que oferece uma excelente visão geral do pensamento moderno em JavaScript.

O senhor pode baixar os slides complementares para essas apresentações do excelente Blog da interface do usuário do Yahoo.

Há algumas alternativas interessantes de JavaScript no horizonte. Algumas serão bem-sucedidas, outras não. Em todo esse burburinho sobre novas ferramentas e novas opções, não se esqueça de que o O JavaScript continua sendo uma excelente opção para o desenvolvimento de aplicativos avançados para Internet — e, como a língua franca existente na web, seu sucesso é garantido.