Porque alguns programadores não dão valor a JavaScript?

Olá

Abri este tópico com esta pergunta baseado na frase que li no tópico http://www.guj.com.br/posts/list/15/91312.java#488491

Pelo menos nos sites que visito, Javascript é muito usado. Não posso concordar de modo nenhum que tenha morrido ou que não tenha ambições. Talvez o grande problema do javascript seja ter java no nome. Isto induz ao pensamento errôneo de que Java é parecido com javascript o que na prática não é bem verdade.

Atualmente algumas linguagens funcionais que andam em voga, como o Scala por exemplo, tem muitas coisas que o Javascript também tem e isto é mais uma prova de que javascript não é pré-histórico.

Como exemplo curioso de sites que usam javascript de forma não usual, vou citar 2 exemplos (passados em private pelo Fábio Kung)

http://blog.nihilogic.dk/2008/04/super-mario-in-14kb-javascript.html

http://ejohn.org/blog/ruby-vm-in-javascript/

Assim como o Emmanuel fez ontem no Falando em Java/2008, sugiro fortemente aos programadores web que aprendam javascript direito.

[]s
Luca

Acho que o contexto do pré-histórico diz respeito a sua idade, não? 1995, isso dá 13 anos de existência, eu prefiro acreditar que ela não envelheceu, mas sim amadureceu, ainda mais com o advento do AJAX.

Olá

Javascript não nasceu com este nome mas tem praticamente a mesma idade do que o Java (que é mais novo do que o Ruby). E aqueles que tem dificuldade de entender javascript com suas closures, JSON, currying e outras coisas, preparem-se pois estão em estudo mais alguns acréscimos na linguagem.

[]s
Luca

Porque até antes do AJAX, 98.8736% dos programadores usavam Javascript apenas para validações em páginas HTML ou para propor um pouco de interatividade.

Então, eram escritas aquelas funções enormes, já vi umas de mais de 500 linhas. Não existam debugers e nem IDEs para se escreverem esse monte
de Javascript. E óbvio, se tivesse uma letrinha errada, zuava tudo. Você tinha que debugar jogando conteúdo das variaveis na tela e vendo o que estava acontecendo. O IE falava que o erro era numa linha que nem existia(Isso é antes de surgir o Firefox, ao menos antes de ficar popular).

Saldo disso: Todo programador que passou por isso que eu disse pegou muita raiva de Javascript.

Acho que o que precisa agora é que os programadores reaprendam e tenham uma nova experiência com Javascript. Que eles possam ver que Javascript é bem mais do que uma linguagem que faz validação de formulário.

Bah, mas que baita frescurada tchê!

Eu não acho JavaScript primitiva. Eu ainda acho Cobol legal!

Ah, e eu uso JavaScript. Programo Java. Uso PHP. E se bobear usaria até Clipper se me ajudasse desenvolver aplicações Web mais completas.

Esses preconceitos contra linguagens por serem velhas ou simples são pura besteira. No final, o que conta mesmo é fazer o projeto bem feito e dentro do prazo. Eu comprei um Vectra há alguns meses com dinheiro de projetos entregues no dia certo, e não com algum dinheiro que eu ganhasse por falar mal de JavaScript.

Enquanto os clientes continuarem pagando, e os projetos continuarem saindo, qualquer linguagem que sirva para completá-lo é linda e maravilhosa.

Total, o resultado é o que importa.

A Net Scape quando criou o Java Script, originalmente batizou-o de Live Script. Atualmente o Java Script ganhou novo folego com a introdução do AJAX. Acredito que o Java Script ainda tenha uma sobre vida, não sei precisar de quanto tempo exatamente, mas acredito que seja por um bom tempo.
Um abraço. :wink:

Olá

[quote=Douglas Crockford em 2001 no texto The World’s Most Misunderstood Programming Language]
JavaScript, aka Mocha, aka LiveScript, aka JScript, aka ECMAScript, is one of the world’s most popular programming languages. Virtually every personal computer in the world has at least one JavaScript interpreter installed on it and in active use. JavaScript’s popularity is due entirely to its role as the scripting language of the WWW.

Despite its popularity, few know that JavaScript is a very nice dynamic object-oriented general-purpose programming language. How can this be a secret? Why is this language so misunderstood?

The Name

The Java- prefix suggests that JavaScript is somehow related to Java, that it is a subset or less capable version of Java. It seems that the name was intentionally selected to create confusion, and from confusion comes misunderstanding. JavaScript is not interpreted Java. Java is interpreted Java. JavaScript is a different language.

JavaScript has a syntactic similarity to Java, much as Java has to C. But it is no more a subset of Java than Java is a subset of C. It is better than Java in the applications that Java (fka Oak) was originally intended for.

JavaScript was not developed at Sun Microsystems, the home of Java. JavaScript was developed at Netscape. It was originally called LiveScript, but that name wasn’t confusing enough.

The -Script suffix suggests that it is not a real programming language, that a scripting language is less than a programming language. But it is really a matter of specialization. Compared to C, JavaScript trades performance for expressive power and dynamism.

Lisp in C’s Clothing

JavaScript’s C-like syntax, including curly braces and the clunky for statement, makes it appear to be an ordinary procedural language. This is misleading because JavaScript has more in common with functional languages like Lisp or Scheme than with C or Java. It has arrays instead of lists and objects instead of property lists. Functions are first class. It has closures. You get lambdas without having to balance all those parens.[/quote]

Vale a pena ler The World’s Most Misunderstood Programming Language

[]s
Luca (que quando manjava de Javascript, fez muita coisa interessante e também copiou e colou, isto é, roubou ou tomou emprestado sem pedir licença, muitos scripts super legais e isto foi lá pelos idos de 2000 e pouco, bem antes do AJAX)

Luca,

O que quis dizer foi justamente o que você salientou aqui, eu acho que JavaScript é O cara…

Da maneira que eu falei pode ter soado que eu critiquei, mas o que quis dizer foi que, passado todo esse tempo, surgem a cada dia coisas tão poderosas feitas com JavaScript que é sim necessário que, eu no caso, aprenda DIREITO…

Dou muito valor sim, mas…

Você não concorda que é como se, hoje, em 2008, tivessemos um novo conceito de JS nas mãos, que não se tinha quando ele foi criado, incluindo ai os propósitos da sua criação(daí o pouca ambição)? Ninguém nem imaginava…

Eu acho que o pessoal não dá valor porque acham que javascript foi uma “linguagenzinha” (que termo horrível) feita para fazer metodos validate() para formulários web, sendo que na verdade a coisa vai muito além disso.

Olá

Discordo porque foi justamente quando comecei a fazer aplicações web que estudei Javascript e que pude conhecer aplicações sensacionais. A grande diferença daquela época para hoje é que ao invés de ter bibliotecas como ExtJS, JQuery, Prototype, etc., naquela época a gente roubava os scripts de sucesso. Eu mesmo roubei muito script bom para estudar e fiz um site que ficou muito legal todo baseado em menus adaptados e mixados de arquivos .js sequestrados de outros. O que eu confesso que fiz, muitos outros também faziam. Mas era um meio bom de aprender.

[]s
Luca

Tenho muita resistencia em usar de maneira plena JavaScript em sua forma mais pura.
Isso se deve na falta de confiabilidade de que determinada instrução resultara no mesmo comportamento em diferentes browsers.

Hoje, acho perda de tempo (e tempo é dinheiro), sofrer com pelo menos 3 escritas distintas de código para ter um resultado cross-browser. Por isso, javaScript puro, eu abomino. Importante saber trabalhar com ele, sem dúvida, mas empregar profissionalmente em um produto nem pensar (claro, salvo aquelas simples validações e alguns hooks para invocações ajax).

Hoje, é muito mais lucro apostar em quem já perdeu tempo com isso. Além de produtivas, bibliotecas como YUI, jQuery, Prototype entre outros, fornecem uma interface para se trabalhar com JavaScript de maneira mais direta na “criatividade” do desenvolvedor, do que perder tempo com malditas incompatibilidades.

Quando era só um usuário eu detestava JavaScript, achava que era só enchia o saco, linguagenzinha que serve só para fazer popup, tremer a tela, algo completamente visual pra aquelas páginas hospedadas no Geocities ou algo do tipo.

Depois que li sobre ela (Mozilla Developer Center é ótima), passei a respeitá-la, lendo mais sobre algumas das funções mais avançadas (e menos usadas), e muito dos estilos de desenvolvimento que ela permite, passei a vê-la com uma das linguagens mais avançadas que temos hoje.

Engraçado que ainda depois disso fui ler sobre o projeto Tamarin do Mozilla, especialmente a parte de criar uma máquina virtual para rodar a linguagem.

Foi aí que caiu a ficha, JavaScript é uma linguagem de programação! Dá para criar programas com uma linguagem de programação!

Até a parte que JS era uma linguagem de programação eu falava, “e daí? Óbvio.”, mas criar programas de computador em JavaScript era algo que nunca havia pensado.

Aliás, sempre estive programando em JavaScript, mas só fazendo funções que atendiam à eventos disparados por uma página, e por incrível que pareça, não achava que estava programando.

Eu acho que o desdém dos programadores vem justamente disso, ninguém acha que está programado… aliás, estamos criandos “scriptzinhos”, e não programas. E há um mundo de seriedade entre fazer esses scripts, e fazer um programa.

JavaScript foi sempre tratado como algo de segunda, que só vem a suportar outras linguagens existentes. Com isso ninguém se via interessado a aprender a linguagem e suas aplicações mais avançadas. Esperamos 13 anos para alguém vir, ver além disso, e implementar algo que chamou a atenção.

Bem, devo também adicionar que uma boa parte da culpa por deixar a linguagem de lado é das equipes que desenvolvem os navegadores web. Principalmente culpa da equipe do IE. A Microsoft está à quase 8 anos sem implementar as novas funcionalidades da linguagem. Imagine, há 8 anos atrás o Java 1.3 tinha acabado de sair.

O Mozilla já suporta JavaScript 1.4, 1.5, 1.6, 1.7, 1.8, 1.8.1, daqui a pouco 1.9 quando o FF3 sair oficialmente, e mais p/ frente implementarão a tão esperada JavaScript 2.0.

Adivinha onde o IE está na versão beta do IE8? 1.3. Não mudou uma vírgula desde o IE 5.5. Só melhoraram o suporte às funções padrão do DOM, mas nada relacionado à linguagem. Vergonha né? E cada uma dessas versões tem evoluções de deixarem a mão coçando de vontade de codificar. Dá até raiva, abandono total. E sem o IE, quem vai implementar nas suas páginas algo que só funciona no Firefox? Nem os outros browsers estã ocorrendo atrás disso por que não há concorrência do gorila do mercado.

Bruno, por isso meu post anterior.

Olá

Bruno e Lezinho

Só para deixar claro: não advogo que hoje em dia alguém use Javascript na raça. Aliás, um dos principais motivos de ter aberto este tópico foi ter assistido ontem ao exemplo de uso do ExtJS na palestra do Tadeu e do Guilherme Moreira no Falando em Java. O que eles mostraram tinha o jeitão de um desktop como este: http://extjs.com/deploy/dev/examples/desktop/desktop.html

As bibliotecas atuais são muito melhores do que aquelas que a gente usava antigamente e o tal de ExtJS parece ainda mais poderoso do que o JQuery.

[]s
Luca

Na verdade Luca, o Ext utiliza jQuery e Prototype (além, obviamente, do seu papai, YUI).

Eu acredito que se alguém quer criar código cross-browser o melhor mesmo é se meter em um projeto open-source desses ao invéz de fazer no braço como já disseram. Nisso eu concordo plenamente com o Alessandro. Mas é importante dar uma estudada na linguagem para ter um conhecimento razoavel pra quando precisar fazer alguma coisa. Em resumo eu não acho dispensável aprender JavaScript de forma decente.

javascript tem, como toda linguagem, suas vantagens e desvantagens.

o principal fator que fez muita gente odiar javascript eh pq roda do lado do cliente, mas essa caracteristica que traz muitas desvantagens para a linguagem eh a mesma que traz muitas vantagens

muita gente se engana quando pensa que javascript eh uma linguagem incompleta

Eu tento usar o minimo possivel, pois nem todos conhecem bem a linguagem e acabam por destruir o sistema com funções absurdas e orientadas a navegadores especificos.

Quando vocês pegarem sistemas com js maiores que 2mil linhas para dar manutenção irão entender pq reluto tanto.

Quanto a usar o mesmo em frameworks como prototype ou auxiliando um dwr da vida, ae sim concordo que se torna algo mais popular e menos danoso aos sistemas.

bem grande maioria deve ter raiva de javascript por algumas coisas… primeiro é complicado de debugar… e antes do firebug era impossivel ver onde esta o erro… ou seja se vc escreveu 5 mil linhas de codigo e em uma linha qualquer esqueceu um ; fode tdo com seu codigo e vc nunca ou qse nunca vai achar onde esta o problema… mas isto acabou com a chegada do firebug… mas mesmo assim ele não é tão eficaz quanto ao debug do eclipse pra java por exemplo… isto fato por ser uma linguagem de scripting interpretada… dai complica criar um debbuger eficiente pra ela… outro problema é culpa da merda da microbost que fez o IE despadronizado com outros navegadores ou seja vc tem que saber 2 tipos de javascript: javascript for IE e javascript for Mozilla ja que a maioria das funções são diferentes em ambos navegadores… isto deixa a curva de aprendizado maior e dificulta a programação cross-broswer alem disso não basta o cara saber só javascript tbm tera que manjar muito de css pois dificilmente para fazer uma simples interação na pagina com javascript vc não precise de css… estes fatores fazem que grande parte tente evitar o javascript que usem o minimo possivel e não aproveitar agilidade e o poder da linguagem ao seu maximo…

Roda no servidor tb, vide Js.NET, Rhino, etc.