On Nov 7, 2006, at 8:17 PM, Crohno wrote:
Bueno veran hace poco empeze con ruby on rails(maravilloso, estoy
enamorado de este lenguaje) y bueno he oido que la programacion en
ruby
es similar a la de rails, por lo tanto me han surgido varias dudas que
espero uqe alguno de los gurus de aqui me ayude a solucionar:
-Se programa igual en rails que en ruby?
Ruby es un lenguaje de proposito general. Rails es un framework de
desarrollo web cuyo lenguaje de programacion es Ruby.
Entonces, la estructura de controladores, modelos, helpers, el argot
de acciones, vistas, etc. son propios de Rails. Pero la
implementacion de un controlador, de sus metodos, etc. es codigo
Ruby. Las vistas rthml son templates ERb a las que se les pasan
helpers y otras cosas raileras, pero eso tampoco es especifico de
Rails. ERb es un sistema de templates agnostico al formato del output
que viene como libreria estandard Ruby. Uno puede usar por ejemplo
ERb para generar LaTeX desde un script Ruby, fuera de Rails. ERb deja
lo que va fuera de los snippets Ruby tal cual, interpreta los <% … %
y añade el resultado de los <%= … %> al output, si el contenido
es HTML o no le da lo mismo. Todo el contexto que tiene una vista
(helpers, etc.) son propios de Rails. Una plantilla ERb silvestre no
tiene definida image_tag().
Por otro lado, Rails añade algunas extensiones al core de Ruby. Por
ejemplo todo objeto en Rails responde a blank? pero el Object
original no tiene ese metodo. En Rails puedes calcular
5.hours.from_now, y en Ruby pelado no de ese modo. Si te pasas a Ruby
fuera de Rails has de ser consciente de esos pocos detalles. Esto es
posible en Rails porque Ruby permite la redifinicion de clases,
incluso de clases core.
-Se compila el codigo de ruby para hacer un programa?
Ruby es interpretado. Le pasas un archivo con codigo fuente a ruby,
el interprete, y se ejecuta sin mas.
-En que sistemas operativos funcionan los programas en ruby?
Si son portables en unos cuantos, al menos Linux, Mac OS X, FreeBSD,
Windows, y seguro que en mas Unixes por lo menos.
– fxn