JavaScript Faculdade de Informática de Taquara - Curso Sistemas de Informação Fundação Educacional Encosta Inferior do Nordeste Av. Oscar Martins Rangel, 4500 - Taquara - RS – Brasil [email protected], [email protected] Abstract. This report describes the origin, specification and the project of the language JavaScript. The objective of this document is to present a research around the language in order to know their fundamental concepts and their characteristics. Resumo. Este artigo descreve a origem, especificação e o projeto da linguagem JavaScript. O objetivo deste documento é apresentar uma pesquisa em torno da linguagem a fim de se conhecer seus conceitos fundamentais e suas características. 1. Introdução 1.1 JavaScript: script baseado em objeto para a Web JavaScript é uma poderosa linguagem de criação de scripts. É uma linguagem orientada a objeto com forte suporte para técnicas adequadas de engenharia de software. JavaScript torna-se atraente pelo fato de ser construído dentro dos navegadores Web mais populares e ser portável(pode rodar em diferentes navegadores). Além disso, suas novas versões e correções de bugs estão disponíveis na Internet, possibilitando que se mantenha sempre uma versão atualizada. É uma linguagem que foi criada para: alterar valores de elementos HTML; criar elementos HTML; validar formulário e controlar interação entre molduras. Através de JavaScript você poderá ter acesso a qualquer elemento da página. 1.2 Java x JavaScript JavaScript e Java. As duas linguagens não estão relacionadas, no entanto, partilham de algumas semelhanças. De uma forma geral, em todas as linguagens é necessário escrever comandos em texto normal coerentes com a sintaxe e estrutura da própria linguagem, sendo estes comandos vulgarmente designados por código fonte. Java é uma linguagem compilada cuja plataforma é independente. Entende-se por linguagem compilada a linguagem que requer uma sintaxe mais complexa e um conhecimento mais especializado das suas técnicas por parte dos programadores. Onde após a sua escrita em código fonte, o programa necessita de ser compilado através de um programa especialmente criado (compilador), produzindo como saída um programa executável em código binário, sendo estes específicos para trabalhar em uma determinada plataforma. JavaScript é uma linguagem interpretada. Entende-se por linguagem interpretada a linguagem cuja sintaxe do código e também a sua estrutura é normalmente mais simples do que a compilada, mas a sua execução torna-se geralmente mais lenta, ou seja, exige que cada vez que o programa é executado, cada linha de código seja "interpretado" com base nos fluxos de execução. 2. Origem e motivação 2.1 Origem No ano de 1994, a empresa Netscape, fabricante do programa de mesmo nome para navegação na Internet, sentiu necessidade de implementar uma tecnologia de processamento modo cliente para aplicativos baseados na Web. Para programas simples que fossem executados no computador do usuário, sem que fosse preciso enviar informações para o servidor. Como no caso da validação de um formulário, por exemplo. Na mesma época era adicionado suporte a applets Java (aplicativos pequenos e que são executados embutidos, no caso em páginas HTML, e que possuem uma área formalmente delimitada) ao navegador. Em se tratando de programas complexos ou visuais tinha um ótimo resultado, porém o tempo necessário para copiar e executar o programa não compensava certas pequenas tarefas. Além de que os applets não estão tão ligados aos elementos da página HTML. A partir de então nasceu a solução. A Netscape criou o LiveScript, uma linguagem embutível na página HTML, interpretada pelo navegador, que permite incrementar a apresentação e interactividade das páginas Web tomando bem menos tempo que Java e estando mais unida aos elementos da página. A linguagem da Netscape terminou mudando de nome com a paritipação da Sun Microsystems no projeto e, assim, a versão Beta 2 do Netscape, em 1995, já trazia estampada para a linguagem o novo nome: JavaScript. Não havia alguma ligação com Java, mas era uma questão puramente de marketing. E assim nascia uma linguagem que se tornaria um padrão e sinônimo de processamento cliente em páginas web. E o primeiro browser a suportar JavaScript foi o Netscape Navigator 2.0. O desenvolvimento da linguagem seguiu de perto o próprio desenvolvimento dos 'browsers' e as versões mais antigas dos browsers não suportam as versões mais recentes do Javascript. JavaScript já se encontra padronizada pelo ECMA (European Computer Manufactures Association). ECMA é uma associação de padrões internacional para informações e sistemas de comunicação. Existem atualmente várias versões desta linguagem (1.0, 1.1, 1.2, …) e continua a ser objeto de desenvolvimento pelas principais empresas de software. 2.2 Motivação O JavaScript é a única linguagem atualmente suportada pelos 'browsers' mais populares da Internet. O tempo despendido na aprendizagem desta linguagem é um bom investimento, visto não ter uma dificuldade elevada, face ao proveito que se obtém da sua utilização no desenvolvimento de páginas web, em conjunto com o conhecimento de HTML Por outro lado o conhecimento de JavaScript associado com CSS (Cascading Style Sheets), permite criar páginas DHTML, ou seja, páginas de HTML dinâmicas. 3. Especificação A Netscape inventou a linguagem JavaScript, que era primeiro usada em browsers da Netscape. Porém, a Netscape está trabalhando com ECMA (Associação de Fabricantes de Computador Européia) para entregar um padrão, uma linguagem de programação internacional baseado no core JavaScript. ECMA é uma associação de padrões internacional para sistemas de comunicação e informação. Esta versão padronizada de JavaScript, chamado ECMAScript, se comporta o mesmo modo em todas as aplicações que suportam o padrão. Companhias podem usar o idioma padrão aberto para desenvolver suas implementações de JavaScript. A primeira versão do padrão ECMA está documentada na especificação ECMA-262. O padrão de ECMA-262 também é aprovado pelo ISO (Organização Internacional para Padrões) como ISO-16262. A especificação de ECMA não descreve o Modelo de Objeto de Documento (DOM) que é padronizado pela World Wide Web Consortium (W3C). O DOM define o modo no qual objetos de documentos HTML são expostos no seu script. Netscape trabalha junto com ECMA para produzir a especificação ECMA. A tabela seguinte descreve a relação entre JavaScript e versões ECMA. Tabela 1.0 JavaScript e versões ECMA Relação entre as versões ECMA JavaScript versão JavaScript 1.1 ECMA-262, Edição 1 está baseada no JavaScript 1.1. JavaScript 1.2 ECMA-262 não estava completamente quando JavaScript 1.2 foi liberado. JavaScript 1.2 não é completamente compatível com ECMA-262, Edição 1, pelas seguintes razões: · Netscape desenvolveu características adicionais ao JavaScript 1.2 que não era considerado pela ECMA-262. · ECMA-262 adiciona duas novas características: internacionalização que usa Unicode, e comportamento uniforme para todas as plataformas. Várias características de JavaScript 1.2, como o Date object, eram dependente de plataforma e usavam comportamento específico para plataforma. JavaScript 1.3 JavaScript 1.3 é completamente compatível com ECMA-262, Edição 1. JavaScript 1.3 resolveu as inconsistências que JavaScript 1.2 tinha com ECMA-262, enquanto mantinha todas as características adicionais do JavaScript 1.2 exceto == e !=, que foram mudados de acordo com ECMA-262. JavaScript 1.4 JavaScript 1.4 é completamente compatível com ECMA-262, Edição 1. A terceira versão da especificação ECMA não era finalizada quando JavaScript 1.4 foi liberado. JavaScript 1.5 JavaScript 1.5 é completamente compatível com ECMA-262, Edição 3. Nota: O grupo de trabalho TC39 da ECMA está trabalhando atualmente no ECMAScript Edição 4 que corresponderá a uma liberação futura de JavaScript, JavaScript 2.0. 3.1 JavaScript e Terminologia ECMA A especificação ECMA usa terminologia e sintaxe que podem ser pouco conhecido a um programador de JavaScript. Embora a descrição do idioma pode diferir em ECMA, o próprio idioma permanece o mesmo. JavaScript apóia toda a funcionalidade esboçada na especificação de ECMA. A documentação de JavaScript descreve aspectos do idioma que é apropriado para um programador de JavaScript. Por exemplo: O objeto global não é discutido na documentação de JavaScript porque você não usa isto diretamente. Os métodos e propriedades do objeto global que você usa, é discutido na documentação de JavaScript mas é chamado funções topo-niveladas e propriedades. O construtor não parâmetro (zero-argumento) com o Número e objetos String não são discutidos na documentação de JavaScript, porque o que é gerado é de uso restrito. Um constructo de Número sem um argumento devolve +0, e um construtor String sem um argumento devolve "" (uma String vazia). 3.2 Sintaxe e Semântica A sintaxe de uma linguagem de programação define a forma do programa: palavras reservadas e organização das frases. Existem regras que irão expressar a possibilidade de uma frase ser bem formada ou não (regras de escopo e regras de tipo). E há a semântica da linguagem onde podemos ver o significado do programa como uma função mapeando a entrada no resultado (denotacional); ou baseado no seu comportamento (operacional). Tabela 1.1 Palavras-chave de JavaScript Palavras-chave break case void true with else false new continue for null in switch function return while this var do typeof if delete 4. Conclusões Analisando este documento concluímos que, embora seja mais fácil escrever programas em JavaScript do que em muitas outras linguagens de programação, algumas diferenças entre interpretadores e navegadores, e versões da linguagem dificultam a obtenção do produto final desejado. Sendo assim, é interessante testar o programa em JavaScript em todos os sistemas para os quais o programa foi projetado e ler a documentação para a versão de JavaScript que está sendo utilizada para acessar a coleção de recursos de JavaScript. A explosão e a popularidade da Internet e da World Wide Web oferece a oportunidade infindável de aumentar a importância destas nos sistemas de informações, no planejamento estratégico e na implementação, criando assim, novos desafios e recursos. 5. Referências [1] Internet & World Wide Web, Como Programar. H.M. Deitel, P. J. Deitel , T. R. Nieto. 2ª Edição. [2] http://forum.htmlstaff.org [3] Core JavaScript Guide 1.5 [4] http://www.geocities.com/javanethtml/java.html