2009-08-10 17 views
19

Parece que no se ha hecho mucho trabajo en Haskell para la web. La gente lo usa como una herramienta de aprendizaje para la programación funcional más de negocios. ¿Alguien ha desarrollado y desplegado aplicación web en Haskell? Por favor, comparte los enlaces.¿Haskell es lo suficientemente maduro para aplicaciones web?

la siguiente sesión de comentarios pueden cambiar de opinión y planificar algo más que podría ser útil también en términos de negocio. Orientación, orientación, ¡Por favor!

Estoy planeando aprender un lenguaje de programación funcional y elegí Haskell.

¿Haskell está "cocinado" lo suficiente como para desarrollar una aplicación web comercial? ¿O debería comenzar a buscar otras opciones, tal vez incluso algo más que un lenguaje de programación funcional, si es digno?

La inversión en aprender un idioma es muy cara y quiero asegurarme de que Haskell realmente valga la pena aprender.

Orientación, por favor.

+1

¿Haskell es una buena opción para aplicaciones web? http://jekor.com/article/is-haskell-a-good-choice-for-web-applications –

+1

Haskell es lo suficientemente maduro para aplicaciones del mundo real. Los marcos web pueden variar, sin embargo. He estado mirando a Yesod, que se ve muy interesante (y es lo suficientemente maduro como para tener un libro de O'Reilly, por lo que vale ...) – comingstorm

Respuesta

11

Ramiz,

Su título menciona "aplicaciones web commerical", mientras que su pregunta no lo hace, así que estoy suponiendo que el objetivo final es escribir una aplicación web utilizando un lenguaje de programación funcional.

Si este es el caso, le recomiendo que comience con yaws, un servidor HTTP rápido escrito en el lenguaje de programación funcional Erlang. Aprenderá los altibajos de convertir guiones similares a PHP en una mentalidad funcional, gran parte de la cual puede traducir en su trabajo con Haskell.

Si realmente desea seguir con Haskell, y la elección del idioma es más importante para usted que el enfoque funcional general, entonces eche un vistazo al libro Real World Haskell. Eso le dará una idea de cómo el idioma resuelve problemas comunes que podría interesarle abordar mientras aprende el idioma.

+0

Gracias, Saketh. Estoy tan preocupado por Haskell aquí. El punto que mencioné a Haskell aquí ya que parece mucho más hablado que cualquier otro. Y también muy viejo y con muy buen progreso. Las preocupaciones son aprender un idioma que podría ser beneficioso de dos maneras: aprendiendo y ganando. ¡Eso es! Podrías sugerirme otras opciones. Definitivamente las investigaré. –

8

A medida que aprende nuevos idiomas, la inversión requerida disminuye. Incluso si comienzas con Haskell, el conocimiento funcional que obtienes te ayudará a aprender otros idiomas.

También depende de qué idioma proviene. Si vienes de Java, te sugiero scala, si vienes de .net, sugeriría f #

+0

Uno de los beneficios de esta ruta: aprender algo de Java o .Net bibliotecas de clase. –

+0

No quiero el envoltorio de .net ya que esto oculta una gran cantidad de información que usted debe saber/tener un buen entendimiento. La apertura, un bricolaje, sería más crujiente para aprovechar al máximo el idioma. –

+0

no existe una '.NET wrapper', es un framework. –

2

Si vas para el desarrollo web, te sugiero que eches un vistazo muy profundo al interior de JavaScript.
Javascript es un lenguaje dinámico, de tipeo débil, basado en prototipos con funciones de primera clase.
Tiene muchas características funcionales y puede usar V8, TraceMonkey o el Shell de Windows (pero ejecuta JScript) para ejecutarlo en entornos sin navegador.

+0

JavaScript fue una vez el idioma principal y la única experiencia que tuve. Y sigue amando, ya que me ayuda a elegir la web como mi camino profesional. He visto un crecimiento muy progresivo hacia JS en el lado del servidor, pero creo que algunas cosas están hechas para un propósito específico. –

+0

La javascript real para el lado del servidor es probablemente la mejor cosa creada JAMÁS :) Javascript es genial porque estoy acostumbrado a la sintaxis del estilo C, porque es muy dinámico y rápido de desarrollar. Una vez que madure para computadoras de escritorio también será mi idioma de elección. –

+0

Ahora, ¿por qué el voto a favor? Sugerí otro lenguaje funcional como el OP solicitado. –

6

Por mi parte, considero que Haskell es mi arma secreta, esa herramienta que me da un poco de ventaja sobre otros desarrolladores, y con frecuencia encuentro lugares para utilizarla en mis trabajos de consultoría.

Las DSL, por ejemplo, son bastante sofisticadas actualmente en software personalizado. Haskell es un ajuste ridículamente bueno para este tipo de trabajo.

Si ese no es el tipo de ambiente "comercial" que tiene en mente, algún tipo de proyecto políglota es probablemente el mejor (creo que una buena IU es una de las debilidades de Haskell). Tengo un proyecto en este momento que tiene a Haskell corriendo como un "servicio" rápido de CGI en la parte de atrás (a mí no me gustan demasiado los "marcos", y realmente no me gustan los que están disponibles para Haskell en este momento). con una interfaz de Flex (plataforma de Adobe Flash). La intención final de este proyecto será venderse comercialmente * a pequeñas y medianas empresas como ayuda para la planificación financiera.

Lo último que diré es que, aunque personalmente me encanta Haskell, creo que su FP en general es la que proporciona el mayor beneficio directo. Con este fin, si te encuentras mirando otro lenguaje FP como F #, Scala o Erlang, y piensas que será un mejor ajuste, entonces digo correr con él.

* En realidad, el proyecto se utilizará internamente durante al menos un año antes de comenzar la comercialización a terceros.

6

Si habla de aplicación web desarrollo, entonces el idioma que elija solo es tan maduro como las bibliotecas escritas a su alrededor para el desarrollo web.

+0

¿Podemos entregar una aplicación web en Haskell? –

+4

Sí, podemos. Nuestro sitio está escrito completamente en Haskell y fue una de las mejores decisiones que tomamos. Claro, es una startup, y seguro, puede ir a ninguna parte, pero si no va a ninguna parte, no será porque elegimos Haskell, eso es seguro. – clintm

2

Hay un ecosistema bastante rico de bibliotecas relacionadas con la web y un pequeño número de usuarios comerciales. La empresa en la que trabajo utiliza Haskell para aplicaciones web en el mercado de seguridad.

Tener un vistazo a las bibliotecas para ver lo que se ofrece: http://hackage.haskell.org/packages/archive/pkg-list.html#cat:web

2

Hay una serie de bibliotecas de Haskell para el desarrollo de sitios web (Happstack, Kibro, Hack, Salvia, Turbinado); el problema es que es difícil saber cuáles son buenos. Muchas de estas bibliotecas son bastante jóvenes. Espero que la situación mejore en los próximos años a medida que estas bibliotecas maduren y se aclare a medida que estas bibliotecas estén mejor documentadas.

Mientras tanto, diría que Haskell es un buen lenguaje para escribir aplicaciones web, siempre que esté dispuesto a dedicar un tiempo a conocer las bibliotecas y quizás mejorarlas cuando no cumplan con sus necesidades.

2

Echa un vistazo al código de jinjing: http://github.com/nfjinjing/loli/tree/master Sí, todavía es experimental. Pero abre tus ojos un poco.

Haskell en sí mismo está cocinado lo suficiente. Las personas que no confían en Java usan Haskell (ver http://www.galois.com) cuando necesitan proteger los datos del gobierno.

Pero los frameworks web de Haskell dejan algo que desear. Por lo tanto, puede que no sea el entorno más productivo en este momento. Pero ... si lo dominas, un poder indescriptible será tuyo :)

2

Si piensas a largo plazo como a corto plazo, Haskell es la mejor opción. Tiene muchos desarrollos web diferentes, pero hay muchas cosas en común en ellos, por ejemplo, todos los marcos utilizan funtores aplicativos para la creación de formularios, y las bibliotecas son intercambiables. Entonces, si aprende un marco, es fácil cambiarlo por otro, ya que básicamente la interfaz de la base de datos, las técnicas/bibliotecas de representación son las mismas la mayor parte del tiempo. Por otro lado, hay muchas cosas que aprender de Haskell incluso si decides cambiar a otro idioma. Te beneficiarás de eso. Así que, definitivamente, Haskell vale la pena aprender.

Pensando como una inversión en el futuro, pero quizás no para hacer algo terriblemente crítico ahora, creo que los marcos procedimentales (basados ​​en continuación o no) son el futuro del desarrollo web, ya que son menos complejos y el código es mucho más fácil de mantener e intuitivo. Algunos ejemplos son: ocsigen (ocaml), junto al mar (Smalltalk), coccoon (javascript), y mi propia: MFLOW escrito en Haskell.

¿Alguna vez ha visto una aplicación web de tres páginas en un tweet? https://twitter.com/AGoCorona/status/329648864082677760

0

Ahora bien, es indudable que Haskell se puede utilizar para el desarrollo web comercial como lo demuestra
la empresa janrain, que está utilizando el framework de desarrollo web snap.

¡Puede ser interesante observar que la primera versión de haskell (haskell 1.0) se lanzó en 1990! Y mirando cómo fue Haskell entonces y cómo es ahora, uno seguramente puede decir que ha habido mucha "cocina".

Cuestiones relacionadas