Pergunta

Inspirado pela esta questão .

Eu geralmente vejo as pessoas referindo-se JavaScript como uma linguagem de baixo nível, especialmente entre os usuários do GWT e kits de ferramentas similares.

A minha pergunta é: por quê? Se você usar um desses kits de ferramentas, você está cortando-se de algumas das características que fazem JavaScript tão bom programa em: funções como objetos, tipagem dinâmica, etc. Especialmente quando combinada com um dos quadros populares, como jQuery ou Prototype .

É como chamar de baixo nível C ++ porque a biblioteca padrão é menor do que a API Java. Eu não sou um programador C ++, mas eu duvido que cada C ++ programador escreve sua própria GUI e bibliotecas de rede.

Foi útil?

Solução

É uma linguagem de alto nível, dada a sua flexibilidade (funções como objetos, etc.)

Mas qualquer coisa que é comumente compilado-to pode ser considerada uma linguagem de baixo nível, simplesmente porque é um alvo para a compilação, e há muitas línguas que podem agora ser compilados para JS por causa de seu papel único como idioma controladores DOM do navegador.

Entre as línguas (ou subconjuntos dos mesmos) que pode ser compilado para JS:

  • Java
  • C #
  • Haxe
  • Objective-J
  • Rubi
  • Python

Outras dicas

Respondendo a uma pergunta que diz "por que é algo que às vezes chamado de X ..." com "não X é" é completamente outro pisar a questão, não é?

Para muitas pessoas, "de baixo nível" e "de alto nível" são flexíveis idéias, abstratas que se aplicam de forma diferente quando se trabalha com sistemas diferentes. Para as pessoas que não são todos pendurados no passado (não existe tal coisa como uma linguagem de baixo nível moderna para algumas pessoas) o alto-ness ou baixa-ness do idioma irá comumente se referem como perto da máquina de destino que é. Isto inclui máquinas virtuais, dos quais um navegador é agora dias. Desculpe a todos os caras que pinheiros para asm em hardware base.

Quando você olha para o navegador como uma máquina virtual, javascript é o mais próximo da (falsa) de hardware que você começa. Esse é o ponto de vista que muitos que chamada javascript "baixo nível" ter. Eu acho que é uma distinção sem sentido de fazer e as pessoas não devem ficar pendurado sobre o que é baixo e que é alta.

"Low" aqui tem o mesmo significado que nas frases "O número de baixas sofridas na primeira guerra mundial foi baixo," e "redução de gordura sorvete é baixa em calorias." Faz sentido quando há um ponto óbvio de comparação, mas fora de contexto, é simplesmente absurdo.

Um monte de gente dizer isso porque os objetos e estruturas previstas no JavaScript são tão simples como você pode começar. Para desenvolver qualquer tipo de funcionalidade real, você tem que usar uma biblioteca externa. Baixo nível é uma má maneira de colocar isso, porque ele já tem um significado em ciência da computação. A melhor maneira de dizer, pode ser que ele é, sem built-in bibliotecas.

Compare isso com Java, onde a língua real realmente não faz um lote inteiro. Tentando fazer um array sem um ArrayList, ou acessar o sistema de arquivos sem as bibliotecas IO. A maioria das línguas são mais do que apenas o básico, eles vêm com essa funcionalidade extra.

Com JavaScript, o único poder real que começa vem das APIs que são introduzidos pelos navegadores e não fazem parte da língua. Coisas como a manipulação DOM e Ajax são fornecidos pelo browser.

Pode ser melhor para resumir tudo isso dizendo que, com uma linguagem como Java, você pode começar a fazer um trabalho sério sem ter que baixar bibliotecas de terceiros, mas com JavaScript, você tem que baixar uma biblioteca ou escrever uma biblioteca de seu próprio país.

Eu não ver javascript como uma linguagem de baixo nível. Um monte de funcionalidade e experiência do usuário reforços são fornecidos por ela. Talvez outros possam vê-lo como tal, simplesmente porque os usuários podem desativá-lo em suas opções do navegador, mas é uma linguagem extremamente robusta que praticamente corre o web em praticamente todos os tipos de navegadores ...

Não é, pode ser tão baixo nível como você pode começar na programação normal de navegador, mas sua a par com linguagens funcionais como Esquema ou Python.

Eu acho que a grande falta de Javascript são a falta de espaços de nomes ou de embalagem e sem fios

É de baixo nível em comparação com o GWT e kits de ferramentas semelhantes, mas não é uma linguagem de baixo nível no esquema maior das coisas. A recursos que ele oferece são muito alto nível:. Encerramentos, tipagem dinâmica, e herança prototípica são apenas alguns exemplos de suas características de alto nível

É considerado baixo nível por um número de pessoas que preferem escrever java para gerar javascript em seguida, escrever javascript (ou seja, eles não gostam dele justa ou injustamente). Um monte de pessoas queixam-java estes dias, mas apesar da falta de tipo estático verificando maioria das pessoas provavelmente considerar Ruby e Python mais fácil escrever na maioria dos casos (java sendo um bastante simples linguagem que estática são muito mais difíceis de projetar bem sem grandes construído conjuntos de recursos -em seguida, uma linguagem dinâmica simples).

Poucas pessoas chamaria python ou Ruby baixo nível em comparação com java e se as pessoas foram obrigadas a atingir um python ou ruby ??vm é difícil imaginar que um java para python / ruby ??compilador se tornaria tão popular como o GWT.

No encerramento javascript tem um problema de imagem (às vezes as pessoas pensam de línguas como a obtenção de mais difícil à medida que se tornam mais baixo nível e vice-versa).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top