Estoy enfrentando la opción de comenzar a construir componentes Haskell para una determinada aplicación de producción que se hace todo en Ruby.
Me inclino por Haskell por varias razones, principalmente la velocidad (Haskell compilado es como 4-8 veces más rápido), una mayor transparencia (a través del sistema de tipo Haskell) y una refactorabilidad más segura (sistema de tipo). Ya escribí algunos programas de código abierto y producción en Haskell y disfruto mucho escribirlo.
La viabilidad no es un problema. He jugado con el marco web Haskell Snap y las bibliotecas de bases de datos como PostgreSQL. Simple y estoy satisfecho de que es posible reescribir una aplicación Rails y varios programas de back-end con Haskell.
El verdadero problema es contratar programadores cuando necesitamos escalar el equipo de desarrollo, o eventualmente entregar las responsabilidades de programación por completo. Es mucho más fácil encontrar programadores en Ruby que en Haskell. Por otro lado, la comunidad de Haskell parece estar creciendo, y no es demasiado difícil capacitar a los programadores para modificar partes de un programa de Haskell si lo enfocas como un DSL (al igual que Ruby on Rails). El sistema de tipo Haskell también parece prometer una colaboración mucho más segura que la dinámica Ruby.
En su ensayo "Batir los promedios" ( http://www.paulgraham.com/avg.html ), Paul Graham argumenta que usar un lenguaje superior puede ser una ventaja decisiva. Pero, ¿cuándo tiene sentido renunciar al uso de un lenguaje superior para facilitar la incorporación de programadores a su equipo?