53 votes

Quel est le compilateur Haskell en JavaScript le plus productif pour écrire du code exécuté dans le navigateur?

Je ne recherche pas forcément un super-solution robuste avec 10 ans d'expérience, mais pour quelque chose qui peut être utilisé dans des applications réelles, et va au-delà d'être simplement capable d'exécuter un exemple Hello World.

Ma préférence est pour exécuter le compilateur sur le serveur, afin que je puisse compiler du code Haskell à l'avance. Bien sûr, la solution a besoin d'être plus que juste un 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 vu jusqu'à présent ne semblent pas être activement maintenu, ou pour aller au-delà d'être en mesure d'exécuter "Hello world", ou, dans certains cas, même pour aller au-delà de la description du projet.

16voto

Dve Points 4225

Il y a une liste plus complète ici:

http://www.haskell.org/haskellwiki/The_JavaScript_Problem

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

http://fay-lang.org/

9voto

Adam Gent Points 15055

Vous pouvez trouver cette liste utile: https://github.com/jashkenas/coffee-script/wiki/List-of-languages-that-compile-to-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 Coffee est basé sur l'expression et plutôt élégant.

8voto

Rotsor Points 6987

Je suis tombé sur ce projet appelé ghcjs

Il semble prometteur!

Citation de l' README:

Haskell pour Javascript traducteur

Le projet vise à fournir une solution à

  • compiler moderne Haskell bibliothèques de fichiers Javascript et l'utilisation dans les applications Ajax ou
  • développer l'ensemble de l'application Ajax en Haskell langue

La version précédente du projet est situé à vir.mskhug.ru.

8voto

jerng Points 80

Alors que GHCJS ne semble pas être activement maintenu, Emscripten semble être tout à fait actuel.

  • Emscripten compile LLVM bitcode de JavaScript.
  • GHC de LLVM backend semble être activement développé.
  • Intuitivement, pour répondre à la question, la suite de pipeline pourrait ne pas être très loin de la "qualité de la production": Haskell lexèmes (-> GHC ->) LLVM lexèmes (-> Emscripten - > JavaScript lexèmes

Je vais vous avouer que c'est une spéculation post.

2voto

KajMagnus Points 2580

Cette langue, Roy, est peut-être pas vraiment Haskell (?), mais il semble très similaire:

http://roy.brianmckenna.org/

Roy semble être revenu à la vie; il y a beaucoup de fourches dans le dépôt GitHub: https://github.com/pufuwozu/roy
et il semble être en vie: https://github.com/pufuwozu/roy/graphs


Si vous êtes à l'aide de Play Framework 2.0, alors il y a un plugin, Ray, afin d'exécuter du Roy sur Play Framework 2.0:

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

Le dernier commit était il y a quatre mois, ce qui est plutôt longtemps en gardant à l'esprit que le Jeu de Cadre 2 est sorti, peut-être 4 ou 5 mois.

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