Publicidad

RSS Programación funcional

Aterrizando en la programación funcional

5 Comentarios
Aterrizando en la programación funcional

¿Por qué la programación funcional suscita tanto interés?, ¿qué la diferencia del principal paradigma imperativo usado en la industria?, ¿en que grado deberías/podrías sacar partido a la programación funcional? Este tipo de cuestiones aparecen de forma recurrente entre aquellos que observan con curiosidad o recelo los movimientos de los lenguajes por incluir características de programación funcional.

Aunque el tema es amplísimo, complejo e inevitablemente propenso al partidismo y subjetividad, intentaré desde mi modesta experiencia apuntar algunas ideas que quizás, te respondan a estas cuestiones.

Leer más »

Usar mónadas es mucho más fácil de lo que crees, empezando con la programación funcional

23 Comentarios
Usar mónadas es mucho más fácil de lo que crees, empezando con la programación funcional

Seguramente todos tenemos formada una buena idea sobre lo que es una "propiedad", un "método estático", un "singleton" u otros términos de uso común. Nos resultan algo más exóticos e infrecuentes términos como "clase abstracta" o "función virtual pura". Todos éstos son términos habituales en la programación orientada a objetos. Lo que seguramente ya no tengamos tan claras son todas las ramificaciones, implicaciones, interacciones que todos éstos conceptos poseen y sin embargo los usamos. Usar una mónada es tanto o más fácil de usar que, por ejemplo, un objeto. Pero una mónada no es un objeto, y quien quiera comprender cómo usar una mónada tendrá que hacer el esfuerzo por desprenderse de viejas y apoltronadas preconcepciones.

Leer más »
Publicidad

Sobre la pureza de las funciones, ¿están realmente desacoplados los sistema tal como idealizamos?

11 Comentarios
Sobre la pureza de las funciones, ¿están realmente desacoplados los sistema tal como idealizamos?

Salvo en programas funciones sencillas, estar seguro, comprender las interrelaciones entre las partes resulta muy complicado. Idealizamos nuestros sistemas y pensamos que están desacoplados pero realmente éstos son porosos y con frecuencia los efectos fluyen entre ellos sin que nos demos cuenta... hasta que es tarde. Esta porosidad puede resultar en una interrelación no deseada (un bug) o en un enraizamiento en que el desacople ha desaparecido. Existen muchas técnicas que pretenden mantener el aislamiento pero la mayoría son patrones o guías cuyo única garantía reside en la entereza del equipo de desarrollo para seguirlas. Existen sin embargo, lenguajes que garantizan firmemente el aislamiento de las partes, con sus ventajas y sus inconvenientes.

Leer más »

Lambda World 2015: profundizando en la programación funcional

2 Comentarios
Lambda World 2015: profundizando en la programación funcional

No es que la programación funcional esté de “moda” sino que a día de hoy es el pilar fundamental de muchas compañías, aprovechando este modelo de programación para crear de forma ágil e innovadora nuevos productos. Por eso, no es extraño que conferencias como la Lambda World de Cádiz (24-25 de Octubre) haya captado tanta expectación y más si los consideramos el evento más importante a nivel europeo sobre programación funcional.

Leer más »

Scala Exercises, aprender el lenguaje online y gratuitamente

7 Comentarios
Scala Exercises, aprender el lenguaje online y gratuitamente

Scala es un lenguaje funcional orientado a objetos utilizado por compañías tan importantes como twiter o linkedin, que corre sobre la Máquina Virtual Java.

Ciertamente para los desarrolladores que venimos de la programación estructurada, o los que utilizan lenguajes como C#, Java, JS o similares, los lenguajes funcionales son tan “raros” y diferentes como puede ser el SQL de las bases de datos relacionales.

Leer más »

Resolviendo problemas de forma funcional

1 Comentario
Resolviendo problemas de forma funcional

Pensar de forma funcional es bastante difícil y más que nada si estamos programando en otro paradigma. Por lo tanto la idea es plantear un problema y buscar una solución funcional.

Problema Normalmente cuando escribíamos expresiones matemáticas en la escuela lo hacíamos de forma infija. Por ejemplo, 10 -(4 + 3) * 2. +, * y - son operadores infijos. Resulta bastante útil, ya que nosotros, como humanos, podemos analizar fácilmente estas expresiones. Lo malo es que tenemos que utilizar paréntesis para especificar la precedencia.

Leer más »
Publicidad

Programación imperativa vs declarativa IV (paradigma funcional)

24 Comentarios
Programación imperativa vs declarativa IV (paradigma funcional)
Bucking horse, así es la programación funcional hoy en día

Largo y tortuoso ha sido el camino que nos lleva hasta la meta. Hemos contrastado una especificación de lenguaje imperativa con una declarativa, hemos entendido las estrategias óptimas de cálculo simbólico y hemos intuido el prometedor futuro de la verificación automática de teoremas (y arañado sutilmente la demostración automática de teoremas).

¿Para qué?. Por amena y relajante que haya sido la lectura (risas) y por mucho que los matemáticos digan que no hace falta que algo tenga utilidad para secarte el cerebro pensando en ello, a nosotros los programadores lo que realmente nos importa es la aplicación práctica del caso.

El corolario final sobre el que rumiaremos en esta entrada, es si (como parece) la programación funcional va a jugar, a corto/medio plazo, un papel importante en el desarrollo de software (en general) y si merece la pena que dediquemos nuestro preciado tiempo a maltratar nuestras neuronas, cuando podrían estar componiendo, tranquilamente, sinfonías con PHP. ¿Te atreves?.


Leer más »

Programación imperativa vs declarativa I

20 Comentarios
Programación imperativa vs declarativa I


¿Serías capaz de adivinar qué imagen representa cada paradigma?

En general, que el futuro de la programación será (casi seguro) programación declarativa, es algo que difícilmente puede negarse. Ya sólo la gestión eficiente del flujo de eventos en una sencilla aplicación de escritorio puede dar algún que otro quebradero de cabeza y si nuestros procesos consumen algo de procesador, hacerlo eficiente para diversas condiciones (pocas o muchas CPU, memoria, …) requiere paciencia y talento (una buena paralización no es “poner una tarea en cada núcleo”), aderecemos el plato con flujos sincronizados de datos a través de la red y disco y ya tenemos el “comerecursos” perfecto.

Parece que la programación imperativa es cada vez más costosa, mientras que la programación declarativa nos atrae cada vez más con sus cantos de sirena. Si te apetece, pensemos sobre ello en nuestra “programación imperativa vs declarativa” particular.


Leer más »

Programación funcional, un enfoque diferente a los problemas de siempre

26 Comentarios
Programación funcional, un enfoque diferente a los problemas de siempre

Cuando pensamos en programación, excepto algún que otro gurú que se pasea por la vida viendo las letritas verdes de Matrix, nos suelen venir a la mente ideas como variables, ifs, objetos, funciones, procedimientos, todos esos conceptos presentes en la mayoría de los típicos lenguajes imperativos, que componen la vasta mayoría del software existente.

Es bueno, sin embargo, no perder de vista que todo esto son abstracciones más o menos arbitrarias y que puede haber otros enfoques de cómo escribir archivos de texto llenos de código formal que puedan convertirse luego en unos y ceros para alimentar a nuestro computador. Existen muy variados paradigmas de programación, entre los que se encuentra el que nos ocupa: la conocida como programación funcional, que incorpora algunas ideas muy interesantes para todo programador.

Leer más »
Publicidad
Inicio
Inicio

Ver más artículos