Aún estamos lejos de Ruby On Rails... a pesar de Zend

Hace un par de años que escribí un artículo para una revista en donde documentaba mis primeras pruebas con Ruby On Rails, en concreto, la instalación y los primeros pasos. Posteriormente me ofrecieron hacer un artículo más profundo, pero la verdad que me quedé sin tiempo como para seguir investigando, ya que estaba más abocado a profundizar mis conocimientos en PHP (que nos falta mucho comparado con otras tecnologías).

Del poco tiempo que pude invertir puedo decir que me encontré que no es tan fácil como lo publicitan, no se hacen sitios tan fácilmente, o por lo menos, no es tan fácil aprender un nuevo lenguaje y un nuevo framework, ni tampoco es fácil cuando los requerimientos se complican (hay que evaluar los costos, todo tiene su costo).

Luego de pasar algunos años volví a hablar esta semana con algunos colegas sobre RoR y para dejarles un ejemplo bien gráfico les puse el video más famoso y marketinero que puede haber, al autor explicando cómo hacer un blog en 15 o menos minutos ;-)

La verdad que luego de no verlo por mucho tiempo me vuelvo a sentir tan sorprendido como la primera vez y ahora, luego de dos años y más experiencia acumulada en PHP + Zend, vuelvo a sacar la misma conclusión:

"Aún estamos lejos de Ruby On Rails" ;-)

Ya que, aunque Zend es la respuesta a la aparición de RoR, y hemos dado muy buenos pasos "estructurales", aún estamos lejos de la productividad que se ven en esos videos. Zend apunta a que tengamos los famosos "scaffolding" y hacer rápidamente ABMs (que tanto tiempo nos consumen).


Hay que destacar que los videos también pueden ser engañosos, ya que puedo entrenarme por una semana, usar el lenguaje que más domino, preparo un desarrollo en concreto (como un Blog) y luego puedo hacerlo y grabarlo de corrido y parecerá que con PHP + Zend todo es "soplar y hacer botellas".

Pero igual, a pesar de todo, aún nos faltan algunas cosas que RoR tiene y que necesitamos cuanto antes.

Así que sigamos adelante :-)

13 comentarios:

David Cuadrado dijo...

Ese video de rails (el-blog-en-15-minutos) esta algo viejo (es del 2005) y se ve obsoleto, ahora las cosas son incluso mas faciles y con mejor rendimiento.

El sistema de plugins es genial, cosas como ActiveScaffold te ahorran un monton de tiempo.

Si quieres ver videos mas nuevos:
http://railscasts.com/episodes;archive

Enrique Place dijo...

Estimado David:

Sí, claramente sé que es viejo, más aún me sorprende que luego de no verlo hace tanto tiempo me siga impresionando como antes, por lo cual motivó la reflexión que acabo de hacer en el blog ;-)

De todas formas me siento un poco perdido al no existir una documentación tan buena y lineal como tiene PHP en su sitio web oficial.

De todas formas voy a volver a investigar el tema para ver en qué anda el estado actual del arte RoR 2.0

Gracias por el enlace.

Andrés Guzmán dijo...

Encuentro que rails es un buen framework para desarrollo de aplicaciones rápidas, sin embargo discrepo que estemos lejos de Ruby ya que Symfony hace exactamente lo mismo, tiene generadores (Scaffold) bastante completo al mismo nivel de Ruby.

Por otra parte he leído artículos que hablan que ruby no tiene buen performance comparado con otros lenguajes, se cae en rendimiento cuando se trata de muchos usuarios conectados, de hecho un sitio (no recuerdo el nombre) escrito con ruby lo tuvieron que emigrar a PHP (Symfony) por graves problema de performance.

Par terminar, la filosofía de Zend_Framwork es muy diferente, no esta pensado en el desarrollo de aplicaciones rápidas ni generadores de código ni nada por el estilo. Es más parecido a spring de java un kit de componentes/librerías y el desarrollador se encarga del resto.

En general hay dos tipos de framework el Full Stack y Glue, Zend pertenece al segundo mientras que Ruby y symfony al primero. Por esa razón Zend Framework jamas va ha ser como ruby ni symfony porque su filosofía y objetivos son otros.

Andrés Guzmán dijo...
Este comentario ha sido eliminado por el autor.
Andrés Guzmán dijo...
Este comentario ha sido eliminado por el autor.
Andrés Guzmán dijo...

Aquí les dejo un link de un articulo que hablan bastante sobre ruby frente a otros frameworks.
¿Ruby on Rails está muerto?

Igor dijo...

Hola,

Bueno la misma pregunta que te hice hace 1 anio o mas.

Por que continuas con PHP si lo consideras inferior a RoR? requerimientos del trabajo?

Yo soy un programador en .NET(Mono para ser exacto) y si considerara Java superior a .NET pues estaria usando Java.

Lo mismo pasa con Linux, si yo considerara a OS X o Windows superior, estaria usando OS X o Windows en lugar de Linux.

Tu punto de vista pareciera como que PHP es una empresa y vos tenes acciones en PHP :)

Y por ultimo, Django + GAE, es la segunda venida de cristo para la web!

Enrique Place dijo...

Estimado Andrés:

Estoy de acuerdo con lo que dices, hay muchas opciones en PHP que están más cerca de RoR que usando Zend, pero bueno, el comentario fue más general y en lo particular, desde la óptica de usuario de Zend.

Pero creo que la idea se entiende, hay mucho aún en el mundo PHP de programación artesanal (demasiado para mi gusto) y lo veo (demasiado para mi gusto) todos los días ;-)

Espero que mejoremos de una vez por todas y lo "artesanal" sea cosa del pasado (o para casos muy particulares).

Abrazos

Enrique Place dijo...

Estimado Igor:

Tanto tiempo ;-)

> Bueno la misma pregunta que te
> hice hace 1 anio o mas.

Si, lo recuerdo (bueno, no, lo busqué en mi Gmail ;-))

> Por que continuas con PHP si lo
> consideras inferior a RoR?
> requerimientos del trabajo?

En sí no lo considero inferior, solo veo que hay algunas herramientas que tienen en la actualidad RoR que si ya la tuviéramos en PHP y aceptadas como estándares de desarrollo (algo que carecemos) estaríamos mucho mejor.

Nota personal: no es que rechace otros frameworks, pero tomo a Zend como el "framework oficial" de PHP, por consiguiente tomo esa falta "oficial" a pesar que otros frameworks tengan esas mejoras.

> Yo soy un programador en
> .NET(Mono para ser exacto) y si
> considerara Java superior a .NET
> pues estaria usando Java.

A pesar que tengo una "especialización" en ambientes LAMP, trato de pensar como los viejos analistas... usar la herramienta adecuada según el problema y no ver todo a través de la misma herramienta (aunque ayuda mucho que el mundo informático esté yendo fuertemente a todo lo que sea web).

> Lo mismo pasa con Linux, si yo
> considerara a OS X o Windows
> superior, estaria usando OS X o
> Windows en lugar de Linux.

Es que no hay un "superior" absoluto, yo uso Linux para unas cosas, Windows para otras (para trabajar prefiero Linux).

> Tu punto de vista pareciera como
> que PHP es una empresa y vos
> tenes acciones en PHP :)

No, nada que ver, pero es un gran exponente del software libre, y para el ambiente web me parece adecuado para mis necesidades y para muchos otros desarrolladores. Aunque he probado RoR, aún no me siento cómodo con el mismo y veo que tiene una curva importante.

> Y por ultimo, Django + GAE, es
> la segunda venida de cristo para
> la web!

Puede ser, tengo pendiente probar algo de Python y Django, mucho he leído, pero no he tenido tiempo para todo ;-)

Abrazos!

Andrés Guzmán dijo...

Enrique, te recomiendo que le eches un vistazo a Grails, hace lo mismo que ROR pero con todo el poder de JAVA, Grails es un framework para aplicaciones web construido en Java y Groovy que integra las mejores APIs de la esfera Java EE incluyendo Spring, Hibernate y SiteMesh.

Te dejo un link de un Screencast

Miguel Angel Ivars Mas dijo...

A ver si esto responde a tus plegarias..
Akelos Framework http://akelos.org (Es un port de RoR a PHP).

Andrés Guzmán dijo...

Miguel Angel Ivars Mas,

Akelos Framework, mmm... esta escrito con php 4 (otra cosa es que funcione en PHP5), pero el modelo de objeto que utiliza es de PHP4 (completamente obsoleto), utiliza var en las propiedades de la clase en vez de private, protected o public, ¿que pasó con el ocultamiento y privacidad?

Un framework que no respete los principios básicos de la OOP NO puede ser considerado un buen Framework ni siquiera le alcanza para nivel medio.

Además utiliza las variables estáticas dentro de los métodos (static $_cached;) el constructor esta obsoleto debiera ser __construct y no el nombre de la clase, no hay interfaces, etc... en resumen PHP4 = Obsoleto = Framework Obsoleto.

Enrique Place dijo...

Bien dice Andrés, no tengo nada que aportar a su buena explicación ;-)

Miguel, mis plegarias serán escuchadas cuando PHP+Zend avance lo suficiente como para tener la misma o más productividad que veo en los videos de RoR ;-)

PD: generalmente se malinterpreta cuando uno se auto-critica... hay que se maduro y ver cuales son nuestras debilidades para aprender de ellas y superarlas.

Para nada me voy a poner a defender a un framework, lenguaje o tecnología diciendo que es perfecto.

Entradas populares