Pesquisar

sexta-feira, 4 de janeiro de 2008

Expressividade na linguagem

Atualmente existem muitas linguagens de programação no mercado, algumas que fazem parte do "legado" {cobol,natura...} e outras estão em "voga" {java,ruby,c#...}. Fala-se muito em expressividade na escrita de código. A linguagem pode ajudar e muito a criação de código mais expressivo. Como exemplo inicial, duas linguagens, Java já conhecida e admirada e Ruby nova e promissora.
Para se obter o ultimo elemento de uma lista...

Em Java.
aList.get(aList.size -1)
Em Ruby.
anArray.last

É notório que o código parece ser melhor expresso com Ruby.
Agora considere os códigos abaixo:

//C# 2.0
date d = Helper.At(Helper.FromToday(Helper.Days(2)), Helper.Pm(4));
//C# 3.0
date d = 2.Days().FromToday().At(4.Pm);
Veja o quanto a versão 3.0 do sharp é mais fácil de ser "lida".

Outro exemplo:

Em Java:
public List pessoasFisicas(List pessoas) {
List resultado = new ArrayList();
for (Pessoa pessoa : pessoas)
if (pessoa.isFisica()) result.Add(pessoa);
return result;
}

Em Ruby:
def pessoasFisicas(pessoas)
return pessoas.select {|e| e.isFisica}
end

Sem comentário para essa última demonstração.
"Ser expressivo" pode facilitar futuras manutenções, extensões e integrações no código.

Os exemplos foram roubados discaradamente de
* HumaneInterface - Martin Fowler
* Artigo no InfoQ

ps: os códigos podem estar errados.

2 comentários:

Anônimo disse...

Genial dispatch and this fill someone in on helped me alot in my college assignement. Thank you seeking your information.

Leandro disse...

Por nada! Não compreendi corretamente o que quis dizer mas tudo bem!

You welcome! Well, even that I don't undestood all you wrote...