Ur / Web nouveau langage purement fonctionnel pour la programmation web? [fermé]

17

Je suis tombé sur le projet Ur / Web lors de ma recherche de frameworks web pour les langages de type Haskell. Cela ressemble à un projet très intéressant réalisé par une seule personne.

Fondamentalement, c'est un langage purement fonctionnel spécifique au domaine pour la programmation Web, prenant le meilleur de ML et Haskell. La syntaxe est ML, mais il existe des classes de types et des monades de Haskell, et elle est strictement évaluée. Côté serveur est compilé en code natif, le client en Javascript. Voir les diapositives et la page FAQ pour d'autres avantages annoncés.

En regardant les démos et leur code source , je pense que le projet est très prometteur. La dernière version est quelque chose 20110123, donc elle semble être en cours de développement actif en ce moment.

Quelqu'un ici en a-t-il eu une expérience supplémentaire? Y a-t-il des problèmes / désagréments par rapport à Haskell, à part la syntaxe légèrement plus verbeuse de ML?

Phil
la source
Nitpick: Ur / Web n'est pas un langage de programmation pour la programmation Web. Ur est un langage de programmation à usage général, Ur / Web est un cadre Web écrit en Ur, qui tire parti du système de type d'Ur pour fournir des garanties statiques sur la sécurité et la fonctionnalité de l'application Web. (Pour être juste, cependant: Ur a été spécialement conçu pour prendre en charge Ur / Web.)
Jörg W Mittag

Réponses:

24

Je suis l'auteur d'Ur / Web. Je viens de créer ce compte et je n'ai donc pas assez de mojo pour répondre aux autres réponses passées.

Ur / Web permet aux plugins d'implémenter différents protocoles Web, donc, si vous voulez voir un autre protocole en plus de CGI, FastCGI ou HTTP, vous pourrez peut-être l'implémenter ou me demander de l'implémenter. :) Je ne savais vraiment pas à ce point que d'autres personnes recherchaient.

Qu'est-ce que cela signifie pour la programmation SQL de se sentir "groupée"?

Re: les plaintes concernant le look "Web 1.0", je pense que c'est une fonctionnalité conçue pour gagner du temps pour les gens qui ne veulent pas vraiment utiliser ce langage. ;) Il n'y a pas de fonctionnalités manquantes à ma connaissance qui empêchent d'écrire des applications qui vous ressemblent, et je pense que cela apparaît une fois que vous avez défini la configuration de base du langage et des bibliothèques.

Enfin, ScantRoger, je serais ravi de connaître vos expériences d'application d'Ur / Web avec un client! Je ne sais pas si ce serait une mauvaise forme de donner mes coordonnées ici, mais il y a un lien vers mon site Web personnel au bas de la page d'accueil d'Ur.

Adam Chlipala
la source
11

Nous l'avons utilisé pour un client soucieux de la sécurité et avons noté ce qui suit:

  • En tant que langue, c'est un plaisir de travailler avec. Nous ne pensions pas que la syntaxe basée sur ML soit particulièrement verbeuse par rapport à Haskell.
  • Il existe de précieux conseils en dehors des démonstrations et de la documentation fournies sur http://www.impredicative.com/ur/ .
  • Nous avons été gâtés que de nombreuses autres langues aient désormais des interfaces plus rapides avec le serveur Web. L'utilisation de FastCGI ressemblait à un pas en arrière.
  • La programmation SQL s'est un peu resserrée.
  • Révisez vos mathématiques pour bien comprendre ce que le langage / le cadre fait pour vous.

Tout négatif peut être attribué au fait qu'il est tout neuf. Donnez-lui un peu d'amour. Il le mérite. Peut-être que vous pouvez devenir un défenseur vocal et faire de la recherche de ressources Ur / Web moins une corvée.

Scant Roger
la source
Peut-être pouvez-vous commenter la réponse d'Adam et expliquer ce que signifie "groupé"? Merci d'avance.
Janus Troelsen
Quelles seraient également les «interfaces plus rapides avec le serveur Web»? Pour autant que je sache, FastCGI est l'un des protocoles les plus rapides (les plus optimisés) pour échanger des données de requête / réponse HTTP. Le support de Nginx pour FastCGI est inférieur à aucun, et en fait la plupart des configurations PHP modernes (par exemple) sont Nginx + PHP-FPM sur FastCGI. (Ou peut-être que cette réponse avait un sens en '11…)
Tobia
3

La seule chose dont je m'inquiéterais, c'est qu'il est encore assez nouveau. Haskell et Erlang existent tous les deux depuis longtemps. Cela signifie que de nombreux bogues faciles dans les deux langues ont depuis longtemps été résolus. Je serais très sceptique que leur code soit aussi rapide et sûr que vous pouvez le faire dans haskell pour cette raison.

De plus, les démos avaient l'air très web 1.0.

Zachary K
la source
Oui, je suis d'accord que les démos sont un peu primitives. Mais s'il a le même niveau de puissance que Haskell, je pense qu'il y aura bientôt plus de fonctionnalités. J'étais également sceptique quant à la partie "plus efficace que le C typique". Mais ce travail est assez impressionnant si tout a vraiment été fait par une seule personne: D
Phil
Je vais jeter un coup d'œil plus long à un moment donné, j'espère qu'ils s'en sortent bien! Plus de frameworks et de gens qui essaient de nouvelles choses sont toujours bons
Zachary K