O Javascript desenvolveu além do que foi originalmente projetado para fazer?

10

Estive conversando com um amigo sobre o objetivo do Javascript, quando e como ele deve ser usado etc. Ele citou isso:

O JavaScript foi projetado para adicionar interatividade às páginas HTML

[...]

JavaScript fornece aos designers de HTML uma ferramenta de programação

  • Os autores de HTML normalmente não são programadores, mas o JavaScript é uma linguagem de script com uma sintaxe muito simples! Quase todo mundo pode colocar pequenos "trechos" de código em suas páginas HTML. O JavaScript pode reagir a eventos
  • Um JavaScript pode ser definido para ser executado quando algo acontecer, como quando uma página terminou de carregar ou quando um usuário clica em um elemento HTML JavaScript pode ler e gravar elementos HTML
  • Um JavaScript pode ler e alterar o conteúdo de um elemento HTML JavaScript pode ser usado para validar dados
  • Um JavaScript pode ser usado para validar os dados do formulário antes de serem enviados para um servidor. Isso economiza o servidor do processamento extra
  • JavaScript pode ser usado para detectar o navegador do visitante - Um JavaScript pode ser usado para detectar o navegador do visitante e - dependendo do navegador - carregar outra página especificamente projetada para esse navegador.
  • JavaScript pode ser usado para criar cookies - Um JavaScript pode ser usado para armazenar e recuperar informações no computador do visitante.

No entanto, parece que o Javascript está se acostumando a fazer muito mais do que nos dias de hoje. Meu amigo também defende o uso da funcionalidade OOP do Javascript, alegando que "você não deve processar dados, apenas validando". Javascript é realmente limitado a validar dados e criar gráficos chamativos em uma página da web?

Ele continua afirmando que "você não deveria estar tentando acessar bancos de dados através de javascript" e também diz "em geral você não quer fazer seu trabalho pesado em javascript". Não posso dizer que concordo com a opinião dele, mas gostaria de obter mais informações sobre isso.

Então, minha pergunta: o Javascript evoluiu da definição acima para algo mais poderoso, a maneira como a usamos mudou ou estou completamente errado? Embora eu saiba que essa é uma pergunta subjetiva, não consigo encontrar mais informações, então alguns links seriam bons, se nada mais. Não estou à procura de um debate, apenas uma resposta.

Elliot Bonneville
fonte
Eu também estava me perguntando "quem" está pressionando para fazer isso e por quê?
NoChance 19/03/2012
11
Eu colocaria o material fonte para o que seu amigo tem vindo a entender sobre JavaScript por volta de 1998.
Erik Reppen

Respostas:

21

Pessoas que pensam que o JavaScript não é uma linguagem de programação são pessoas que opinam sobre o JavaScript que você não deve respeitar.

JavaScript é uma linguagem que cresceu organicamente inspirada na semântica de Scheme e na sintaxe de Java. Seu propósito original não era geral, mas agora cresceu.

O JavaScript como idioma é adequado para executar praticamente qualquer tarefa, se adequado. Veja exemplos como node.js, em que o JavaScript tem acesso ao ambiente host, que consiste na funcionalidade IO, que permite que ele seja usado para programação genérica do lado do servidor

Meu amigo também defende o uso da funcionalidade OOP do Javascript, alegando que "você não deve processar dados, apenas validando". Javascript é realmente limitado a validar dados e criar gráficos chamativos em uma página da web?

Não, o JavaScript é uma linguagem de programação. Se você deseja representar estruturas de dados, algoritmos e lógica, use as ferramentas que a linguagem oferece. Funções e protótipos especificamente de 1ª classe são ferramentas poderosas.

Ele continua afirmando que "você não deveria estar tentando acessar bancos de dados através de javascript" e também diz "em geral você não quer fazer seu trabalho pesado em javascript". Não posso dizer que concordo com a opinião dele, mas gostaria de obter mais informações sobre isso.

Errado, no navegador, temos um banco de dados chamado indexedDB que acessamos com JavaScript. É um banco de dados inserido diretamente no navegador e, se você deseja usá-lo (e deve), usa JavaScript.

Observe também que o mongodb e o couchdb permitem usar o javascript para executar consultas adhoc diretamente no banco de dados.

Quanto ao trabalho pesado, ele está parcialmente correto. Se você está fazendo trabalho pesado, deve fazê-lo em C ou erlang. Embora observe que o termo "trabalho pesado" é vago, por exemplo, eu não codificaria ou decodificaria vídeos em JavaScript, não processaria imagens em JavaScript (use C). Eu não faria nenhum processamento de número em JavaScript (use fortran).

O Javascript evoluiu da definição acima para algo mais poderoso, mudou a forma como a usamos, ou estou completamente errado

O JavaScript foi gravado em um período de 2 semanas apenas para inserir pequenas funcionalidades de script em HTML. Desde então, cresceu bastante. Desde ES3 (1999), é uma poderosa linguagem de programação de uso geral.

Raynos
fonte
Foi o que eu pensei também. Agora só preciso descobrir como transmitir isso ao meu amigo.
Elliot Bonneville
@ ElliotBonneville Posso sugerir um grande cluebat de espuma ?
Hahaha, sim, você pode. :) Isso é hilário.
Elliot Bonneville
"poderosa linguagem de propósito geral de programação" que está cheio de armadilhas que vai ficar lá para sempre por causa da compatibilidade com versões anteriores: codeproject.com/Articles/182416/...
Den
@ Den sim, tem algumas dicas, mas o mesmo acontece com C, C ++, PHP e Java.
Raynos
9

A visão do seu amigo é efetivamente muito obsoleta e perde tudo o que aconteceu desde que o Google lançou o GMail.

Agora, isso significa que o Javascript foi desenvolvido além do que foi originalmente projetado para fazer? Tipo de. Mas não se esqueça que o design mudou enquanto isso, e mudará no futuro de acordo com as novas necessidades dos desenvolvedores. Isso também é válido para outros idiomas populares. Por exemplo, quando a primeira versão do C # foi lançada, ninguém esperaria permitir código dinâmico no design. Agora, o DLR está disponível por alguns anos.

Arseni Mourzenko
fonte
2

A linguagem sempre ultrapassa o que pensávamos no começo. Converse com alguém no início de C (ou C ++), alguém pensou que a linguagem será encontrada em quase todos os lugares agora. Acho que não.

Cada idioma ganha para aprender mais / avançar ainda mais.

Concordo que o Javascript era / ainda é uma linguagem subestimada, seu amigo não é o único. O problema não é pensar que a linguagem X ou Y é ruim / inútil, o problema é manter essa ideia para sempre. Em Ciência da Computação / TI, tudo muda rapidamente, e ainda mudará muito no futuro.

É por isso que é importante continuar aprendendo / pensando fora da caixa ...

Nettogrof
fonte
Eu não acho que muitas pessoas possam dizer razoavelmente que o JavaScript ainda é uma linguagem subestimada. Na verdade, acho que é a linguagem mais popular do mundo.
Jim G.