Duck typing.

O Duck Typing ou literalmente “tipagem pato” é um estilo de codificação de linguagens dinamicamente tipadas onde os parâmetros pouco importam, desde que o comportamento final seja o esperado.

O termo Duck Typing vem de uma teoria que diz: “Se anda como pato, nada como um pato e grasna como um pato, então é um pato”.

A ideia nesse Post não é defender ou criticar a metodologia Duck Typing, mas explicar o conceito.

Linguagens dinamicamente tipada como Python, Ruby e JavaScript suportam Duck Typing, já linguagens estáticas como Java e C# não suportam.

As vantagens de se usar Duck Typing é a conveniência de se programar sem se preocupar com a tipagem e sim com resultado final, por outro lado, existe a desvantagem de não ter a segurança de checagem dos tipos.

Duck Typing na prática.

Para mostrar na prática o uso do Duck Typing vamos utilizar Javascript.

O Javascript é uma boa linguagem para demonstrar os conceitos pois é uma linguagem funcional e que hoje se tornou muito popular.

Repare que pouco importa qual seja o tipo de entrada, o resultado vai ser uma concatenação de valores ou soma das mesmas, ou seja, enquanto os objetos suportarem o método “+”, a função será executada.

Conclusão.

O modelo de programação Duck Typing é uma boa forma de se programar? Talvez. Acredito que não seja uma questão de o que é melhor ou pior, mas sim do que atende no momento da construção do código.