Variável tipada dinamicamente

Pessoal,

Não tenho muito fundamento academico, e só estive dando uma pesquisadinha, mas queria saber a opinião de vocês com relação a variáveis tipadas dinamicamente. Quais são as vantagens? Eu não me sinto muito a vontade com isso, uma coisa que também me incomoda muito é não precisar se declarar uma variável em linguagens de script como o vbscript e o javascript.

Gustavo Guilherme BacK

o que é uma variável tipada dinamicamente?

Eu particularmente gosto de linguagens tipadas.
VB e alguns scripts viram uma salada, justamente pelo fato de não serem fortemente tipadas.

foo = "string" foo = 1234 response.write(foo)

Se bem me lembro esse tipo de coisa funciona com ASP.

Como o nome diz, uma variável tipada dinamicamente tem seu tipo determinado em tempo de execução :smiley:

Simples.

i = 0; // i é um int
//... bla bla bla
i = "Daniel"; // agora i  é uma String
i = new Socket(); // agora i é um Socket...

Sim, isso pode tender ao caos com uma facilidade tão grande quanto palha seca tem de pegar fogo. Mas é questão de disciplina e cuidados.

Eu gosto da idéia de linguagens com inferência de tipos, muito legal. Uma pena que nenhuma delas é mainstream.

Boo.NET e IO são assim, né?

não seria o caso de usar o conceito de herança e polimorfismo da orientação a objetos?

Boo.NET e IO são assim, né?[/quote]

Boo, sim, IO nao - em IO eh tudo tem tipo, mas as variaveis sao variantes (eca, terminologia do VB, nao sei qual o nome certo pra isso, desconsidere :D)

Inferencia de tipos é quando o compilador deduz o tipo mais adequado para a sua variavel.

Eu, particulamente, fico meio perdido com as linguagens que possuem inferência de tipos. Acho absurdo, e não sei se isso acontece só no vb, ter variáveis tipadas dinamicamente e ainda assim ter de fazer um casting para comparar uma variável que atribui como string com uma que possue dados de inteiro. Isso acontece com Python, Ruby e as outras?

Também acho que a possibilidade de se usar variáveis que não estão declaradas é um saco. É terrível você ficar meia hora em cima de um bug pra descobrir que a variável estava com o nome incorreto.

O que é mainstream?

Mainstream