Je serai brutalement honnête: je déteste écrire du code côté client en JavaScript. Je ne suis pas fan de cette langue, c'est le moins qu'on puisse dire.
Il me semble stupide que les navigateurs prennent en charge un langage de programmation , plutôt qu'une machine virtuelle intermédiaire (comme CIL ou JVM). Ce dernier permettrait aux programmeurs d'écrire dans une langue de leur choix (dans une certaine mesure), plutôt que dans une langue fixe prédéfinie. Ce langage pourrait évoluer plus rapidement, car seules les modifications apportées à CIL / JVM / tout ce qui nécessiterait la mise à niveau de chaque navigateur principal. Les fonctionnalités linguistiques peuvent être ajoutées sans affecter l'ancienne expérience du navigateur.
Les économies massives d'efforts que les langages intermédiaires entraînent sont bien connues . Existe-t-il des initiatives pour promouvoir le "scripting" du navigateur dans autre chose que JavaScript, et en particulier dans une machine virtuelle déjà conçue, développée et optimisée? Ont-ils un élan?
la source
Réponses:
Pour répondre à votre question, oui, des efforts sont faits pour déprécier Javascript au profit d'un langage plus cohérent pour les scripts web. Google a mis beaucoup d'effort derrière son langage Dart . Dart a sa propre machine virtuelle qui est déjà intégrée à Chrome, mais je ne sais pas si les autres navigateurs l'ont déjà adoptée. Il existe également un langage assez prometteur appelé CoffeeScript .
Il y a aussi un projet très ambitieux appelé HaXe qui vise à unifier toute une série de plateformes de développement avec un seul langage.
Croyez-moi, vous n'êtes pas le seul à ne pas aimer Javascript, mais je crains que cela ne se produise pas bientôt - en fait, il semble gagner beaucoup d'élan avec les applications HTML5 / JS de Windows 8, etc., mais des alternatives comme celles que je mentionnés commencent à apparaître :)
la source
onSomething
gestionnaire d'événements - l'analyse et l'interprétation de 10 à 20 caractères d'un langage de script simple est beaucoup plus efficace.Javascript lui-même peut être considéré comme un langage intermédiaire, définissant une machine virtuelle dans laquelle d'autres langues peuvent être compilées. Dans des projets comme GWT, cette notion prend déjà son envol. Ce n'est peut-être pas ce que vous concevez à partir de zéro, mais cela devient déjà une réalité que vous pouvez compiler "votre langue préférée" en Javascript.
la source
Essentiellement, non. Vous êtes à peu près coincé avec Javascript.
Cela dit, il y a eu des efforts dans le passé pour intégrer d'autres langues (applets java, vbscript, etc.). Chacune d'elles n'a jamais vraiment gagné la traction que javascript a parce que javascript est intégré .
La seule façon de construire ce à quoi vous faites référence serait de créer un langage de script qui s'exécute sur une machine virtuelle, côté client compilé, puis exécuté. Ensuite, chaque navigateur devrait implémenter la machine virtuelle dans sa propre base de code afin que tout le code s'exécute sur tous les navigateurs. Ensuite, vous devez vous assurer d'avoir une sorte de normes pour que tous les navigateurs exécutent les commandes de la même manière. Bien sûr, les navigateurs étant créés indépendamment, il y aurait probablement des bizarreries que les développeurs devraient garder à l'esprit.
Mais maintenant, nous venons de décrire Javascript.
Donc au final, vos choix sont:
Essentiellement, si vous voulez un langage intégré, vous êtes coincé avec Javascript.
la source
En fait, vous ne détestez pas le javascript, comme décrit dans les normes Ecma, mais vous détestez la terrible implémentation sur divers navigateurs , avec leurs bizarreries, bogues et wtfs. Le Javascript côté serveur est en fait assez agréable. Le modèle DOM est également à l'origine de 80% de la douleur du javascript côté client.
Si vous souhaitez toujours utiliser un autre langage, vous pouvez utiliser GWT , qui vous permet essentiellement d'écrire Java, puis de le compiler en (laid) javascript, ou CoffeeScript , qui est un sucre syntaxique sur JS, qui se compile en JS.
la source
{
d'un objet sur différentes lignes. Quel "cadre de fonctionnalités modernes" manque-t-il?Cette question revient de temps en temps.
Pourquoi n'avons-nous pas d'autres langues dans les balises de script au lieu de simplement Javascript
À l'époque, IE a introduit VB comme alternative à Javascript. Je pense que vous pouvez déjà voir comment cela conduirait à l'enfer des normes si cela se propageait ...
Alors pourquoi pas un langage intermédiaire standard commun alors?
Il y a un vieux podcast de Brendan Eich expliquant pourquoi il ne voit pas de langage de bytecode intermédiaire dans un avenir proche:
http://www.aminutewithbrendan.com/pages/20101122
http://news.ycombinator.com/item?id=1893686
Le problème de base est que tandis que le langage intermédiaire (comme CIL et les bytecodes JVM) essaie d'être générique, la plupart du temps, il s'avère qu'ils sont de niveau trop bas et trop liés aux langages de haut niveau d'origine qui les ont compilés. Par exemple, vous ne pouvez pas vraiment implémenter des fonctions récursives de queue dans la JVM - quelles autres fonctionnalités de langage ou choix d'implémentation serons-nous incapables d'implémenter si nous nous couplons à une abstraction de bytecode de bas niveau trop tôt?
Pendant ce temps, Javascript est un langage flexible de haut niveau avec une sémantique établie et des implémentations multiples, différentes et efficaces. Ce que nous pourrions voir à l'avenir, c'est Javascript lui-même en tant que langage intermédiaire - Malheureusement, c'est un peu immature et peu de langues se compilent en JS à ce jour.
la source
Oui. Vous pouvez déjà compiler Dart, Coffeescript et Java en Javascript. Vous avez Emscripten, qui est un backend de compilateur pour LLVM pour générer du bytecode Javascript (et LLVM gère pas mal de langues, je crois).
Mais à part la compilation en JS, pas dans un court laps de temps. IE6 a 10 ans et continue de donner des coups de pied. J'espère que les navigateurs actuels (qui ne prennent pas en charge d'autres langues) ne survivront pas aussi longtemps, mais ils resteront en place pendant quelques années, provoquant le cycle mordant de la queue "nous devons encore prendre en charge les navigateurs qui ne prennent en charge que Javascript, nous devons donc utiliser Javascript ", d'une manière beaucoup plus difficile que de dire CSS3 - votre site pourrait fonctionner sans CSS3, mais essayez de le faire fonctionner sans script côté client.
la source
Vous pourriez avoir de la chance. Voici le premier paragraphe d'une soumission sur le forum webkit-dev:
Vous pouvez voir le reste du message ici .
la source
JavaScript est l'âme même des navigateurs, c'est pourquoi la majorité des nouvelles tentatives génèrent du JavaScript (CoffeeScript en est un exemple clair).
Dans GWT, vous codez votre logique côté client dans le langage de programmation Java et la boîte à outils avec génère JavaScript.
ClojureScript est un projet intéressant si vous êtes en codage Lisp.
Donc, quoi qu'il en soit, JavaScript est là pour rester. (COBOL du web peut-être?).
la source
Il existe déjà un certain nombre de compilateurs qui ciblent le javascript, et vous pouvez choisir n'importe quelle langue qui se compile en javascript.
Votre lien traitant de la valeur des langages intermédiaires en parle dans le contexte de l'implémentation d'une suite de compilateurs, et non dans la fourniture de code qui sera expédié sur un réseau et exécuté sur une machine cliente. Javascript n'est peut-être pas le meilleur format pour cela, mais quoi qu'il en soit, il ne ressemblera pas beaucoup aux bytecodes CIL ou java.
Si vous détestez le javascript, je vous suggère de vous déplacer dans l'espace de développement intégré, scientifique ou de jeu, où C, Fortran et C ++ régissent le perchoir. Les applications métier évoluent sur le Web, ce qui signifie plus de Javascript, pas moins.
la source