Pregunta

¿Existe un lenguaje funcional que tenga buen soporte y herramientas para crear servicios web?He estado mirando Scala (que compila en JVM y puede usar las bibliotecas de Java) y F# (que es .NET), pero son nuevos y tienen algunas ineficiencias.Scala en particular no admite la eliminación de llamadas de cola excepto en funciones autorrecursivas, lo que limita los tipos de composición que puede realizar (esta es una limitación fundamental de la JVM).F# es muy nuevo y no parece ser totalmente compatible todavía, lo que lo hace más riesgoso que un lenguaje más convencional.

¿Es posible crear un servicio web utilizando Haskell, ML o cualquiera de los otros lenguajes funcionales más tradicionales, o sería mejor optar por Scala o F#?¿Cualquier otra sugerencia?

¿Fue útil?

Solución

Si .NET es una opción para la plataforma, no descarte F# debido a su juventud.A medida que se acerca a convertirse en un producto oficial, se integra cada vez mejor con Visual Studio y hereda todas las bondades que ofrece .NET.

También hay soporte activo y accesible tanto por parte de Microsoft como de una comunidad entusiasta.

Otros consejos

Ocaml tiene Ocsigen/Eliom...Aunque no puedo decir que lo haya usado.También se encuentra en sus primeras fases.

Erlang, con Pian.Es un lenguaje divertido y potente, escala notablemente bien y hace que usar 100 o 1000 procesos sea seguro y fácil.Y diversión.

(También creo que es bonito).

Haskel:

Eche un vistazo a esta pregunta:¿Cuál es la forma más sencilla de escribir aplicaciones web en Haskell?

Básicamente, LAVAR, HAppS y Jano son los tres grandes en Haskell en este momento.Mi voto es por HAppS que tiene lo mejor. tutorial en este momento.

También hay HSP pero no lo he mirado ni pensado en ello recientemente.

Por favor lea esta introducción en F# y ASP.NET lo que te dará un buen comienzo.

Hay varios ejemplos en la web en los que se utiliza F# en aplicaciones web.Uno de ellos es por ejemplo el autocompletado de Tomas Petricek que construyó como aplicación ilustrativa a su artículo "Herramientas web de F#:Aplicaciones Ajax simplificadas".Yo también he usado F# como parte de un servicio web y les garantizo que funciona bien :).

Si está haciendo esto por diversión y no por motivos de solidez o lugar de trabajo, puede investigar ARCO.Es un lenguaje inacabado y en proceso, con las ventajas y desventajas que eso implica.

descargo de responsabilidad:no afiliado con ARC o Paul Graham

Reddit se construyó sobre lisp, ¿no es así?Y Paul Graham habla muy bien. de su agilidad, especialmente con las aplicaciones web.

Podría considerar Clojure: es un lenguaje muy nuevo, pero parece muy prometedor para aplicaciones concurrentes escalables y tiene la ventaja de una muy buena integración de JVM y acceso a todas las bibliotecas de Java (al igual que Scala).

Clojure también tiene bastantes características de diseño que solucionan el problema de la recursión de cola (construcción recursiva especial, muchas funciones principales se implementan de forma iterativa, etc.)

Aunque no puedo recomendarlo porque todavía estoy jugando con él, Erlang es muy poderoso.

Debo estar de acuerdo con la recomendación de Clojure.Acabo de terminar una prueba de carga de un servicio de noticias escrito en Clojure que mantuvo 80 publicaciones de actividad salientes por segundo por servidor web Clojure que se ejecuta en una instancia EC2 m1.medium.

La generación anterior de lenguajes funcionales tiene herramientas como Ocsigen (para OCaml) y HApps (para Haskell) pero prácticamente no tienen usuarios:son software completamente no probado.

Por el contrario, Scala y F# se basan en código muy bien probado de Java y .NET.En particular, Microsoft ha desarrollado mucho F# durante el año pasado porque se está produciendo.Ningún otro lenguaje funcional ha recibido jamás ese nivel de respaldo y, en consecuencia, F# ya es muy utilizable (y muy por delante de lenguajes como Haskell en términos de herramientas de desarrollo).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top