Ele que mostra que podermos somar dois chars e atribuirmos a um float (ao longo do texto o conceito de “fracamente tipada” ficará mais claro).
Como podemos ver a variável x começa como Fixnum e conforme aumenta, passa para Bignum – sem a necessidade de uma conversão.
§ A linguagem tende a ser mais lenta em tempo de execução, devido ao fato de que, a cada interação, o tipo deve ser verificado;
Continuando no mesmo exemplo, quando fizemos x = 100 não precisamos declarar o tipo de x. Ou seja, não foi necessário fazer algo como: Fixnum x = 100. Isso acontece pelo fato do Ruby detectar o tipo de cada variável em tempo de execução. Uma boa analogia para este fenômeno é pensar nas variáveis como se fossem caixas fechadas e seus dados como fitas coloridas onde o interpretador abre a caixa e verifica as cores das fitas.
Novamente, os pontos positivos e negativos são muito semelhantes aos relacionados a tipagem dinâmica. Veja:
§ A linguagem tende a ser mais lenta, pois o tipo é verificado em tempo de execução de acordo com a analogia das caixas e fitas;
§ Pode confundir o programador, pois ele pode não saber exatamente com quais tipos está tratando, já que não existe a declaração dos mesmos.