domingo, marzo 02, 2008

[Estudio] Programación Funcional

Navegando por Barrapunto me encontré con este post sobre videos de programación funcional (como Ocaml que había descripto en mi post anterior). Al parecer Microsoft le está dando mucho empuje al lenguaje funcional F# para la programación concurrente (en donde se ejecuta en forma paralela distinto tipos de código) creo que impulsado por los microprocesadores multi-núcleo.
Por lo poco que leí la programación funcional está relacionada con la programación de los Lenguajes de Descripción de Hardware o HDL en ingles como Verilog, VHDL o Altera HDL. Conozco un poco de Verilog y mucho de Altera HDL ya que lo usé para hacer mi proyecto final de carrera y disfruté mucho programando.
Leyendo sobre el microprocesador de la PlayStation 3 (Cell) me enteré que a los programadores se le complica sacarle rendimiento porque su programación es en forma concurrente y hasta hace poco siempre se programaba en forma secuencial, por lo tanto hay poca experiencia en el mercado. Con este tipo de lenguajes funcionales se está atacando este paradigma y en los slices de las presentaciones de los videos hablan que C# 3.0 está incorporando características funcionales.
Se está recomendando Haskell como lenguaje para aprender la programación funcional pero yo prefiero Ocaml por tener la posibilidad de programar con orientación a objetos.
Si les interesa les dejo el enlace de los videos:

Funcional Programming Seminar

Saludos.

Etiquetas: , , , , ,

lunes, febrero 11, 2008

[Estudio] Python, OCaml, C, Rtos y Linux

Como verán en la entrada anterior mencionaba que había renunciado a mi trabajo. Ahora me estoy poniendo en lo que más me gusta que es la programación, las FPGAs y los Embedded Systems (lo digo así porque hace rato que leo por ahí que embebido no es una palabra española, creo que la palabra es integrados).

Estoy refrescando mis conocimientos en C, Microchip Pics y RTOS (Real Time Operating System) para terminar de hacer la balanza que había empezado hace como un año.
Además volví a estudiar el código fuente de FreeRTOS para mejorar mis habilidades en C y conocer a fondo su funcionamiento.

Regresé al Sistema Operativo de mis amores, Linux. He estado usándolo diariamente y me surgió la curiosidad de investigar los avances que hubo desde que lo dejé y me encontré con:

¿Se nota que soy usuario de Gnome? ¿Y por qué Gnome? Porque frente a KDE (su rival directo) me gusta su simpleza y estilo visual, además que en KDE las aplicaciones se me cierran continuamente dándome algún tipo de error. Hay que reconocer que KDE 4 tiene bastantes novedades que me gustaría ver en Gnome pero esa es otra historia.

En la parte de lenguajes de programación dejé de estudiar el "Desarrollador 5 estrellas de Microsoft" ya que he llegado a la conclusión (y esto luego de haber leído 2 libros de C# y practicado un poco) que mi orientación está en la electrónica y en los Embedded Systems y que el mercado está lleno de Ingenieros en Sistemas o en Computación.
Ahora estoy volviendo a Pyhton porque es el lenguaje utilizado en Likindoy con el que planeo ingresar en el mundo de SCADA junto con los microcontroladores. También es el lenguaje más usado en Gnome y por Gimmie del que estoy investigando su código.
Con Ocaml [1, 2 y 3] me encontré investigando sobre lenguajes para la programación de Gtk+ porque aunque Free Pascal, Mono y C++ están disponibles en Gtk+ no me convence ninguno. El primero no está enteramente soportado, el segundo consume muchos recursos y está el background de las patentes de Microsoft y el tercero para programar Gtk+ orientado a objeto prefiero hacerlo con C y GObject de Glib (parte de Gtk+) pero quiero algo más rápido para el desarrollo. En definitiva me atrajo Ocaml por lo siguiente:

Incluso vi que está portado para inotify [2] de Linux demostrando que es un lenguaje que está presente. Inotify es un subsistema del Kernel de Linux que notifica si se ha producido algún evento en el sistema de archivo.
Ocaml tiene una sintaxis que choca con gente que programa en lenguajes de sintaxis tipo C pero creo que es bueno ver otras alternativas a Java, C++ y C#.
Estoy investigando un poco el lenguaje de programación D [1], del que se comenta que es productivo como Python con la velocidad y versatibilidad de C++ pero parece que está verde aún. Espero que se tenga en cuenta como unos de los lenguaje de programación favoritos de Gnome.

Con respecto a las FPGA tengo presente pasar el código fuente de PampaCPU de Altera HDL (AHDL) a Verilog para profundizar este lenguaje y hacerlo disponible a los desarrolladores que no conocen Altera HDL. Otros de mis deseos en investigar los microprocesadores multi-núcleo y estando disponible el código fuente de Open Sparc T1 y teniendo a mano la versión simplificada llamada S1 Core nada implica empezar a jugar un poco con el.

Ahora que estoy trabajando en un horario decente (no las 10:30hs) antes de irme el viernes 15 espero poder ocuparme del blog porque lo tengo bastante abandonado.

Saludos

Etiquetas: , , , , , ,