Renascimento?



Tenho acompanhado uma renovada animação e curiosidade com a programação funcional – o que é ótimo.


Do front da Microsoft temos a incorporação de técnicas de programação funcional tanto na nova versão do C# (3.0) quanto na do VB (9.0). E com o anúncio do F# (uma linguagem da linhagem de ML e OCaml) como uma futura linguagem incorporada no Visual Studio, este interesse parece estar aumentando ainda mais.


Mas por que este renascimento?


Um palpite:


1)      os usuários pedem, cada vez mais, o poder de definir suas regras. Regras como funções que devem ser aplicadas em um contexto. Por exemplo, um filtro a ser usado numa função que percorre os elementos maiores que um valor ‘x’ em uma lista (Linq), ou um teste a ser aplicado numa máquina de estados de um workflow (WF).


2)      precisamos de maior dinamismo das linguagens e ambientes para que possam receber e aplicar código em runtime (basta ver como o Ajax utiliza o JScript e o DOM para incorporar ou mudar comportamentos de uma página em tempo de execução);


Para que isto ocorra, precisamos de dois mecanismos lingüísticos:


a)      funções devem se tornar entidades de primeira ordem numa linguagem. Elas viram tipos e podem ser passadas como argumentos, definir variáveis e definir novas funções;


b)      funções podem ser armazenadas e ou passadas via stream (entre máquinas, processos ou funções);


Linguagens funcionais são linguagens que têm como fundamento estes dois mecanismos.


Tenho curiosidade para ver no que isto vai resultar quando chegar à massa de programadores. Meu palpite é que o efeito será mínimo: continuarão a programar como hoje, sem usar diretamente estes recursos, e sem saber que os frameworks e bibliotecas que usam são fortemente baseados nestes mecanismos.

Skip to main content