Ur / Web neue rein funktionale Sprache für die Webprogrammierung? [geschlossen]

17

Ich bin auf das Ur / Web-Projekt gestoßen, als ich nach Web-Frameworks für Haskell-ähnliche Sprachen gesucht habe. Es sieht aus wie ein sehr interessantes Projekt, das von einer Person durchgeführt wurde.

Grundsätzlich handelt es sich um eine domänenspezifische, rein funktionale Sprache für die Webprogrammierung, die das Beste aus ML und Haskell herausholt. Die Syntax ist ML, aber es gibt Typklassen und Monaden von Haskell, und sie werden streng ausgewertet. Die Serverseite wird zu nativem Code kompiliert, der Client zu Javascript. Auf der Seite mit den Folien und den häufig gestellten Fragen finden Sie weitere angekündigte Vorteile.

Wenn ich mir die Demos und ihren Quellcode anschaue , finde ich das Projekt sehr vielversprechend. Die neueste Version ist 20110123 und befindet sich derzeit offenbar in der aktiven Entwicklung.

Hat hier jemand weitere Erfahrungen damit gemacht? Gibt es Probleme / Belästigungen im Vergleich zu Haskell, abgesehen von der etwas ausführlicheren ML-Syntax?

Phil
quelle
Nitpick: Ur / Web ist keine Programmiersprache für die Webprogrammierung. Ur ist eine Allzweck-Programmiersprache. Ur / Web ist ein in Ur geschriebenes Webframework, das das Typensystem von Ur nutzt, um statische Garantien für die Sicherheit und Funktionalität der Webanwendung bereitzustellen. (Um fair zu sein: Ur wurde speziell für die Unterstützung von Ur / Web entwickelt.)
Jörg W Mittag

Antworten:

24

Ich bin der Autor von Ur / Web. Ich habe gerade dieses Konto erstellt und habe daher nicht genug Mojo, um auf andere frühere Antworten zu antworten.

Mit Ur / Web können Plugins verschiedene Webprotokolle implementieren. Wenn Sie also ein anderes Protokoll als CGI, FastCGI oder HTTP anzeigen möchten, können Sie es möglicherweise implementieren oder mich bitten, es zu implementieren. :) Ich war mir bis jetzt überhaupt nicht bewusst, dass andere Leute nach einer Alternative suchen.

Was bedeutet es für die SQL-Programmierung, sich "gebündelt" zu fühlen?

Betreff: Beschwerden über das "Web 1.0" -Look, ich betrachte das als ein Feature, das Zeit spart für Leute, die diese Sprache nicht wirklich benutzen wollen. ;) Mir fehlen keine Funktionen, mit denen Sie verhindern können, dass Anwendungen geschrieben werden, die so aussehen, wie Sie möchten, und ich glaube, dass dies offensichtlich ist, wenn Sie die grundlegenden Einstellungen für Sprache und Bibliotheken vorgenommen haben.

Schließlich, ScantRoger, würde ich gerne etwas über Ihre Erfahrungen mit der Anwendung von Ur / Web bei einem Kunden erfahren! Ich weiß nicht, ob es schlecht wäre, hier meine Kontaktinformationen anzugeben, aber unten auf der Startseite von Ur befindet sich ein Link zu meiner persönlichen Website.

Adam Chlipala
quelle
11

Wir haben es für einen sicherheitsbewussten Client verwendet und Folgendes festgestellt:

  • Es ist eine Freude, mit einer Sprache zu arbeiten. Wir waren nicht der Meinung, dass die ML-basierte Syntax im Vergleich zu Haskell besonders ausführlich ist.
  • Außerhalb der auf http://www.impredicative.com/ur/ bereitgestellten Demos und Dokumentationen gibt es nur wenige Anleitungen .
  • Wir haben uns verwöhnt, dass viele andere Sprachen jetzt schnellere Schnittstellen zum Webserver haben. Die Verwendung von FastCGI fühlte sich wie ein Rückschritt an.
  • SQL-Programmierung fühlte sich ein bisschen zusammengerissen.
  • Aktualisieren Sie Ihre Mathematik, um zu verstehen, was die Sprache / das Framework für Sie bewirkt.

Negative können der Tatsache zugeschrieben werden, dass es brandneu ist. Gib es etwas Liebe. Es hat es verdient. Vielleicht können Sie ein Vokalanwalt werden und das Auffinden von Ur / Web-Ressourcen zu einem Kinderspiel machen.

Scant Roger
quelle
Vielleicht kannst du Adams Antwort kommentieren und erklären, was "zusammengeballt" bedeutet? Danke im Voraus.
Janus Troelsen
Was wären auch die "schnelleren Schnittstellen zum Webserver"? Meines Wissens ist FastCGI eines der schnellsten (optimierten) Protokolle zum Austausch von HTTP-Anforderungs- / Antwortdaten. Die Unterstützung von Nginx für FastCGI ist der von Nginx unterlegen, und die meisten modernen PHP-Setups (zum Beispiel) sind Nginx + PHP-FPM über FastCGI. (Oder vielleicht hatte diese Antwort schon eine Bedeutung in '11 ...)
Tobia
3

Das eine, worüber ich mir Sorgen machen würde, ist, dass es noch ziemlich neu ist. Haskell und Erlang gibt es schon lange. Dies bedeutet, dass viele der einfachen Fehler in beiden Sprachen längst behoben sind. Ich wäre sehr skeptisch, dass ihr Code aus diesem Grund so schnell und sicher ist, wie Sie es in haskell tun können.

Auch die Demos sahen sehr web 1.0 aus.

Zachary K
quelle
Ja, ich bin damit einverstanden, dass die Demos ein bisschen primitiv aussehen. Aber wenn es das gleiche Leistungsniveau wie Haskell hat, wird es meiner Meinung nach bald mehr Funktionen geben. Ich war auch skeptisch in Bezug auf den Teil "effizienter als typisches C". Aber diese Arbeit ist ziemlich beeindruckend, wenn wirklich alles von nur einer Person erledigt wurde: D
Phil
Ich werde irgendwann einen längeren Blick darauf werfen, zum Teufel, ich hoffe, sie machen es gut! Mehr Frameworks und Leute, die neue Sachen ausprobieren, sind immer gut
Zachary K