BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias Proposta: um Compromisso sobre Utilização de Dynamic em C#

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

Favoritos

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?

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

BT