Question

Inspiré par cette question .

Je vois souvent des gens se référer à JavaScript en tant que langage de bas niveau, en particulier parmi les utilisateurs de GWT et de boîtes à outils similaires.

Ma question est: pourquoi? Si vous utilisez l'une de ces boîtes à outils, vous vous écartez de certaines des fonctionnalités qui rendent JavaScript si agréable à programmer: fonctions en tant qu'objets, saisie dynamique, etc. .

C’est comme appeler un bas niveau C ++ car la bibliothèque standard est plus petite que l’API Java. Je ne suis pas un programmeur C ++, mais je doute fort que tous les programmeurs C ++ écrivent leurs propres interfaces graphiques et leurs propres bibliothèques réseau.

Était-ce utile?

La solution

C’est un langage de haut niveau, compte tenu de sa souplesse (fonctions d’objets, etc.)

Mais tout ce qui est couramment compilé peut être considéré comme un langage de bas niveau simplement parce que c'est une cible pour la compilation et de nombreuses langues peuvent maintenant être compilées pour JS en raison de son rôle unique en tant que langue de contrôle DOM du navigateur.

Parmi les langages (ou sous-ensembles) pouvant être compilés dans JS:

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

Autres conseils

Répondre à une question qui dit "Pourquoi est-ce que quelque chose est parfois appelé X ..." avec "ce n'est pas X" est complètement côté de la question, n'est-ce pas?

Pour beaucoup de gens, "faible niveau" et " haut niveau " sont des idées abstraites flexibles qui s’appliquent différemment lorsque vous travaillez avec des systèmes différents. Pour les gens qui ne sont pas tous accrochés au passé (il n'y a pas de langage moderne de bas niveau pour certaines personnes), le haut ou le bas d'un langage fera généralement référence à sa proximité avec la machine cible. est. Cela inclut les machines virtuelles, dont un navigateur est maintenant jours. Désolé pour tous les gars qui recherchent un asm sur le matériel de base.

Lorsque vous considérez le navigateur comme une machine virtuelle, javascript est aussi proche que possible du matériel (factice). C’est le point de vue de beaucoup de ceux qui appellent javascript. avoir. Je pense que c’est une distinction inutile à faire et que les gens ne devraient pas s’arrêter sur ce qui est bas et ce qui est haut.

" Faible " ici a la même signification que dans les phrases "Le nombre de victimes subies au cours de la première guerre mondiale était faible", et "la crème glacée à teneur réduite en matières grasses est faible en calories". C'est logique quand il y a un point de comparaison évident, mais hors contexte, c'est tout simplement absurde.

Beaucoup de gens le disent parce que les objets et les structures fournis en JavaScript sont aussi simples que possible. Pour développer toute fonctionnalité réelle, vous devez utiliser une bibliothèque externe. Le bas niveau est une mauvaise façon de le dire, car cela a déjà un sens en informatique. Une meilleure façon de dire que c'est peut-être sans bibliothèques intégrées.

Comparez cela avec Java, où le langage actuel ne fait pas grand chose. Essayez de créer un tableau sans ArrayList ou d'accéder au système de fichiers sans les bibliothèques d'IO. La plupart des langues ne sont pas que des bases, elles sont fournies avec cette fonctionnalité supplémentaire.

Avec JavaScript, le seul véritable pouvoir que nous obtenons provient des API introduites par les navigateurs et ne faisant pas partie du langage. Des éléments comme la manipulation DOM et Ajax sont fournis par le navigateur.

Il serait peut-être préférable de résumer tout cela en affirmant qu'avec un langage comme Java, vous pouvez commencer à travailler sérieusement sans avoir à télécharger des bibliothèques tierces, mais avec JavaScript, vous devez soit télécharger une bibliothèque, soit utiliser une bibliothèque. écrivez votre propre bibliothèque.

Je ne considère pas le javascript comme un langage de bas niveau. Il fournit de nombreuses fonctionnalités et des boosters d’expérience utilisateur. Peut-être que d'autres le verront comme tel simplement parce que les utilisateurs peuvent le désactiver dans les options de leur navigateur, mais c'est un langage extrêmement robuste qui gère virtuellement le Web sur pratiquement tous les types de navigateurs ...

Ce n'est pas le cas, cela peut être aussi bas que ce que vous pouvez obtenir dans la programmation de navigateur normale, mais c'est comparable à des langages fonctionnels comme Scheme ou Python.

Je pense que les grands manques de Javascript sont le manque d'espaces de noms ou d'emballages et l'absence de threads

Il s’agit d’un niveau bas comparé à GWT et à des kits d’outils similaires, mais ce n’est pas un langage bas niveau dans l’ensemble. Les fonctionnalités proposées sont de très haut niveau: fermetures, typage dynamique et héritage prototypique ne sont que quelques exemples de ses fonctionnalités de haut niveau.

Il est considéré comme un faible niveau par un certain nombre de personnes qui préfèrent écrire Java pour générer du javascript puis écrire du javascript (c’est-à-dire qu’ils n’aiment pas cela de manière juste ou injuste). Beaucoup de gens se plaignent de java ces derniers temps, mais malgré l’absence de vérification de type statique, la plupart des gens penseraient probablement que ruby ??et python sont plus faciles à écrire dans la plupart des cas (java étant un langage statique assez simple, qui est beaucoup plus difficile à concevoir sans grand format. -in fonctions définit alors un langage simple et dynamique).

Peu de gens appelleraient python ou ruby ??bas niveau comparé à java et si les gens étaient forcés de cibler un python ou un ruby ??vm, il est difficile d’imaginer qu’un compilateur java à python / ruby ??deviendrait aussi populaire que gwt.

En conclusion, javascript a un problème d’image (les gens pensent parfois que les langues deviennent de plus en plus difficiles au fur et à mesure qu’elles deviennent de plus en plus basses et vice-versa).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top