BT

Proposta: um Compromisso sobre Utilização de Dynamic em C#

por Abel Avram , traduzido por Yan Borowski em 17 Nov 2009 |

Jeffrey Palermo, CTO da Headspring Systems, propõe um compromisso na utilização de Dynamic de C#: a capacidade de fazer um método dinâmico inteiro, mantendo conjuntos estáticos.

Comentando sobre um debate recente de Tipagem estática versus Dinâmica, Palermo notou que a programação dinâmica é difícil quando se utilizam bibliotecas porque:

Você realmente não sabe o que ela suporta, exceto se a documentação é aberta e impecável. Não existem tipos de interface para descrever as propriedades e métodos que serão chamados, uma vez que você passar o objeto. Se a documentação não abrange toda API, você é forçado a escrever testes de caracterização.

Outro problema é, na opinião dele:

Ao trabalhar com uma linguagem dinâmica, você tem que manter mais do sistema em sua cabeça, para programar. Você tem que lembrar quais objetos estão substituindo quais métodos, e que objetos têm uma nova funcionalidade que lhes são inerentes.

Ambos os problemas são questões reais ao ter que lidar com bibliotecas externas, mas não isso é um problema para um desenvolvedor trabalhando em seu próprio código, porque ele é dono do código.

O C# 4.0 introduz o dynamic lookup permitindo aos desenvolvedores declarar objetos do tipo dinâmico. Este recurso foi destinado a permitir que programadores lidem mais facilmente com os objetos de linguagens dinâmicas como Python e Ruby,   objetos COM acessados através de IDispatch, objetos com uma mudança na estrutura como HTML DOM ou tipos do .NET, obtidos através da reflexão. Objetos do tipo dinâmico podem ser utilizados com algumas limitações, como eles normalmente estão em linguagens dinâmicas.

Palermo propõe a introdução de uma palavra-chave dynamic em C# que permitiria a tipagem dinâmica para todos os objetos no método sem ter que declarar explicitamente cada um como dinâmico. Isso permitiria que os desenvolvedores que preferem tipagem dinâmica para usá-lo dentro de C# e, entretanto, deixaria a linguagem estática a nível limite de montagem para segurança.

Este é um compromisso desejável?

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão

Dê sua opinião

Conteúdo educacional

Feedback geral
Bugs
Publicidade
Editorial
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2013 C4Media Inc.
Política de privacidade
BT