domingo, mayo 25, 2008

Prácticas Funcionales en desarrollos empresariales

Hace unos meses que estoy trabajando, muy lentamente, en el uso de F# para ello estoy constantemente releyendo el excelente libro Expert F#. Durante este periodo empezé el desarrollo de un proveedor de ADO.Net y decidí aplicar algunos de los linemientos y conceptos de programación funcional. Para ser más exacto decidí tratar de crear objetos inmutables y funciones sin efectos colaterales y esta experiencia me deja algunos aprendizajes:

  • Estamos muy mal acostumbrados. Es decir que la evolución de los lenguajes nos han llevado a pensar en un modelo donde las variables pueden ser alteradas en cualquier momento sin entender las implicaciones de estos cambios. Una vez que uno empieza a pensar en concurrencia, multi.core, etc. este tipo de programación es muy nocivo.
  • Es muy práctico diferenciar los datos mutables e inmutables. Dado que el proveedor será usado en un entorno donde la mutabilidad es "recomendada" es necesario soportar algunos de estos aspectos pero resulta interesante que al separar aquellos aspectos mutables de los inmutables se puede ahorrar mucho esfuerzo.
  • Las funciones sin efecto colateral generan código que facilmente puede ser paralelizado y ejecutado de manera asincrónica.

En fin creo que el ejercicio fue muy bueno y estoy contento con los resultados obtenidos y justo cuando estaba en el proceso de detallar todos estos aspectos este post me evita el trabajo :)