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 .