Mi trovo di fronte alla scelta se iniziare a creare componenti Haskell per una determinata app di produzione, tutto in Ruby.
Mi sto appoggiando a Haskell per diversi motivi, principalmente la velocità (Haskell è come 4-8x più veloce), una maggiore trasparenza (tramite il sistema di tipo Haskell) e una più sicura refactability (tipo sistema). Ho già scritto alcuni programmi open source e di produzione in Haskell e mi diverto molto a scriverlo.
La fattibilità non è un problema. Ho giocato con il framework web Haskell Snap e le librerie di database come PostgreSQL.Simple e sono soddisfatto che riscrivere un'app Rails e vari programmi di back-end con Haskell sia fattibile.
Il vero problema è assumere i programmatori quando abbiamo bisogno di scalare il team di sviluppo, o eventualmente di abbandonare del tutto le responsabilità di programmazione. È molto più facile trovare programmatori in Ruby che in Haskell. D'altra parte, la comunità di Haskell sembra crescere, e non è troppo difficile addestrare i programmatori a modificare parti di un programma Haskell se ci si avvicina come DSL (molto simile a Ruby on Rails). Anche il sistema di tipo Haskell sembra promettere una collaborazione molto più sicura rispetto a quella di Ruby dinamico.
Nel suo saggio "Beating the Averages" ( link ), Paul Graham sostiene che l'uso di una lingua superiore può essere vantaggio decisivo. Ma quando ha senso rinunciare ad usare una lingua superiore per facilitare l'aggiunta di programmatori alla tua squadra?