22 Oct

Rhino
Javascript é uma linguagem bastante conhecida por seu uso freqüente em páginas da Internet. Nessas páginas, é utilizada para tornar a página mais dinâmica e usável. Apesar do uso difundido, pouco se fala nas características mais técnicas dessa linguagem, de suas vantagens e desvantagens. Menos ainda se fala que essa linguagem também existe fora dos navegadores de Internet; é uma linguagem voltada para a programação de páginas da Internet, mas serve para tudo.
Apesar do nome, Javascript não tem nada a ver com Java. É uma linguagem de programação baseada em protótipos. Não existem classes nem tipos, apenas objetos, que seguem um protótipo (um molde), que pode ser alterado em tempo de execução. Um objeto em Javascript é, na verdade, um mapa de chaves e valores, que associa um nome (de um atributo) a um outro objeto (também conhecido como mapa ou hash). Note que funções em Javascript também são objetos e, portanto, podem ser atribuídas a chaves nos objetos; assim surgem os métodos.
Como funções são objetos que podem existir por si só (ou seja, fora dos objetos), a linguagem permite o uso de técnicas de programação funcional: fechamentos, continuações, funções que devolvem funções etc. Os fechamentos são usados, por exemplo, para definir variáveis em escopos mais restritos e para definir callbacks.
Apesar dessas características, não há tantos recursos nativos na linguagem. Mas ainda há suporte básico a strings, arrays, hashes, expressões regulares e os recursos básicos para sua utilização na manipulação de páginas HTML (busca e alteração de componentes da página). Mas, como já comentamos aqui no blog, existem bibliotecas para facilitar seu uso nas páginas HTML e lhe dar mais poder. As duas mais famosas são jQuery e Prototype. Com essas bibliotecas, fica muito fácil fazer páginas dinâmicas. E isso sem encher seu código HTML de ids e campos sem sentido.
É possível utilizar Javascript fora do navegador, também, executando o código num interpretador Javascript. Os mais famosos (que são utilizados pelos navegadores das respectivas empresas) são o Rhino, da Mozilla, e o V8, da Google.
É lógico que Javascript não é perfeita. Além de não ser fácil de usá-la fora dos navegadores (outras linguagens de script são mais fáceis), nem sempre é fácil detectar erros no código. O código também não é modularizável com segurança, uma vez que não há como saber se todas as dependências do código estão satisfeitas até que o código seja executado. Isso a torna não muito boa para projetos grandes - de propósito pois, como o próprio nome diz, é uma linguagem de script, não destinada a grandes aplicações.
Graças às características da linguagem, o código fica elegante e razoavelmente fácil de entender. É claro que sempre é possível escrever código ilegível… A linguagem também é muito poderosa, como se pode notar pela diversidade de bibliotecas disponíveis na linguagem, com os objetivos mais diversos.
Posts Relacionados:
Acompanhe-nos por
RSS, por Email ou via Twitter.
Veja como ter um desconto no Dreamhost: um excelente servidor web.
Email This Post
18 Responses for "Linguagens de programação - Javascript"
Eu adoro javascript!
Estou até criando uma API de efeitos (estilo scriptaculous ou moofx), quem sabe um dia eu disponibilizo ela para a comunidade =)
E, se não fosse pelo Internet Explorer, eu gostaria de javascript mais ainda! hahaha
Olá, Douglas!
Nossa, olha só que legal! Avisa a gente quando ficar pronto! :)
Com certeza, o IE é uma pedra no sapato de quem programa para a Web, em geral.
- Putz, isso só não funciona no IE!
- Tira porque a maioria das pessoas usa…
Triste, né?
Obrigado pelo comentário!
Posso escrever um post sobre o Ruby?
Abraços!
Porque linguagens de script não são destinadas a grandes aplicações?
Não dá para criar uma grande aplicação (seja lá o que isso signifique) com Python ou Ruby?
Olá, Philipe
Dá para criar, sim, mas esse não é o objetivo inicial das linguagens; foi o que quis dizer. É claro que sempre é possível escrever aplicações grandes (muitas linhas de código, muitos pacotes, muitas classes em cada um deles) e de qualidade com essas linguagens, mas esse tipo de linguagem, pela liberdade que oferece, dificulta o desenvolvimento em grande escala.
Quando um projeto é grande, é bom (digo por minha experiência com linguagens burocráticas, como Java) que haja rigor na tipagem e na visibilidade de métodos, para que um programador trabalhando no projeto saiba, olhando apenas para a declaração de um método, qual o tipo dos seus argumentos e o que ele deve devolver.
Mas dá, sim, para desenvolver grandes aplicações com linguagens de script tranquilamente. Não só dá, como já fizeram algumas boas, não? :)
Obrigado pelo comentário!
Não acredito nesse blog o.O Parece brincadeira. =D
Olá, Fábio
Respondendo aos seus comentários nos posts de C, C++ e nesse: se você discorda completamente do que está escrito, pelo menos diga por quê. Criticar por criticar é fácil.
Ainda acredito que, algum dia, haverá um “up” nas especificações do javascript - devido a essa onde de aplicações web - que a tornará mais robusta, elegante e uniforme de browser para browser. Por enquanto, nós, desenvolvedores web, ainda temos que lidar com questões “menores” para conseguir utilizar js na sua plenitude!
[]s!
Olá, Chris
De fato, a falta de padrão entre os navegadores é um entrave grande não só para o uso de Javascript mas também para o uso de CSS.
Enquanto não arrumarem essas coisas, vivemos de hacks (e de bibliotecas ótimas que nos afastam um pouco dessas picuinhas).
Abraços! E obrigado pelo comentário!
Olá Luiz, tudo bem?
Sou inexperiente em javascript e por isso talvez a minha pergunta não faça muito sentido, mas vou colocá-la de qualquer forma.
Tenho um aplicação web feita em ruby e gostaria de dar alguma vida a essa aplicação integrando alguns módulos em javascript. Sabes-me dizer como o posso fazer ou onde posso obter essa informação?
Muito obrigada.
Olá, Márcia
Em primeiro lugar, desculpe pela demora em responder. Respondendo à sua pergunta: independente de sua aplicação ser em ruby ou não, o jeito de você colocar javascript em sua aplicação é importar os módulos iniciais em suas páginas colocando uma tag
script type="text/javascript" src="arquivo.js"no final de cada página do seu sistema (ou num arquivo que é incluído em todas as páginas de sua aplicação) para cada arquivo que você queira incluir e, por fim, colocando o seu código numa outra tag do mesmo tipo. Para mais informações, sugiro que você veja esse site: http://www.w3schools.com/JS/default.asp.Espero ter respondido sua dúvida! Se não era bem isso ou se quiser tirar mais dúvidas, fique à vontade!
Luiz, acho que uma boa também é deixar claro pra Márcia a célebre divisão na interface: html diz respeito ao conteúdo, CSS para a apresentação e javascript para o comportamente.
Então, antes de tudo, ela precisa analisar onde ela quer dar a possibilidade da página ter um comportamento diferente, e qual seria esse comportamento.
A partir daí sim viria a implementação em si!
[]s!
Ótima observação, Chris! Obrigado pela colaboração.
Seguindo o padrão arquitetural MVC (Model-View-Controller): Html fica só com Model, CSS fica só com View e Javascript só com controller. Vale notar, também, que aplicar esse padrão também ajuda a resolver diversos outros problemas e tornar a Internet um lugar de melhor convivência entre navegadores, usuários e desenvolvedores :)
Olá, Luiz. Seu post foi excelente! Muito bom, mesmo!
Seguinte, tenho 16 anos e sou moderador do fórum iMasters, na área de Webstandards. Quis começar da maneira correta, pois sabia que ia me ajudar.
Nunca programei e tal, e estou tentando pegar JavaScript. Estou bem no básico, mas gostaria de saber se o mesmo é seguro, visto uma vez que eu posso digitar código pelo Firebug ou até mesmo na barra de endereço.
Sendo assim, ele é seguro? Tem como melhorar isso? Pode me dar qualquer respsota, pois estou certo que vou aprender JavaScript. :)
Olá, Thiago
Muito obrigado! Fico muito feliz de ler isso. Respondendo sua pergunta: acho que você quis dizer se scripts escritos em JavaScript para rodar no browser executam com segurança, correto? Bom, a resposta para essa pergunta é: tanto como qualquer outra linguagem. Em qualquer linguagem seu código pode ser alterado para ficar malicioso ou travar a máquina dependendo da entrada do usuário. Se você construir bem seu código em JavaScript, se prevenindo contra entradas maliciosas do usuário, fica mais difícil de alguém explorar seu código. Claro que alguém pode pegar e alterar o código (pelo FireBug, por exemplo), mas isso também pode ser feito com outras linguagens.
Espero ter respondido sua dúvida mas, se não respondi, fique a vontade para perguntar de novo.
Abraços e obrigado pelo comentário!
Respondeu, sim! Muito obrigado! ^^
Agora vou cair matando aqui nos estudos.
Abraços.
Olá Luiz, Olá Chris,
Obrigada pelas vossas respostas.
Entretanto já consegui entender como aplicar javascript na minha página e fi-lo. Mas agora tenho outro problema, funciona tudo direitinho no firefox, opera e outros browsers mas no internet explorer nao! Os módulos em javascript que tenho não abrem. Será que falta algo?
Muito obrigada, Márcia.
Olá, Márcia
Isso acontece a maioria das vezes. O problema é o Internet Explorer, que não é compatível com quase nenhum padrão da Internet. Você deve estar usando alguma coisa que não é suportada pelo Internet Explorer.
Um jeito de contornar esse problema, na maioria dos casos, é utilizar um módulo que abstraia o JavaScript nativo do browser, como, por exemplo, o jQuery.
Se você precisar realmente utilizar coisas nativas do browser (como a classe String, objetos da página, etc.), recomendo a você dar uma olhada nas páginas sobre JavaScript do portal w3schools, que eu te recomendei antes. Procure lá as funções que você está utilizando e veja se elas são suportadas pelo Internet Explorer.
Espero que isso ajude! Obrigado pelo comentário
Leave a reply