Javascript é ruim mesmo ou é a preguiça de pesquisar um pouco que atrapalha ?
Frequentemente ouço outros programadores e até amigos falando mal de Javascript, a frase mais comum é: “Não dá pra debugar!”, será mesmo ? Javascript está aí há mais de uma década em grande parte dos websites e ninguém até hoje se importou em criar uma ferramenta direcionada ? Ou será preguiça/medo de encarar a linguagem ?
Javascript é uma linguaguem de programação, é interpretada, e orientada a objetos. Sim, isso mesmo que você leu, Orientada a Objetos, isso surpreende muita gente, normalmente os que tem mais preconceito e preguiça de pesquisar, inclusive ela obedece uma especificação, a ECMAScript, dá qual é baseada a ActionScript, conhecida pelo pessoal de Flash, ou seja há um padrão e versões desta linguagem.
Pode-se dizer que Yahoo e Google investem muito nela, o que seria de seus sites sem Javascript, as maravilhas do Gmail, Yahoo mail, Google Maps, entre vários outros… O que seria da técnica AJAX sem Javascript.
Querem debugar Javascript ? É só usar o Venkman e/ou o fenomenal Firebug, além de suporte a breakpoints ele vem com vários outros recursos como inspeção de código javascript e css, logging, profile, pode-se até mesmo alterar a árvore DOM e ver os resultados sem precisar atualizar a página.
Querem codificar Javascript ? A IDE Aptana (baseada no projeto Eclipse) resolve seus problemas, com suporte a code insight, auto complete, entre outros… não somente para Javascript, mas também para html e css. Para quem já utiliza o Eclipse basta instalar o plugin, ou mesmo utilizar o WTP. Para o pessoal de Rails uma ótima notícia, o RadRails será integrado ao Aptana em breve. Há ainda inúmeras e ótimas IDEs pagas para este tipo de serviço.
Javascript só serve para validar dados ? Bom, alguns exemplos do que o Javascript é capaz: Script.aculo.us, Dojo, Lightbox, ModalBox. Para o pessoal mais avançado, vale a pena dar uma olhada no excelente framework Prototype, base para vários desses projetos.
Desculpem-me se fui muito enérgico neste post, mas fazem 10 anos que utilizo Javascript e até hoje ouço das pessoas os mesmos motivos para preconceito. Muita coisa mudou, a linguagem evoluiu muito, mas a vontade de aprender das pessoas, parece que não, ainda mais vindo de uma área onde é uma obrigação estar em constante atualização.
Felipe Cruz said,
April 18, 2007 @ 11:06 am
Acho que muita gente critica o JS sem conhecer melhor. É claro que as vezes, pra quem desenvolve software em outras linguagens, perder tempo com JS para deixar a interface do jeito que o cliente quer é um pouco frustrante. Hoje eu acho que a interface é um diferencial e por isso mesmo tenho dado mais valor ao JS, já que eu fui um dos que já falou muito mal injustamente.
Giovane Kuhn said,
April 18, 2007 @ 12:21 pm
Simplesmente fenomenal o Firebug.
Thiago Silva said,
April 18, 2007 @ 12:41 pm
As pessoas realmente deveriam ser mais judiciosas. Daqui a pouco, JavaScript pode acabar tomando boa parte do desenvolvimento de sistemas e deixar todo um pessoal com um “???” em cima da cabeça. Afinal, o que pode ser “a nova grande linguagem” na verdade é bem velha, e ninguém percebeu.
Mas sejamos justos também. Nós estamos utilizando um belo de um hack há décadas, e nos acostumamos. Nos acostumamos a tal ponto em que achamos que o hack que é desenvolvimento web (colando URLs com HTTP, com HTMLs com JavaScripts, com , com DB relacional) é algo bem normal. Podemos pensar que não é mais um hack. Mas basta lembrar a dificuldade que é lidar com essa torre de babel e fazer com que suas partes, que falam diferentes dialetos e mal se integram entre si, conversem e, se formos razoáveis e nos lembrarmos de *boas* arquiteturas (se é que nós conhecemos alguma realmente boa), dá vontade de jogar tudo pro alto, e amaldilçoar não só JavaScript, mas HTMLs, URLs, HTTP…..
Eu acho que estamos fazendo a coisa da forma errada há muito, muito tempo. E como isso distorce e degenera nossa percepção sobre as coisas! Não menos pior, sempre que chega alguém com uma “nova solução” (ex. Ajax), fica mais difícil e confuso ver o quão estúpido é o que estamos fazendo.
Mas é difícil convencer as pessoas disso. É como convencê-las de que elas vivem na Matrix. E, provavelmente, vão defender a Matrix e dizer que não há nada de errado.
Agora, eu que peço desculpas pelo comentário energético =)
Fazem 5 anos que trabalho com desenvolvimento web, e mesmo hoje as pessoas não parecem ver o quão fu&%do é isso e não parecem estar nem próximos de solucionar o problema nem propor uma arquitetura melhor.
PS: eu sou um dos grandes fãs de ECMAScript e, também, um dos que gostam de utilizar ela fora dos browsers =)
Carlos Oliveira said,
April 18, 2007 @ 1:49 pm
Thiago,
Agora você acabou de falar outra coisa que é muito difícil engolir pra mim também. Por que teimamos em criar aplicações com cara de desktop utilizando um browser ? Ainda mais em um browser chamado IE =D. Se é pra simular uma interface rich-client então faça um aplicativo desktop de uma vez, oras bolas…, há limites para software rodando em browser (que o diga quando alguém pede para criar um relatório em HTML e ainda por cima quer imprimir bonitinho no papel =( ). E mesmo com tanto problemas continuamos a criar ferramentas para simular interfaces rich-client.
Eu não amaldiçoo JavaScript, HTML, CSS, Ajax e companhia, aliás adoro muito todas estas tecnologias, mas acredito que elas tem lugar, momento e LIMITES quanto a utilização.
Renato Silva said,
April 18, 2007 @ 2:03 pm
Veja sua produtividade duplicar com a biblioteca JQuery (http://jquery.com/)
(http://i18n.2kminterativa.com.br/jquery/jquery-getting-started-pt_br.html) Depois que comecei a utilizá-la programar em JavaScript passou a ser divertido
Rodrigo Urubatan said,
May 4, 2007 @ 7:29 am
O que doi no Javascript é o suporte dos browsers, que cada um suporta um conjunto diferente de funções, e algumas se comportam diferentes …
ou seja, o problema é a falta de compatibilidade das “VMs” Javascript …
Fora isto a linguagem é bem legal
Mas é triste levar tres ou quatro dias pra criar algo razoavelmente complexo em Javascript, verificar que esta tudo 100% no teste no Firefox, e quando vai rodar no IE nada funciona …
Carlos Oliveira said,
May 4, 2007 @ 8:43 am
Pois é Urubatan, sofro também com esse mal de comportamento diferente em browsers heeheh, ifs para IE e else para o restante…. e coisas do tipo.
O mais triste ainda é ver a perfomance de execução de javascript, que pasme, no IE é melhor que no Firefox. Além da falta de compatibilidade da implementação como você citou, ainda tem problemas de otimização.
Este link, http://www.howtocreate.co.uk/browserSpeed.html , mostra alguns testes de perfomance. O pobre Opera, que é o melhor que adere aos padrões amarga baixa uso dos usuários, mas é um dos melhores em perfomance de javascript.
Walter Cruz said,
August 2, 2007 @ 7:10 pm
Bom texto! Eu penso que as pessoa tenham preguiça de estudar JavaScript direito. Isso para mim envolve duas coisas:
1) estudar DOM – que muitas pessoas conhecem apenas o getElementById ou getElementByTagName. Envolve também saber conceitos de parent, sibling e essa coisarada toda.
2)estudar o próprio JavaScript – que por não ser uma linguagem orientada a objetos (ao menos não da forma clássica como estamos acostumados), acaba sendo sub-utilizada.
Eu gosto de JavaScript, e gosto dela como ela é. As versão 1.6 e 1.7, que estavam seguindo um caminho mais pythônico, me agradaram. Confesso que não gostei muito da nova especificação do ECMAScript.
Nunca usei JavaScript fora do navegador, mas tenho vontade de usar. Espero que o Steve Yegge libere o Rhino on Rails algum dia
http://steve-yegge.blogspot.com/2007/06/rhino-on-rails.html
Carlos Oliveira said,
August 3, 2007 @ 4:53 am
Walter,
Da mesma forma que adoro Ruby on Rails também fiquei louco para testar esse port em Rhino hehehe
Abraços,
Matualem said,
August 22, 2007 @ 5:34 pm
Nossa, os seus amigos estão bem equivocados, dizer que javascript é ruim !
É muita falta de conhecimento, como vc já deu prova disso.
A linguagem só não aceita “orelhada” e desenvolvedor que está acostumado a escrever dez linhas sem preocupação e já esperar que a IDE mostre que nove delas estão com erro, qual o erro e o que ele deveria fazer pra ajustar.
O problema é que hoje em dia todo mundo se acha programador/designer/redator/etc… Enfim, um conhecedor do todo. E quando dá de cara na parede fala mal, quando a sua própria ignorância não o deixa ver que o erro não é da linguagem ou ferramente utilizada.
É cada um…
abraços e parabéns pelo trabalho.
Hudson said,
June 16, 2008 @ 10:26 am
Gostaria de saber se há alternativa de escrever de cabeça para baixo.
sds Hudson Lima