Aumente seu Vocabulário
Linguagens Orientadas a Objetos foram tema da minha tese na universidade em 92, mas confesso uma grande atração pelas linguagens funcionais.
Esta semana realizei um desejo antigo: reservei um tempo para leitura de livros sobre ML e F#. Aqui vão alguns comentários:
- Não tenho problemas com o uso de recursividade – para mim, algoritmos recursivos costumam ser mais limpos. Meu problema maior com eles é o possível estouro da pilha. Bem, pelo menos em F# isto diminui um pouco: funções recursivas onde o último comando é a chamada à recursão reusam a pilha atual para a próxima chamada. Assim o estouro da pilha é evitado. O difícil, às vezes, è transformar nossos algoritmos para só fazerem a chamada nesta última linha (o livro Expert F# dá boas dicas);
- Alguns mecanismos lingüísticos são simplesmente maravilhosos. Refiro-me a quatro deles em especial:
- pattern matching: que permite definir tratamentos diferentes de acordo com o padrão (formato e tipos de dados) de uma estrutura de dados;
- pipes: tornam linear o tratamento em seqüências e outras coleções;
- inferência de tipos: sempre fui fã de tipos devido ao benefício do erro em tempo de compilação, mas entendo que tipos são restrições que dão trabalho, o que, por sua vez, justifica o sucesso de Python e Ruby, entre outras. Bem, com a inferência de tipos (bem mais poderosa do que a que vemos no C# atual), unimos o melhor dos dois mundos;
- O livro Expert F# me convenceu que a composição de funções e o uso de interfaces com delegação podem ser mais poderosos do que a herança. O livro tem também excelentes exemplos de código.
Ao final das leituras, sinto que ganhei novos estilos para especificar e escrever código.
Sugestão: aumente você também o seu vocabulário.
Quanto a mim, vou continuar meus exercícios seguindo o velho provérbio chinês: Eu ouço e eu esqueço. Eu vejo e eu me lembro. Eu faço e eu entendo.
Comments
Anonymous
July 27, 2008
Oi. Excelente sugestão, Otavio. Estava procurando um bom livro sobre F# pra conhecer melhor seus recursos e vou aproveitar a dica do Expert F#. Abraço, Eduardo Costa.Anonymous
July 27, 2008
Ficou bastante interessante essa abordagem para uma linguagem que tem raízes fortes com o mundo acadêmico. Espero que ela também possa nos ajudar no mundo corporativo.