> IMHO: no es "tan" tipado ni cerca, tiene tipos pero siempre va a
> tratar de hacer el "mejor esfuerzo" para realizar lo que le pidas con
> la variable que sea sin fijarse el "tipo". En caso de no poder
> realizar tirara una excepcion o error.

Estas seguro? Bueno, Matz dice que su lenguaje _es_ tipado: :) 

"...by my definition, strong typing means that every data has its own
"type, without exception.  Weak typing is that type can be mixed and
"changed very easily.  Dynamic typing is that types of expressions
"(including variables) are determined at run time, whereas static
"typing is that every expression (and variable) has its type determined
"at compile time.  Under these definitions:
"
"  Ruby: strong dynamic typed language
"  Java: strong static typed language
"  AWK:  weak dynamic typed language
"  C:    weak(?) static typed language.
"  Perl: weak part static, part dynamic typed language
"
"       matz.
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/64625

"Dave Thomas dijo una vez, y en parte tiene razon, que Ruby, tanto como
los demas lenguajes que se proclaman OO, no lo son..."

bajo los dos criterios que te describi antes
(todo viene de una clase, se puede saber a que mensajes responde un objeto), 
ruby _es_
orientado a objetos, mas alla de algun criterio filosofico que se pueda 
encontrar:

"In many languages, numbers and other primitive types are not objects.
"Ruby follows the influence of the Smalltalk language by giving methods
"and instance variables to all of its types. This eases one’s use of
"Ruby, since rules applying to objects apply to all of Ruby.
http://www.ruby-lang.org/en/about/

>> El tema es que lo que devuelve .class no se sabe en tiempo
>> de compilacion sino solo al ejecutar el codigo, por eso se dice que es
>> dinamico.
>
>Tiempo de compilacion? (YARV, Ruby.NET, Rubinius? )

mri ? Tene en cuenta que compilar no es siempre convertir a codigo de maquina:

"A compiler is a computer program (or set of programs) that
"translates text written in a computer language 
"(the source language) into another computer language
"(the target language). 
"The original sequence is usually called the source code and
"the output called object code
http://en.wikipedia.org/wiki/Compiler

En el caso de ruby, la compilacion devuelve como "object code" un syntax tree 
en memoria, 
que despues se recorre para ejecutar el codigo en cuestion.

Por otro lado, aquellas implementaciones que generen como "object code" algun 
tipo
de codigo de maquina (ya sea codigo de maquina "real" o bytecodes para alguna 
virtual machine)
seguramente tengan algun tipo de runtime para poder crear ejecutables para 
programas como este:

value= STDIN.gets
eval("puts \"Valor: #{value}\"")

>PD: Es de buena y sana costumbre cuando enviar una lista de mail usar
>texto plano (_NO_ HTML) y responder los mails debajo del texto que
>estas citando para ayudar a los demas a seguir el hilo. No va
>personalmente a vos, pero aprovecho la oportunidad para  decirlo.

Bueno es la primera vez que alguien se queja de mis posts... en lo posible 
tratare de complacerte, aunque es un poco trabajoso con yahoo mail, vere si se 
puede configurar.

Saludos!


       
---------------------------------

Tarjeta de crédito Yahoo! de Banco Supervielle.Solicitá tu nueva Tarjeta de 
crédito. De tu PC directo a tu casa. 
 Visitá www.tuprimeratarjeta.com.ar
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a