2012-04-09 18 views
8

Estoy aprendiendo Haskell for great good.¿Cuáles son los principales beneficios de usar Haskell para el desarrollo web?

Me encantan los OOP y los diversos sistemas de tipos. Usé Java para desarrollar webapps (Java EE, Spring, Hibernate, struts 1.x), ahora estoy usando regularmente Python (pilones, django, sqlalchemy, pymongo) y Javascript. Tuve una gran mejora en mi productividad personal: el enfoque ligero, mecanografía pato, iteradores increíbles, funciones como ciudadanos de primera clase, sintaxis simple y configuración, herramientas rápidas como pip y distribute (y mucho más) me ayudaron mucho.

Pero la primera razón de mi aumento de productividad es el lenguaje Python en sí.

¿Cuáles son los principales beneficios de usar Haskell para el desarrollo web? Por ejemplo, ¿cómo su tipo de inferencia realmente puede mejorar mi aplicación web? Hasta ahora, he notado que cuando decora su función con su firma de tipo está agregando mucha semántica a su programa. Espero que todo este esfuerzo a regrese de alguna manera, para guardar muchas líneas de código y hacerlas sonar. Realmente me gusta la distinción entre tipos y datos, estoy empezando a entender cómo funcionan, pero quiero algo a cambio: P

No me malinterpreten, acabo de empezar a estudiar Haskell así que Maybe I ' Me falta algo de asombro, pero realmente quiero entender su paradigma y cuándo vale la pena usarlo.

+2

Es probable que no comprenderán dos tercios de cómo funciona (Desde luego, Don 't), pero el framework web de Yesod usa tipos para bien. – delnan

+0

@delnan Yesod (y [este fragmento] (http://yannesposito.com/Scratch/en/blog/Yesod-tutorial-for-newbies/#bulletproof)) parece un buen comienzo, gracias. – vrde

+0

Puede ser que esto no esté directamente relacionado con * cómo * se pueden cosechar los beneficios, pero este es un ejemplo de las ventajas de usar Haskell para el desarrollo de aplicaciones web - http://jekor.com/article/is-haskell- a-good-choice-for-web-applications – Gangadhar

Respuesta

3

La mayoría de las aplicaciones web apuntan a ser stateless y handle concurrency well. También es bastante importante escalar (Google SEO reasons, and user experience).

Haskell maneja estos problemas bastante bien (aunque en mi humilde opinión en una forma más académica y tal vez menos "humana" intuitiva).

Dicho esto, debido a la gran falta de personas que realizan desarrollo de aplicaciones web (en comparación con node.js) y que el desarrollador tradicional de aplicaciones web se ha centrado más en un marco de OOP podría ser bastante difícil.

tuve algunos problemas tratando de usarlo como se puede ver en mis siguientes preguntas:

How do I do automatic data serialization of data objects?

Handling incremental Data Modeling Changes in Functional Programming

+0

Por cierto, no pretendo rebajar a Haskell. Creo que es un lenguaje bastante poderoso. Simplemente no podía entenderlo para que sea productivo para el desarrollo de aplicaciones web, que es lo que hago para ganarme la vida. –

+1

Creo que encontrarás una experiencia muy diferente a finales de 2015. Haskell ahora tiene algunos frameworks web increíblemente potentes tanto para back-end como para front-end (compilaciones de GHCJS a JavaScript). Si buscas web-dev con seguridad tipo, Haskell está ganando tracción. –

Cuestiones relacionadas