ecuador.latindevelopers.net
El sitio de los programadores ecuatorianos
¡El CTP de septiembre de F# ya está aquí!

Se va uno una semanita de vacaciones y montones de cosas pasan. Por ejemplo, Don Syme y compañía han liberado el primer CTP de F#, camino (esperemos que antes de fin de año) a convertir a F# en un lenguaje a la misma altura de C#, C++ y VB.NET dentro del mundo de .NET. Esto será un evento histórico: es la primera vez que una plataforma mainstream (comercial o no) adopta de frente y con ganas un lenguaje funcional. Aprovecho la ocasión para volver a mencionar que hay muchas razones por las que el paradigma de programación funcional es interesante importante, para mi gusto las más relevantes son:

  1. El uso de funciones de alto nivel y la evaluación perezosa permite alcanzar mayores niveles de abstracción y modularización, lo que facilita la programación de los problemas cada vez más complejos que se nos presentan.
  2. El uso extensivo de elementos inmutables facilita grandemente la paralelización de la ejecución del código, lo que es muy relevante hoy en día debido a los procesadores multicore.
  3. El pensamiento funcional se adapta de manera natural a la solución de problemas de naturaleza matemática (ya sea simbólica o númerica). Bueno, este último punto no tiene un alcance tan amplio como los anteriores pero es mucho más fascinante y atrayente para científicos y calculistas (que en no pocos casos se han tenido que quedar con Fortran o migrar a Excel).

Por estas y otras razones, la programación funcional ha ido invadiendo de manera paulatina nuestro día a día, por ejemplo:

  1. C# 3.0 tiene funciones lambda y de alto nivel (bueno, al menos un subconjunto) y evaluación perezosa (por ejemplo en LINQ)
  2. En el mundo de Java se está empezando a hablar de Scala, un lenguaje funcional para la JVM
  3. Se ha renovado el interés en lenguajes especializados como Erlang (usado en Ericsson para crear sistemas altamente fiables y escalables)
  4. F# será un lenguaje de primer nivel dentro de la plataforma .NET

Un ejemplo de F# September CTP corriendo en mi Visual Studio 2008 SP1:

FSharpSeptemberCTP

Si alguien está curioso de que hace ese código, fibonacciSequence genera los números de Fibonacci hasta un máximo dado, la segunda función suma los números de Fibonacci pares hasta un máximo dado. Es una solución suscinta al Problema 2 del Proyecto Euler (que sería interesante que traten de resolverlo en el lenguaje de su preferencia). ¿No se entiende nada? Bueno, es que no conocemos el lenguaje :-), en mi opinión la mejor manera de aprenderlo es seguir el libro Expert F#, cuyo coautor es el mismísmo creador del lenguaje. Más aún, Microsoft ha inaugurado también el sitio oficial del lenguaje, el F# Developer Center, donde podrán encontrar muchos más recursos.

Por cierto, parece que el nombre oficial del lenguaje va a ser Visual F# 1.0 (que en la práctica corresponderá a la versión 2, contando desde su concepción en Microsoft Research). Finalmente, Visual F# requiere solamente de .NET 2.0 para ejecutarse, y una de las consecuencias interesantes es que corre bien en Linux sobre la plataforma Mono, o sea, programación funcional 100% open source, cortesía de Microsoft (y Novell).


Enviado 08-31-2008 20:46 por Edgar Sánchez
© Logic Studio, MMVIII
Ofrecido por Community Server (Non-Commercial Edition)