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

Excelente. Muito obrigado por seus comentários muito pertinentes. De fato concordo com muita coisa que disse e dão pano para muito manga e boas discussões.

Primeiro, queria apenar responder alguns pontos.

Se formos levar ao pé da letra a maquina java é uma gambiarra em C/C++

Não, existe uma diferença fundamental. A JVM é parte integral e fundamental da especificação do Java, enquanto no JS:

"ECMAScript is not intended to be computationally self-sufficient; indeed, there are no provisions in it's specification for input of external data or output of computed results"

Pq não usar Lua que já vem integrado ao Nginx e é outra linguagem de script que é usada em tudo para fazer tudo como js?

Graças aos esforços colossais mencionados no ínicio do texto, O js é objetivamente melhor que o Lua em vários sentidos: ele é 'normalmente' mais rápido, oferece mais funcionalidades, e talvez o mais imporante, no cénario Web, que involve muita manipulação de JSON, faz mais sentido usar a ferramenta que trabalha nativamente com estes objetos. E isso também se aplica em porque usar o plv8 em muitos casos.

Não existem artigos cientificos que provem que linguagens tipadas são melhores.

Não existem artigos que provem que são melhores, por que de fato não são, mas que eles produzem código mais legivel e com menos erros, existem muitos.

Ou resultam em menos problemas. Tudo que vejo são evidencias anedóticas!

Não são apenas evidencias anedóticas, mas um simples fato, que as aplicações mais complexas que existem são tipadas: considere os sistemas operacionais, sistemas de gerenciamento de banco de dados, navegadores, compiladores, as aplicações por trás dos sistemas bancários, corporativos e de telecomunicações. Tudo é tipado. Tipos são ferramentas fundamentais para mapear problemas do mundo real em abstrações de software.

Carregando publicação patrocinada...
4

Não, existe uma diferença fundamental. A JVM é parte integral da especificação do Java,

É uma verdade mas não muda o que eu disse, de java vira arvore que vira bytecode que vira codigo de maquina e tudo isso com JIT(o que é igual ao V8).

Node por outro lado tem event loop se não me engano tem coisas em java com isso.
Com a implementação do pattern reactor.

Uma curiosidade: O proprio Nginx usa um event loop(pattern reactor.)
mas ele é escrito em C/C++

oferece diversas funcionalidades que o Lua não tem

É aquilo que eu disse antes. As funcionalidades com a parte feia escondida rsrsrss

muita manipulação de JSON, faz mais sentido usar JS que trabalha nativamente com estes objetos.

Entendi o ponto!

mas que eles produzem código mais legivel e com menos erros existem muitos.

Isso tem artigos?

1

É uma verdade mas não muda o que eu disse

Sei la eu acho que muda tudo, o Java foi feito para interagir com o mundo externo, o JavaScript, não. Esse é o ponto, não a maneira como é feito. Por isso o Node é uma gambiarra e a JVM não.

Isso tem artigos?

Sim.

https://web.cs.ucdavis.edu/~filkov/papers/lang_github.pdf

https://www.microsoft.com/en-us/research/wp-content/uploads/2017/09/gao2017javascript.pdf

Veja também que dei um editada na outra resposta.

Abraços