Executando verificação de segurança...
1

Por que o JavaScript é a linguagem mais amada e odiada ao mesmo tempo?

JavaScript é um paradoxo estranho no mundo da programação. Por um lado, é o sangue da web, alimentando tudo, desde animações simples até aplicações completas. Ele está em toda parte—todo navegador o executa, e nenhum site moderno funcionaria corretamente sem ele. Essa onipresença faz com que seja uma das linguagens mais amadas, porque, se você sabe JavaScript, pode construir quase qualquer coisa.

Mas, ao mesmo tempo, esse alcance tão amplo também faz com que seja uma das mais odiadas. É uma linguagem que evoluiu de forma caótica, acumulando peculiaridades e inconsistências que os desenvolvedores tiveram que aceitar. Coisas como a coerção automática de tipos, os temidos erros "undefined is not a function" e as históricas regras confusas de escopo frustram até os programadores mais experientes.

E tem também a questão da programação assíncrona. A introdução de Promises e async/await melhorou as coisas, mas a natureza orientada a eventos do JavaScript ainda pode parecer um quebra-cabeça que muda o tempo todo. O famoso callback hell já foi um pesadelo, e mesmo hoje, lidar com concorrência no JavaScript pode ser tanto elegante quanto frustrante.

Apesar de seus defeitos, JavaScript se adapta. Frameworks como React, Vue e Svelte o transformaram em algo incrivelmente poderoso, e o Node.js o levou para o backend, tornando-o uma linguagem full stack. O ecossistema é gigantesco, com uma quantidade infinita de bibliotecas, mas isso também é um problema—às vezes você não sabe qual pacote vai quebrar seu projeto na próxima semana.

No fim das contas, JavaScript é amado e odiado porque se recusa a ser ignorado. É uma linguagem que está sempre se reinventando, forçando os desenvolvedores a se manterem atualizados ou ficarem frustrados. Mas uma coisa é certa—JavaScript veio para ficar, e, quer você ame ou odeie, provavelmente acabará usando de qualquer jeito.

Carregando publicação patrocinada...
5

Você tem alguma conta que ela é a mais amada e a mais odiada? Qual critério foi usado?

É uma hipérbole? Ok, nem sempre fica claro, eu que gosto de fazê-las fiquei na dúvida, imagina quem nem sabe se é de comer...

Não sei se essa onipresença ajuda ser amada, até porque se o critério for esse então C é mais amada ainda.

Eu tenho dificuldade de argumentar contra ou a favor porque não sei qual é a definição do que é ser amada. E até mesmo se é bom que ela seja amada ou odiada, que é uma outra questão. Como dito antes, ela é muito usada, mas o motivo é porque as pessoas passaram muito tempo não tendo escolha, não me parece amor, mas posso estar errado.

De fato, algo só é muito odiado quando é muito usado, tem até a frase famosa, que seria bom analisar com mais profundidade, mas enfim, fica para você leitor fazer:

Existem apenas dois tipos de linguagens de programação: aquelas das quais as pessoas reclamam e aquelas que ninguém usa -- Bjarne Stroustrup

Mas também abemos que existem melhores relações entre reclamação e uso de algumas linguagens do que outras. E sabemos que há muito elogios para linguagens quando ela é muito popular entre programadores que só sabem seguir receita e bolo e não entendem nada de computação, e até mesmo com certa personalidade e educação básica, já que essas pessoas passam amar realmente a tecnologia, não vê os defeitos que todas têm, e não admite que outras pessoas apontem esses defeitos, mesmo que tenha fundamentação e a amante só tenha falácias ou mentiras para argumentar.

problema não é a coerção automática de tipos que tem em muitas linguagens que ninguém reclama, o problema, e provavelmente o maior dela, é que isso foi feito de forma errada. O que é compreensível pelo prazo que tinha para lançar, e porque:

JavaScript foi criado para fazer um macaquinho dançar na tela -- Eric Lippert

e começaram usá-la para fazer sistemas. Não tem como dar certo, mas funciona.

Parte do problema do JS é como as pessoas ensinam a usá-la também, os gurus/influenciadores não ajudam. Muitas vezes o problema do JS é programador JS e não o JS em si. Isso acontece mais com algumas tecnologias do que outras, mas acontece em todas.

Em todas as linguagens lovers e haters de verdade são sempre um problema, em algumas os lovers se destacam mais do haters. JS é uma que apesar de ter muitos haters, tem muitos lovers que são parte do problema. Por isso uma análise mais técnica sempre é melhor, assim pode-se elogiar e criticar com base e conhecimento, mas isso "não dá ibope".

O ecossistema gigante também é tratado como um defeito, e cada vez mais grave. E o fato dele ser instável ajuda ainda mais, por isso tantos memes e piadas, que têm um fundo de verdade.

Agora criou-se uma massa monumental e é difícil ela perder relevância, mas se, hipoteticamente, as pessoas pudessem escolher o que usar sem olhar mercado, poucas pessoas escolheriam JS. Inclusive algumas pessoas têm uma teoria que se não tivesse sido criada no Brasil, tivesse pego fama um pouco antes, Lua seria o que JS é, ela é melhor em praticamente tudo que você possa analisar, e só não é mais porque ela não tem a força do mercado empurrando-a mais ainda pra cima, mas ela tem uma base muito, muito melhor. Não falo em Python, porque esta sempre teve alguns defeitos que dificultaria colocar em um browser, seria um canhão para matar o macaquinho dançando.

A linguagem não está se reinventando muito, esta é uma das críticas que se faz a ela, por isso Dart, CoffeScript, Elm, TypeScript e outras foram criadas, e por isso o WebAassembly foi criado para dar melhores alternativas para qualquer linguagem, mas que não pega toda a tração que deveria porque ao mesmo tempo praticamente o comitê a impede de explorar todo seu potencial, obrigando ela ficar refém de JS e não especificando logo as coisas que faltam. Política criando problemas técnicos.

Muitas pessoas não usam JS mesmo em web. E muitas pessoas não usam porque sabem que seus sistemas não deveriam ser web, ao contrário da esmagadora maioria que faz web mesmo que a experiência acabe sendo pior, porque é a modinha, tem que fazer o que todo mundo está falando para fazer.

A conclusão de que JS veio para ficar parece ter sido já anunciada por pessoas influentes há pelo menos 2 décadas, e mesmo achando que não era uma boa ideia, eu concordei com elas, a linguagem seria usada para fazer tudo o que fosse possível fazer com ela, não pelas suas qualidades, mas pelo contexto.

A maioria dos argumentos que as pessoas usam, para um lado ou outro são o que eu falei, mentirosos ou falaciosos, então não dá nem para prestar muita atenção. Mas as pessoas prestam. É assim porque a pessoa não conhece a computação, não tem raciocínio lógico, método científico, ela sempre tomará a decisão do jeito errado e rezar para ser o mais adequado ou ninguém perceber, nem ela, que não é tão bom assim o que decidiu. Também não temos muita escolha, o mercado é assim na sua maioria.

S2


Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente (não vendo nada, é retribuição na minha aposentadoria) (links aqui no perfil também).

4

Muitos dos haters de qualquer linguagem, framework, sistema operacional e etc sequer se deram ao trabalho de estudar a tecnologia razoavelmente. Alguns outros só repetem o que ouvem por aí sem nem saber do que estão falando.

Em mais de uma situação me deparei com colegas de profissão dizendo algo como: "Isso aqui ficaria melhor em XYZ pois XPTO não tem tal recurso, XPTO é ruim, XPTO tem sintaxe lixo...", quando eu era jovem eu entrava nessa paronóia e discutia com a pessoa, hoje em dia eu só digo algo como: "tá bom amigão, refaz tudo em XYZ então com a mesma qualidade e que entregue a mesma coisa".

Mas.... existe um outro porém aí, tecnologias com baixa curva de aprendizado como JS, PHP, Python favorecem a entrada de pessoas se aventurando e gerando códigos que até eles mesmos não sabem explicar, uma mistura de over-engineering com extreme go horse e grandes quantidades de "não sei o que estou fazendo". Com isso, é comum quem chega em um projeto caótico desse passa a culpar a tecnologia por ter deixar isso acontecer.

2

Eu acho que para um Programador real não existe uma linguagem que odiamos e sim uma linguagem que gostamos, esse negócio de odiar uma linguagem ou tecnologia, é igual o @user1 comentou, não estudou ou não intendeu direito a linguagem/tecnologia, se ela é tipada se não, se tem um bom desempenho é a linguagem que os programadores irão usar.

2
2

Sou iniciante, e o JavaScript me parece uma linguagem fácil de aprender. Desejo me tornar full-stack e, ao perceber que posso usá-lo tanto no front-end quanto no back-end, me sinto mais confiante em escolher uma stack baseada nele. Mesmo sabendo dos defeitos e desafios, acho incrível como ele permite criar praticamente qualquer coisa na web.

2

Não tem muita alternativa também né. Algumas linguagens até oferecem transpiling para JS, como Kotlin, Dart, Elm e Scala. Mas no final das contas é mais do mesmo. Nenhuma oferece uma experiência de rapid development como o JavaScript...