Primeiro vou comparar JavaScript com linguagens que não são derivadas da linguagem C
JavaScript x Pascal
Pascal foi muito bom na época do Delphi7. Era muito integrado com o Windows. Naquela época o JavaScript estava começando.
O problema é que Delphi é praticamente só para Windows. Delphi ficou pra trás por causa da evolução dos browsers.
De certa maneira código Pascal/Delphi é muito bom pois permite ao programador acessar o hardware mais diretamente que js, mas, de certa maneira, Pascal perdeu a briga por causa da ‘portabilidade’ (que era e ainda é a vantagem dos browsers).
Um código escrito em JavaScript para browser roda no Windows, no Linux, no mac, no android… Pascal se tornou engessado.
Para alguns casos ainda vale a pena, mas JavaScript está muito mais acessível.
JavaScript x Python
Python é relativamente moderno. Python é uma linguagem interpretada (não compilada) assim como JavaScript. E isso parece ser uma tendência.
Escrever código JavaScript é ligeiramente mais fácil que escrever código em Python.
Em questão de portabilidade JavaScript ganha de longe porque todo dispositivo aceita. Python precisa ser instalado na maioria das vezes.
Em algumas vezes funciona como linguagem server-side, e nesses casos a performance de Python é comparável com a do JavaScript. Talvez Python até ganhe essa disputa.
Mas não ganha a guerra.
JavaScript x Asp (Vbscript)
Asp era uma opção. Existia a ‘browser wars’ e também existia a disputa entre PHP e Asp. Entre mySQL e SQL server. Entre Windows server e l.a.m.p.
Parece que isso evoluiu. Ouvi falar dos azure. Ouvi sobre os .net
Parece que ser parceiro da Microsoft tem suas vantagens. Tenho a impressão que existe um suporte ao consumidor. Quem continua investindo em Asp recebe junto no pacote acessória.
Mas de certo modo cai no mesmo buraco que o Delphi: faz software apenas para Windows.
Existe a opção Asp Windows-server, mas considero que a concorrência está na frente.
JavaScript x Assembly
Assembly parece ser a mais difícil de escrever. E parece que é a que dá ao programador maior domínio sobre o hardware. Em Assembly dá para fazer coisas que em JavaScript não dá.
Mas por ser tão difícil perde a disputa. E a questão da portabilidade é ainda mais severa. Parece que determinado código Assembly que funciona em um equipamento não funciona em outro determinado equipamento.
Por isso criaram as outras linguagens… o programador escreve o source em linguagem de auto nível e depois o compilador de cada máquina gera o Assembly específico.
JavaScript x HTML
HTML é uma linguagem ligada ao js. Na forma mais usual o JavaScript serve para alterar o HTML.
Mas o HTML não aceita instruções como o JavaScript. Html é uma linguagem de marcação.
JavaScript x CSS
Css é moderno. É a linguagem irmã-menor do trio: HTML, JavaScript e CSS.
É possível criar belas formas e animações interessantes com CSS, mas seu potencial é alcançado na junção com js.
JavaScript x SQL
Sql é uma linguagem tradicional. A história é que antigamente cada desenvolvedor armazenava os dados seguindo seu próprio padrão. Em um determinado momento decidiram facilitar e criaram o padrão SQL. A partir daí surgiu uma camada. Se antes o software era uma peça inteira, depois disso se dividiu em questões relativas a armazenagem de dados e questões relativas a como apresentar dados ao usuário e permitir que ele os edite.
SQL tem essa limitação. Não é para efeitos visuais. Serve por debaixo dos panos.
Agora vamos comprar JavaScript com linguagens que são derivadas da linguagem C
JavaScript x c
A linguagem c hoje em dia é referencial.
As outras linguagens são influenciadas por ela.
Ela é muito utilizada no ensino de linguagens de programação.
A sintaxe da linguagem C é a mesma da linguagem js.
Considero que JavaScript é descendente direta de C. A descendente mais famosa.
JavaScript x Java
Java também é descendente de C. A descendente mais certinha.
Funciona como linguagem desktop, apesar de que eu não recomendo. E também funciona como server-side, mas eu também não recomendo. Para mim a gloria do Java é ser a linguagem oficial do android.
São duas linguagens em níveis diferentes. Apesar de serem parecidas e terem o nome parecido.
Java é bem mais difícil porque mostra ao programador o hardware.
JavaScript x PHP
PHP já reinou absoluto no server-side. Apesar da concorrência com a Microsoft.
Agora concorre com nodejs, Python, Java e Microsoft. E outras.
Também é descendente de C.
É a linguagem C com o símbolo de dólar na frente dos nomes das variáveis.
Eu ainda vivo na época do PHP…
Gosto de PHP server-side e JavaScript client-side
E agora vou comparar JavaScript com ela mesma
JavaScript x JavaScript server-side
A linguagem JavaScript é muito permissiva. O programador pode escrever a mesma instrução de várias maneiras diferentes. Nada é tipado.
Isso facilita muito pra quem tá começando.
E oferece a possibilidade de o desenvolvedor fazer de várias maneiras.
Mas nem sempre isso é vantagem.
Considero que o server deve ser rápido na sua simples tarefa de receber a ‘requisição’, buscar como ‘resolvê-la’ e entregar o HTML para o browser.
E a permissividade pode acarretar perda de performance pelo tempo do server ‘entender’ um comando e pelo programador optar por um paradigma e abrir mão de outros…
Como disse acima: gosto de PHP.
JavaScript x JavaScript unity
A unity permite que o usuário codifique em JavaScript. Isso é bom pois facilita para o usuário.
Em relação ao JavaScript tradicional, a diferença está no interpretador.
No js tradicional é o browser que executa os comandos, no caso da unity o compilador lida com outros objetos.
Nos dois casos, escrever código JavaScript é abrir mão de lidar diretamente com o hardware.
Para finalizar afirmo que JavaScript é minha linguagem de programação favorita. Por ser executada em qualquer dispositivo.