83 votes

Pourquoi javascript est-il le seul langage de script côté client implémenté dans les navigateurs ?

Pourquoi les navigateurs ne prennent-ils pas en charge, par exemple, les scripts Python comme alternative à Javascript ? Ou des langages de script plus généraux ? Y a-t-il une raison pour que Javascript soit le seul à être implémenté dans les navigateurs ? Après tout, la balise script permet de spécifier le langage de script utilisé.

(Je sais qu'il existe un support VBScript dans IE, mais il semble obsolète à toutes fins utiles).

51voto

vcsjones Points 51910

Eh bien, Google essaie d'aller à l'encontre de cette tendance avec Dart . La communauté n'a pas été entièrement réceptive à l'idée non plus.

Google a proposé d'ajouter la prise en charge de plusieurs VM pour Webkit ce qui ne s'est pas très bien passé.

Un commentaire particulier a bien résumé la raison pour laquelle il y a eu une certaine résistance à ce sujet :

Dans ce cas, la fonctionnalité consiste à exposer des langages de programmation supplémentaires au web, ce qui ne présente aucun avantage réel pour qui que ce soit d'autre que les fans du langage actuel "le plus génial" (il n'y a pas si longtemps, cela aurait pu être Go, il y a un an environ, cela aurait été ruby, avant python, je me souviens d'un bref regain de popularité de haskell il n'y a pas si longtemps également, Lua est sur le point d'être utilisé depuis longtemps, dans ce cas, c'est Dart - qui peut dire qu'il n'y aura pas un langage complètement différent en vogue dans 6 mois ? ), mais en tant que coût, il fragmente le web et ajoute une charge de maintenance supplémentaire substantielle - rien que la maintenance des bindings v8 et jsc n'est pas triviale et ils sont pour le même langage.

Le problème ici n'est pas "pouvons-nous faire vivre de multiples vms dans webkit" mais "pouvons-nous exposer de multiples langages au web", au premier je dis évidemment comme nous le faisons déjà, au second je dis que nous ne le voulons pas.

À moins que nous ne voulions faire de webkit le moteur que tout le monde déteste à cause de toutes ses "caractéristiques" uniques qui brisent le web ouvert, comme certains navigateurs à la fin des années 90.

CoffeeScript est un autre exemple de langage de script côté client émergent. Cependant, plutôt que de prendre en charge une autre machine virtuelle dans un navigateur (comme Google essaie de le faire avec Dart), il compile en JavaScript. Il existe plusieurs autres "compilations X en JavaScript" qui font de même. emscripten est un bon exemple de compilation LLVM à JavaScript.

Il existe donc de nombreux autres langages clients ; ils utilisent simplement tous JavaScript comme intermédiaire. Je dirais que c'est ce que Dart fait aussi, bien que ils ont une certaine marge de progression .

7voto

Martin Broadhurst Points 3777

Internet Explorer prend en charge tout Moteur script Windows Vous pouvez donc lui faire supporter n'importe quel langage qui a été implémenté comme tel, ou écrire le vôtre.

2voto

Quentin Points 325526

Parce que JavaScript est ce que tous les autres navigateurs supportent, et les vendeurs de navigateurs avaient deux priorités principales :

  1. S'assurer que les pages Web existantes fonctionnent (ce qui nécessite JavaScript).
  2. Permettre aux auteurs de faire dans leur navigateur des choses visibles par l'utilisateur qu'ils ne peuvent pas faire dans d'autres navigateurs (le changement de langage de programmation serait entièrement caché aux utilisateurs, sauf en cas de panne).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X