opciones - ¿Haskell es lo suficientemente maduro para las aplicaciones web?
hola mundo en haskell (10)
A medida que aprendes nuevos idiomas, la inversión requerida disminuye. Incluso si comienzas con Haskell, el conocimiento funcional que adquieras te ayudará a aprender otros idiomas.
También depende de qué idioma vienes. Si vienes de Java, sugeriría scala, si vienes de .net, sugeriría f #
Parece que no hay mucho trabajo hecho en Haskell para web. La gente lo usa como una herramienta de aprendizaje para la programación funcional más que para los negocios. ¿Alguien ha desarrollado e implementado una aplicación web en Haskell todavía? Por favor, comparte los enlaces.
Los siguientes comentarios de la sesión podrían cambiar de opinión y planificar otra cosa que también podría ser útil en términos de negocios. Orientación, Orientación, por favor!
Estoy planeando aprender un lenguaje de programación funcional y elegí Haskell.
¿Haskell está "cocinado" lo suficiente 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 costosa y quiero asegurarme de que Haskell realmente valga la pena aprender.
Orientación, por favor.
Ahora, no hay duda de que haskell puede usarse para desarrollo web comercial como lo demuestra
La empresa janrain , que está utilizando el marco de la web snap .
¡Podría ser interesante notar que la primera versión de haskell (haskell 1.0) fue lanzada en 1990! Y mirando cómo era entonces el haskell y cómo es ahora, seguramente se puede decir que ha habido mucha "cocina".
Echa un vistazo al código de jinjing: http://github.com/nfjinjing/loli/tree/master Sí, todavía es experimental. Pero te abre un poco los ojos.
Haskell en sí es ciertamente lo suficientemente cocido. Las personas que no confían en Java utilizan Haskell (consulte http://www.galois.com ) cuando necesitan proteger los datos del gobierno.
Pero los marcos web de Haskell dejan algo que desear. Por lo tanto, puede que no sea el ambiente más productivo en este momento. Pero ... si lo dominas, un poder indecible será tuyo :)
Hay un ecosistema bastante rico de bibliotecas relacionadas con la web y una pequeña cantidad de usuarios comerciales. La empresa en la que trabajo utiliza Haskell para aplicaciones web en el mercado de la seguridad.
Eche un vistazo a las bibliotecas para ver lo que se ofrece: http://hackage.haskell.org/packages/archive/pkg-list.html#cat:web
Hay varias bibliotecas de Haskell para desarrollar sitios web (Happstack, Kibro, Hack, Salvia, Turbinado); El problema es que es difícil saber cuáles son buenas. Muchas de estas bibliotecas son bastante jóvenes. Espero que la situación mejore en los próximos dos años a medida que estas bibliotecas maduren y se vuelvan más claras a medida que estas bibliotecas se documentan mejor.
Mientras tanto, diría que Haskell es un buen lenguaje para escribir aplicaciones web, siempre y cuando esté dispuesto a dedicar algo de tiempo a conocer las bibliotecas y, tal vez, a mejorarlas cuando no cumplan con sus necesidades.
Por mi parte, considero a Haskell como mi arma secreta, esa herramienta que me da una pequeña ventaja sobre otros desarrolladores, y con frecuencia encuentro lugares para usarla en mis trabajos de consultoría.
Los DSL, por ejemplo, son bastante populares en estos días en software personalizado. Haskell es un ajuste ridículamente bueno para este tipo de trabajo.
Si ese no es el tipo de entorno "comercial" que tienes en mente, es probable que algún tipo de proyecto políglota sea el mejor (creo que una buena interfaz de usuario es una de las debilidades de Haskell). Tengo un proyecto en marcha en este momento que tiene Haskell ejecutándose como un "servicio" rápido de cgi en el back-end (tiendo a no gustarme demasiado los ''marcos'', y realmente no me gustan los que están disponibles para Haskell en este momento) arriba por un front-end Flex (Adobe Flash Platform). La intención final de este proyecto será su venta comercial * a pequeñas y medianas empresas como ayuda financiera para la planificación.
Lo último que diré es que, aunque personalmente amo a Haskell, creo que su PF en general es la que proporciona el mayor beneficio directo. Con este fin, si te encuentras mirando otro lenguaje de PF, como F #, Scala o Erlang, y crees que encajará mejor entonces te digo que corras con él.
* En realidad, el proyecto se utilizará internamente durante al menos un año antes de que comience la comercialización a terceros.
Ramiz
Su título menciona "aplicaciones web comerciales", mientras que su pregunta no lo hace, así que asumo que el objetivo final es escribir una aplicación web utilizando un lenguaje de programación funcional.
Si este es el caso, te recomiendo que comiences con yaws , un servidor HTTP rápido escrito en el lenguaje de programación concurrente funcional Erlang. Aprenderás los altibajos de torcer los scripts tipo PHP en una mentalidad funcional, gran parte de la cual puedes traducir a tu 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 lenguaje resuelve problemas comunes que le podrían interesar abordar mientras aprende el idioma.
Si está hablando de desarrollo de aplicaciones web , entonces el lenguaje que elija es tan maduro como las bibliotecas escritas a su alrededor para el desarrollo web.
Si piensa en el largo plazo y en el corto plazo, Haskell es la mejor opción. Tiene muchos desarrollos web diferentes, pero hay muchos puntos en común en ellos, por ejemplo, todos los marcos usan funtores aplicativos para la creación de formularios, y las bibliotecas son intercambiables. Por lo tanto, 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 renderización son las mismas la mayoría del tiempo. Por otro lado, hay muchas cosas que aprender de Haskell, incluso si decides cambiar a otro idioma. Te beneficiarás de ello. Así que definitivamente vale la pena aprender Haskell.
Pensando como una inversión en el futuro, pero quizás no para hacer algo terriblemente crítico ahora, creo que los marcos de procedimientos (basados en la 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), seaside (smalltalk), coccoon (javascript), y el mío: mflow escrito en Haskell.
¿Alguna vez has visto una aplicación web de tres páginas en un tweet? https://twitter.com/AGoCorona/status/329648864082677760
Si te vas a desarrollar en la web, te sugiero que eches un vistazo al interior de JavaScript .
Javascript es un lenguaje dinámico, débilmente tipado, basado en prototipos con funciones de primera clase.
Tiene muchas funcionalidades funcionales y puede usar V8, TraceMonkey o Windows Shell (pero ejecuta JScript) para ejecutarlo en entornos sin navegador.