Foros del Web » Programando para Internet » Ruby »

Ruby 100% orientado a objetos

Estas en el tema de Ruby 100% orientado a objetos en el foro de Ruby en Foros del Web. Hola, esta es una consulta En la U me dan una materia llamada Programación Orientado a Objetos y nos dan java, pero creo que sería ...
  #1 (permalink)  
Antiguo 01/07/2008, 09:00
 
Fecha de Ingreso: julio-2007
Mensajes: 22
Antigüedad: 17 años, 5 meses
Puntos: 1
Ruby 100% orientado a objetos

Hola, esta es una consulta
En la U me dan una materia llamada Programación Orientado a Objetos y nos dan java, pero creo que sería mucho mejor que nos den Ruby ya que todo es objeto hasta los números.
Por ejemplo
x=2
x.class => fixnum
#Y si le elevas
x=x^1000000
x.class => bignum

Esto en java lo harias mediante metodos de la clase integer , pero no es un metodo del número, corrigeme si no es asi :)

No sería mejor que expliquen Ruby en vez de Java?

Saludos
  #2 (permalink)  
Antiguo 01/07/2008, 09:11
Avatar de Yaraher  
Fecha de Ingreso: abril-2007
Ubicación: Lima, Perú
Mensajes: 262
Antigüedad: 17 años, 8 meses
Puntos: 9
Respuesta: Ruby 100% orientado a objetos

Efectivamente, Java implementa la programación Orientada a Objetos, pero no lo hace en su totalidad. En Ruby (y otros lenguajes más) si encontramos que todo es un objeto (hasta las clases son realmente objetos de la Clase Object ^^) .

Sin embargo, por temas académicos y de mercado, es mucho más común que utilicen Java, .NET, Delphi o similares que son un poco más maduros. De todas formas, si es de tu interés, no veo porque no podrías hablar con tu profesor y conversar sobre el tema.

Por lo que veo, si el curso es POO, probablemente tanto Ruby o Java sirvan para esos propósitos, ya que algunos elementos de Ruby pueden ser algo más complicados de entender al inicio si falta experiencia o conocimiento en otros lenguajes.

¡Suerte!
  #3 (permalink)  
Antiguo 01/07/2008, 14:59
 
Fecha de Ingreso: enero-2006
Mensajes: 48
Antigüedad: 18 años, 10 meses
Puntos: 0
Respuesta: Ruby 100% orientado a objetos

Ruby es un lenguaje fuertemente orientado a objetos, en la tradición de Smalltalk: *todo* es un objeto. Sin embargo convendría aclarar algunas cosas que lo hacen difernte de Java: en primer lugar Ruby tiene una fuerte componente de programación funcional (lambdas, bloques, funciones de mapeo, etc) de la que carece -por el momento- Java.

En segundo lugar, Ruby opta en algunos casos por paradigmas distintos para resolver un mismo problema. En Ruby *todo* es dinámico, de forma que no hay chequeo de tipos en el paso de parámetros (lo llaman "duck typing") Mientras el objeto que pasas como parámetro responda adecuadamente alo que la función le pida, tu programa funcionará. En caos contrario saltará una excepción. Esto es muy potente.

Además, puedes *abrir* las clases en tiempo de ejecución; puedes cambiar el código de una clase ya existente; no heredar de ella -que es lo que C++ o Java te permiten- sino *cambiar* la forma en la que se comportan todas las instancias de una clase aunque hayan sido instanciadas *antes* de que tú hagas ese cambio en la clase. Con esto se pueden abordar los problemas de otra manera. Por ejemplo, en Java tienes los interfaces (o las clases virtuales puras de C++). Ruby enfoca el problema de una manera distinta usando módulos o "mixins", que te permiten inyectar los métodos que quieras en tu clase -en lugar de heredar de una clase abstracta-.

En defiitiva, que Ruby es un gran lenguaje de programación pero yo creo que para aprovechar bien su potencia (y entender por ejemplo lo que hacen las tripas de Rails) es necesario tener una base de programación orientada a objetos muy sólida que sólo la consigues viendo cómo se hacen las cosas en varios lenguajes distintas (por ejemplo C++, Eiffel, Java...) y luego aplicándolo o contrastándolo con la forma de trabajar de Ruby.
__________________
------------------------------
http://www.sobrerailes.com
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:18.