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.
fonte
Respostas:
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
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.
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 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.
fonte
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.
fonte
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 ...
fonte