web-dev-qa-db-fra.com

Quel est le compilateur JavaScript le plus de niveau de production à JavaScript pour écrire du code en cours d'exécution dans le navigateur?

Je ne cherche pas une solution nécessairement super robuste avec un enregistrement de piste de 10 ans, mais pour quelque chose qui peut être utilisé dans une vraie application, et va au-delà de pouvoir exécuter un exemple de monde Hello World.

Ma préférence est d'exécuter le compilateur sur le serveur afin que je puisse compiler le code HASKELL à l'avance. Bien sûr, la solution devrait être plus qu'un simple compilateur et activer le code HASKELL pour accéder à l'API disponible sur le navigateur (DOM, XHR ...).

Note de bas de page: Les projets que j'ai vus jusqu'à présent ne semblent pas être entretenus activement, ni d'aller au-delà de pouvoir diriger "Hello World", ou même pour aller au-delà d'une description de projet.

55
avernet

Il y a une liste plus complète ici:

http://www.hakell.org/hakellwiki/the_javascript_problem

et il y a aussi FAY (bien que ce ne soit qu'un sous-ensemble de haskell)

https://github.com/faylang/fay

16
Dve

Vous trouverez peut-être cette liste utile: https://github.com/jashkenas/coffee-script/wiki/list-of-languages-that-compile-à-js

De la liste:

* UHC (Utrecht Haskell Compiler) backend converts UHC core to JavaScript, allowing the compiling of Haskell code to JS.
* YHC (York Haskell Compiler) backend, as above but with YHC core language.
* jshaskell

Je sais que ce n'est pas Haskell, mais le script de café est une expression basée sur l'expression et plutôt élégant IMHO.

9
Adam Gent

Alors que les GHCJ ne semblent pas être activement maintenus, EMSCRIPTEN semble être assez courant.

  • EMSCRIPTEN compile LLVM code bit sur javascript.
  • Backend LLVM de GHC semble être activement développé.
  • Intuitivement, pour répondre à la question, le pipeline suivant pourrait ne pas être très loin de la "qualité de la production": Haskell Lexemes (-> GHC ->) LLVM Lexemes (-> EMSCRIPTEN ->) JavaScript Lexemes

Je vais admettre que c'est un poste spéculatif.

8
jerng

J'ai trébuché sur ce projet appelé GHCJ

Cela semble prometteur!

Devis du README:

Haskell à JavaScript Traducteur

Le projet vise à fournir une solution à

  • compiler des bibliothèques de haskell modernes aux fichiers JavaScript et les utiliser dans Ajax Applications ou
  • développer une application AJAX entière dans la langue Haskell

La version précédente du projet est située à VIR.MSKHUG.R .

8
Rotsor

Cette langue, Roy , n'est peut-être pas vraiment haskell (?), Mais il semble très similaire:

http://roy.brianmckenna.org/

Roy semble être vivant; Il y a beaucoup de fourches dans le repo GitHub: https://github.com/pufuwozu/roy
[.____] et il semble être en vie: https://github.com/pufuwozu/roy/graphes


[.____] Si vous utilisez Play Framework 2.0, il y a un plugin, Ray , pour exécuter ROY sur Play Framework 2.0:

http://brianmckenna.org/blog/ray
[.____] https://github.com/pufuwozu/ray

La dernière validation était il y a quatre mois, ce qui est plutôt si longtemps en gardant à l'esprit que le cadre de jeu 2 a été publié il y a peut-être 4 ou 5 mois.

2
KajMagnus

Il y a une liste de candidats "la plupart des niveaux de production" de Yesod: https://github.com/yesodweb/yesod/wiki/javascript-Options (Yesod est un webframwork de haskell très populaire afin qu'ils puissent savoir de quoi ils parlent)

0
Gerold Meisinger