Ur / Web nuevo lenguaje puramente funcional para la programación web? [cerrado]

17

Encontré el proyecto Ur / Web durante mi búsqueda de marcos web para idiomas similares a Haskell. Parece un proyecto muy interesante realizado por una persona.

Básicamente, es un lenguaje puramente funcional de dominio específico para la programación web, aprovechando lo mejor de ML y Haskell. La sintaxis es ML, pero hay clases de tipos y mónadas de Haskell, y se evalúa estrictamente. El lado del servidor se compila en código nativo, el cliente en Javascript. Consulte las diapositivas y la página de preguntas frecuentes para conocer otras ventajas anunciadas.

Mirando las demos y su código fuente , creo que el proyecto es muy prometedor. La última versión es algo 20110123, por lo que parece estar en desarrollo activo en este momento.

¿Alguien aquí ha tenido más experiencia con él? ¿Hay problemas / molestias en comparación con Haskell, aparte de la sintaxis un poco más detallada de ML?

Phil
fuente
Nitpick: Ur / Web no es un lenguaje de programación para programación web. Ur es un lenguaje de programación de propósito general, Ur / Web es un marco web escrito en Ur, que aprovecha el sistema de tipos de Ur para proporcionar garantías estáticas sobre la seguridad y la funcionalidad de la aplicación web. (Para ser justos, sin embargo: Ur fue diseñado específicamente para admitir Ur / Web.)
Jörg W Mittag

Respuestas:

24

Soy el autor de Ur / Web. Acabo de crear esta cuenta y, por lo tanto, no tengo suficiente mojo para responder a otras respuestas pasadas.

Ur / Web permite que los complementos implementen diferentes protocolos web, por lo tanto, si desea ver algún otro protocolo además de CGI, FastCGI o HTTP, puede implementarlo o pedirme que lo implemente. :) Realmente no he sido consciente hasta el momento de cualquier otra alternativa que la gente estaba buscando.

¿Qué significa que la programación SQL se sienta "agrupada"?

Re: quejas sobre el aspecto "Web 1.0", pienso en eso como una característica diseñada para ahorrar tiempo a las personas que realmente no quieren usar este lenguaje. ;) No hay características faltantes que conozco que impidan escribir aplicaciones que se vean como quiera, y creo que esto es evidente una vez que asimila la configuración básica del lenguaje y las bibliotecas.

Finalmente, ScantRoger, ¡me encantaría saber acerca de sus experiencias al aplicar Ur / Web con un cliente! No sé si sería una mala forma dar mi información de contacto aquí, pero hay un enlace a mi sitio web personal en la parte inferior de la página principal de Ur.

Adam Chlipala
fuente
11

Lo hemos usado para un cliente consciente de la seguridad y hemos observado lo siguiente:

  • Como idioma, es un placer trabajar con él. No sentimos que la sintaxis basada en ML sea particularmente detallada en comparación con Haskell.
  • Hay muy pocos procedimientos fuera de las demostraciones y la documentación proporcionada en http://www.impredicative.com/ur/ .
  • Nos ha estropeado que muchos otros idiomas ahora tengan interfaces más rápidas para el servidor web. Usar FastCGI se sintió como un paso atrás.
  • La programación SQL se sintió un poco agrupada.
  • Repase sus matemáticas para comprender completamente lo que el lenguaje / marco hace por usted.

Cualquier cosa negativa puede atribuirse al hecho de que es completamente nuevo. Dale un poco de amor. Se lo merece. Tal vez pueda convertirse en un defensor vocal y hacer que encontrar recursos de Ur / Web sea menos complicado.

Roger escaso
fuente
¿Quizás puedas comentar la respuesta de Adam y explicar qué significa "agrupar"? Gracias por adelantado.
Janus Troelsen
Además, ¿cuáles serían las "interfaces más rápidas para el servidor web"? Hasta donde yo sé, FastCGI es uno de los protocolos más rápidos (más optimizados) para intercambiar datos de solicitud / respuesta HTTP. El soporte de Nginx para FastCGI es inferior a ninguno, y de hecho la mayoría de las configuraciones modernas de PHP (por ejemplo) son Nginx + PHP-FPM sobre FastCGI. (O tal vez esta respuesta tenía un significado en el '11 ...)
Tobia
3

Lo único que me preocuparía es que todavía es bastante nuevo. Haskell y Erlang han estado presentes por mucho tiempo. Esto significa que muchos de los errores fáciles en ambos idiomas han sido resueltos desde hace mucho tiempo. Sería muy escéptico de que su código sea tan rápido y seguro como puede hacerlo en Haskell por esa razón.

También las demos parecían muy web 1.0.

Zachary K
fuente
Sí, estoy de acuerdo en que las demos parecen un poco primitivas. Pero si tiene el mismo nivel de poder que Haskell, creo que pronto habrá más funciones. También era escéptico sobre la parte "más eficiente que la típica C". Pero este trabajo es bastante impresionante si todo lo hizo realmente solo una persona: D
Phil
Voy a echar un vistazo más de largo en algún momento, ¡espero que les vaya bien! Más marcos y personas que prueban cosas nuevas siempre es bueno
Zachary K