Pourquoi ne prend-on en charge que JavaScript et certains VBScript dans les navigateurs actuels? Je sais que JavaScript est bon et tout, mais la possibilité d'utiliser un autre langage de programmation ne permettrait-elle pas de promouvoir différents styles de développement?
web-development
javascript
browser
Eric Packwood
la source
la source
Réponses:
Il n'est pas nécessaire d'ajouter suport pour plusieurs langues, une solution consisterait à normaliser un bytecode générique pouvant être utilisé par les développeurs de langage. Mais il n'y a actuellement aucun plan pour cela (cela a été suggéré).
Les langages peuvent également être implémentés sur Javascript. Javascript est suffisant pour permettre à d’autres langages de s’implémenter. Et il existe déjà de nombreux exemples de cela.
la source
<script type="text/cpp" src="test.cpp"></script>
.JavaScript est la norme de facto depuis 1996. Être une norme simplement parce qu'il n'y a pas de concurrence n'est pas tout à fait juste, mais je n'ai pas beaucoup entendu se plaindre de la raison pour laquelle aucune autre langue n'est incluse.
Ajouter un autre langage "standard" favorise toutes sortes de petits problèmes amusants.
la source
Pensez aux incohérences entre les navigateurs pour leur prise en charge de JavaScript uniquement. Maintenant, réfléchissez à ce que ce serait s'il y avait plus de langues.
la source
Les navigateurs doivent être standardisés pour que ce que vous développez fonctionne partout, sur tous les navigateurs.
Si vous avez plusieurs langues en jeu, vous devez vous assurer qu'elles fonctionnent toutes de manière très similaire. Si vous êtes un développeur Web et que vous avez le choix entre plusieurs langues, celles-ci pouvant ou non être prises en charge dans certains pays, il s'agit d'un casse-tête supplémentaire.
Javascript est un langage très flexible, il est impératif, il est fonctionnel, il peut être OOP (à la manière avec des prototypes), et il est interprété. Maintenant, avec des moteurs décents comme dans Chrome, il est raisonnablement capable de faire de bonnes choses. Des langues supplémentaires ne feraient que ramener les choses ici, regarder VBScript, IE uniquement, et ainsi tout ce qui y est écrit est lié à un navigateur et à une plate-forme particuliers, le cauchemar.
la source
Au lieu de les intégrer dans les navigateurs, les éditeurs préfèrent créer des plug-ins de navigateur encombrants - Java, Flash, Silverlight, etc. Cela garantit la cohérence entre plates-formes.
la source
L’une des raisons est qu’il est pratiquement impossible pour différents éditeurs de navigateurs de s’entendre même sur une implémentation Javascript standard et que javascript est utilisé depuis toujours, du moins du point de vue du langage Web. La plupart des gens pensent donc à juste titre qu'il est pratiquement impossible d'intégrer un autre langage client dans l'écosystème et de faire en sorte que tous les fournisseurs le supportent. La plupart des personnes qui pourraient le réaliser sont déjà impliquées dans les problèmes de standardisation Javascript, ce qui, à mon avis, est bien meilleur. utiliser leur temps.
la source
Plusieurs réponses prétendent que la prise en charge de plusieurs langues rendrait très odieux pour les constructeurs de navigateurs Web de s’assurer qu’ils sont compatibles avec toutes les langues. Pour moi cela semble incorrect.
Java, par exemple, est un standard extrêmement bien défini. Pour l'essentiel, tout ce que vous avez à faire est d'exposer le DOM du navigateur en tant qu'API Java et d'exécuter la machine virtuelle Java (JVM) dans votre navigateur Web. Vous pouvez spécifier que le code de script doit être fourni sous forme de fichiers JAR compilés et signés, ou sous forme de code source JavaScript. Si le navigateur rencontre du code JavaScript, il peut l'exécuter via un interpréteur dédié (comme aujourd'hui) ou via Rhino au-dessus de la machine virtuelle. S'il rencontre des fichiers jar, il crée un nouveau chargeur de classes et un sandbox de sécurité, charge le bytecode java en mémoire et l'exécute. Cela serait totalement compatible avec les pages Web existantes et permettrait au navigateur, en un seul geste, de prendre en charge les dizaines de langues exécutées sur la machine virtuelle.
Autres avantages:
la source
Je crois que JavaScript va gagner encore plus de terrain en tant que langage standard pour le Web. Nous assistons à une augmentation du code JavaScript côté serveur. Voici quelques exemples d'implémentations de ce langage puissant sur le serveur:
Serveur Web POW SJS - JavaScript côté serveur pour le serveur Web POW, qui s'exécute en tant qu'extension Firefox ou en tant qu'application XULRunner. SJS joue un rôle similaire à celui de PHP dans Apache en ce sens qu'il peut se connecter à des bases de données et générer du contenu côté client.
NodeJS - JavaScript côté serveur qui utilise un modèle basé sur des événements. Il est construit à l'aide du moteur JavaScript V8 de Google . NodeJS est présenté comme un outil de création de programmes réseau évolutifs. Un serveur Web "Hello World" peut être écrit en seulement 6 lignes courtes!
Jaxer - Un serveur JavaScript qui interprète tous les blocs de script en
runat="server"
tant que JavaScript côté serveur. Des applications Web entières peuvent être écrites en JavaScript.Rhino - JavaScript pour Java - Mozilla a créé cette implémentation JavaScript côté serveur qui s'exécute sur Java. Il s'agit essentiellement d'un concept similaire à Querces PHP pour Java , Jython, JRuby et de nombreuses autres abstractions d'autres langages exécutés sur la JVM. Rhino est généralement utilisé pour incorporer JavaScript dans Java afin de fournir des outils de script aux utilisateurs finaux, mais il peut également être utilisé pour déplacer le code côté client sur le serveur sans avoir à réécrire la logique métier dans un autre langage!
JQuery Claypool - Infrastructure JavaScript côté serveur utilisant la puissance de JQuery sur le serveur. Très sympa! Il est développé à l'aide de la mise en œuvre JavaScript d'un navigateur par EnvJs côté serveur.
EnvJs - Un navigateur sans tête construit sur Rhino.
Nombre de ces implémentations et de ces infrastructures démontrent que JavaScript devient une force si puissante dans le développement Web que les leaders de la communauté ont déjà commencé à transférer JavaScript sur le serveur. JavaScript est un langage de programmation fonctionnel extrêmement puissant, et avec le temps, je pense que nous le verrons évoluer.
En résumé, il semble être une contradiction de porter les autres langues sur le navigateur, alors que nous pouvons transférer ce langage unique sur le serveur et combler cette lacune de manière plus unifiée.
la source
Il existe plusieurs exemples d’outils permettant de compiler d’autres langages en javascript, notamment Haskel, Lisp et Python (probablement d’autres). Donc, si vous voulez travailler dans l'une de ces langues, vous pouvez le faire.
Et je pense qu'un de mes professeurs d'université a écrit une implémentation de schéma en Javascript. Donc, si vous aimez les régimes, vous pouvez le faire aussi.
la source
Les gens ont pallié le manque de variété intégrée de deux manières: en utilisant des plugins tels que des applets flash ou java et en construisant des couches utilisant en quelque sorte le javascript comme "code machine", comme jquery ou le toolkit Web Google. Si un nouveau style de développement était assez populaire, les gens trouveraient un moyen de le faire entrer.
Sachez simplement que si vous créez un runtime .net en javascript et que cela devient de plus en plus populaire, certains cercles maudiront votre nom sur Internet à tout jamais.
la source