Ruby on Rails vs PHP: una falsa comparación
Una nueva tecnología para el desarrollo de sitios Web emerge pero… ¿para destronar a PHP? Este artículo trata principalmente de presentar una visión con respecto a un tema que necesitan ser debatido.
El mundo del desarrollo Web está un tanto convulsionado. Indudablemente algo esta cambiando, y muy fuertemente, en la concepción de los mismos. AJAX, XHTML y Web 2.0, Firefox o Internet Explorer; XML, XSLT, SGML.
La W3C con sus cada vez mas numerosos estándares; Web Services, Metodologías Ágiles y Frameworks por doquier; PHP, JSP, ASP… y entre todo, 3 palabras que asoman con fuerza: Ruby On Rails (RoR).
Mucho se ha hablado, y se esta hablando de esta nueva tecnología, sobre todos de sus bondades a la hora de encarar proyectos Web. Este artículo se trata principalmente de una opinión, de mi opinión respecto a un tema de esos que necesitan ser debatidos. Comencemos.
La verdadera medida de Ruby On Rails
Primer punto, fundamental por cierto: Ruby On Rails es la conjunción de dos componentes. Por un lado tenemos Ruby (un lenguaje de programación orientado a objetos), y por el otro lado tenemos Rails (un Framework más para dicho lenguaje, como Nitro/Og o RubyEventMachine), que implementa los patrones de diseño MVC y ActiveRecord, entre sus principales características.
Parecería ser que la polémica de moda es: ¿PHP o Ruby On Rails?
Analizando distintas opiniones sobre el tema concluí con que parecería ser, no está del todo claro este punto.
No podemos comparar un lenguaje de programación con un framework para un lenguaje de programación
¿Por qué se genera esta falsa comparación?
La respuesta parecería estar en la misma empresa desarrolladora de Rails. 37signals se encarga de venderlo como la solución a los complicados, extensos y tediosos proyectos utilizando tecnología J2EE.
De solo recordar la ya famosa foto publicitaria “RoR VS. J2EE” (debajo) entendemos claramente a lo que 37signals apunta. Entonces, acomodando los tantos: Por la misma razón que no es válida la comparación RoR vs. PHP, no es valida la comparación RoR vs. J2EE (aunque tiene un mayor sentido).
En este caso, habría que hilar un poco mas fino en J2EE, tomando lo que concierne estrictamente a desarrollos Web (Servlets, JSP, Struts, etc.).
De todas formas, le doy más crédito a esta comparación debido a que J2EE engloba muchas tecnologías: el lenguaje Java junto a otros componentes (Struts e Hibernate entre ellos, buenos puntos de comparación para el MVC y el ActiveRecord de RoR).
La necesidad de un Framework de facto para PHP
Justamente la principal causa del error de comparación de PHP con Ruby On Rails es que al último se lo ve casi como a la misma cosa, favorecido por una baja popularidad de Ruby y una gran explosión de Rails.
Por el contrario, la situación de PHP es muy distinta. La propia naturaleza de PHP como un lenguaje extremadamente liberal, no lo ata con ninguna tecnología extra. Sin embargo, la mejora del modelo de OOP en PHP5 trajo aparejado un número importante de Frameworks (Cake, PRADO, Symfony, etc.) que se van agregando al lote del Zend Framework, aunque a decir verdad, ninguno logra imponerse fuertemente sobre el resto.
El claro objetivo del Zend Framework es desembarcar para quedarse en el mundo Enterprise, y poco a poco se va perfilando como el Framework de referencia.
Dada esta situación, correctas comparaciones podrían ser:
- PHP On Zend Framework vs. Ruby On Rails
- PHP on Cake vs. Ruby On Rails
- PHP on Symfony vs. Ruby On Rails… etc.
Por otro lado, el concepto de Rails como Framework MVC + ActiveRecord, ideal para el desarrollo ágil de sitios Web 2.0 (palabras de los autores), no es la panacea universal ni la solución definitiva, y encontramos soluciones similares en otros lenguajes:
- Cake (PHP). Anteriormente citado
- Django (Python)
- Trails (Java)
- entre otros…
Que funcionan tan bien o inclusive mejor que RoR, dependiendo del sistema con el que estamos lidiando.
La batalla publicitaria
La realidad es que 37signals en su campaña publicitaria no sale a atacar agresivamente a PHP, como si lo hace con J2EE. Evidentemente, no lo tiene como competidor, o no deja entreverlo según lo que pude apreciar personalmente.
Por el lado de PHP, Andi Gutmans tampoco considera a RoR como un competidor directo, aunque hace una, a mi entender, muy interesante apreciación: “Sentimos que PHP con Zend Framework es superior a RoR, y mientras otras personas lo vean de otra forma en cuanto a sus funcionalidades, definitivamente significa que Ruby estuvo siendo mejor publicitado.
El diseño ingenioso del sitio de RoR y el marketing viral usado por 37signals le dio a RoR un mejor boca a boca que a PHP. Afortunadamente, esto ayuda a elevar la imagen de Zend y a incitar aun mas el uso de su Framework.”
En este momento de la lectura, podemos estar de acuerdo con lo leído, o simplemente pensar que es una opinión muy parcializada. Como habrás podido observar, no hemos hecho más que simplemente “filosofar” un poco sobre si corresponde tal o cual comparación. Es el momento de evaluar otros puntos.
Flexibilidad vs. Organización
Muchos desarrolladores caen en la trampa de decir que mientras RoR es más organizado y fuertemente estructurado a la vez de rígido, PHP es más flexible a la vez de desordenado.
Se podría decir que esto es cierto si estuviésemos comparando lo mismo, pero a la vista de los argumentos anteriormente expuestos, esta comparación es inválida.
Tanto Ruby como PHP son lenguajes de scripting con propósito similar. La principal diferencia son sus enfoques, siendo Ruby de naturaleza OOP, mientras PHP es de corte más estructurado. La organización que le dota Rails a Ruby bien se la puede entregar cualquier Framework a PHP, como ser algunos de los citados anteriormente.
Performance
Definitivamente, una debilidad de Ruby poco conocida (o poco publicitada), es su baja performance en velocidades de ejecución.
Los benchmarks en diversos equipos y con distintas rutinas señalan a Ruby como un lenguaje lento, en comparación con PHP4, y más lento aun en comparación a PHP5. Como contrapartida, posee una excelente gestión de memoria, superior a las 2 versiones de PHP en el mercado actual.
Popularidad y Cantidad de Sitios
Si Ruby On Rails es la mejor solución para el desarrollo de sitios Web 2.0, como nos intenta vender 37signals, lo mínimo que le deberíamos pedir son ejemplos. Y cuando digo ejemplos no digo el ya famoso “Construya un blog en 15 minutos”, sino algo mas enterprise.
La realidad al día de hoy es que los pocos ejemplos de sitios Web utilizando RoR son mayoritariamente de la misma empresa que lo fomenta.
Repasemos algunos sitios Web 2.0:
- Technorati (PHP)
- Wikipedia (PHP)
- del.icio.us (mod_perl)
- Yahoo! (PHP)
- Flickr (PHP)
- blo.gs (PHP)
Repasemos algunos sitios construidos utilizando RoR:
- Basecamp (37signals)
- Shopify
- WriteBoard (37signals)
- ODEO
- TA-DA List (37signals)
Por otro lado, el ranking TIOBE TOP 20, que mide popularidad de lenguajes de programación, indica un claro ascenso para Ruby On Rails, pero se encuentra actualmente muy por debajo de PHP, y aun por debajo de Python y Perl.
¿Los programadores de PHP están interesados en migrar a Ruby On Rails?
Para contestar esta pregunta tendríamos que plantearnos:
- ¿Qué nos puede dar RuBy On Rails que no nos puede dar PHP?
- ¿Se justifica elegir un lenguaje de programación solo por una herramienta que nos proporciona?
- ¿Se justifica elegir Ruby solo porque tiene Rails?
La respuesta creo que esta en cada uno de nosotros. Dependerá de muchos factores, de las experiencias adquiridas y del grado de satisfacción que se tenga usando PHP.
En mi experiencia personal, viniendo de varios años programando en PHP y probando Ruby On Rails, he tenido una grata impresión, sobre todo en lo referente al startup del desarrollo y en la velocidad que se puede alcanzar desarrollando módulos tediosos, como generalmente son los ABM`s, entre otros.
De todas formas, en general estas mismas tareas pueden ser agilizadas también a través de PHP, usando algún Framework de este estilo, o simplemente para los desarrolladores más experimentados poniendo en práctica las “best practices”, o los principios básicos del diseño de sistemas, antecesores a cualquier Framework.
Respecto de la sintaxis de Ruby, esta claro que al ser un lenguaje influenciado por Perl, Smalltalk, Python y Eiffel, poco tiene que ver con la sintaxis que utiliza PHP, totalmente influenciado por C.
Evidentemente, hay muchos nuevos desarrolladores que se sienten atraídos por esta nueva tecnología y sus bondades. Si eres uno de ellos, y si RoR satisface las necesidades de tu proyecto y maximiza tu productividad, ¡excelente elección!
Mi misión, u objetivo es decirte que no es la única solución ni mucho menos. Para finalizar voy a utilizar la frase recurrente de este tipo de situaciones:
A cada tipo de problema, la herramienta correspondiente. La elección es tuya!
Un artículo muy interesante y explicativo. Pero creo le han faltado algunos enlaces a los frameworks de PHP. Si no te molesta voy a poner algunos.
http://framework.zend.com/
http://www.cakephp.org/
http://www.xisc.com/
http://www.symfony-project.com/
http://www.phpize.com/
http://www.phpmvc.net/
Hay muchos más, pero creo que estos son los más interesantes. Para ver una comparativa entre varios frameworks PHP visitar el siguiente enlace:
http://www.phpit.net/article/ten-different-php-frameworks/
Cuando yo empecé con RoR, para PHP había phpmvc, mojavi y poco más. Tras la aparición de Rails (y sólo después de Rails) empezaron a florecer “Rails wannabes” como setas por todas partes.
Pero, sinceramente, PHP como lenguaje no resiste comparación con Ruby. Y eso se nota en los frameworks que se generan por encima. ActiveRecord, que es el mapeo objeto-relacional de RoR, usa todo tipo de técnicas de metaprogramación. Técnicas que, o mucho ha cambiado el cuento, o PHP no tiene. No digo que ActiveRecord (que es un patrón de diseño, no algo específico de Rails) no pueda implementarse sobre PHP: de hecho probablemente los frameworks para PHP lo implementen de una manera o de otro. Lo que afirmo es que Ruby como lenguaje proporciona mejores herramientas que PHP sobre las que consturir el framework. Y estas herramientas redundan finalmente en mayor velocidad de desarrollo. Y no olvidemos que, en programación, el recurso más caro son las horas del programador.
También veo que el artículo no hace ni tan siquiera mención a la consola de depuración de RoR, al sistema de pruebas unitarias y de integración, a la integración con Subversion …
Dicho lo cual, que cada cual utilice lo que crea más conveniente. Yo desde luego la elección ya la tengo hecha.
Edito: en cuanto al FUD habitual del rendimiento de Ruby vs otros lenguajes, sí, es cierto: Ruby rinde peor que los demás. Pero dado que no estamos controlando reactores nucleares no veo que una diferencia de milisegundos en responder a una página web suponga un problema tan grave. Además, cuando existen webs (pongo por ejemplo el clásico ejemplo de LaCoctelera.com, que debe de andar por miles de usuarios y cuya versión comercial está siendo desplegada con éxito en sitios como Jazztelia TV).
no podemos negar, la gran facilidad que quieren darnos los creadores de RoR.
¿Qué nos puede dar RuBy On Rails que no nos puede dar PHP?
¿Se justifica elegir un lenguaje de programación solo por una herramienta que nos proporciona?
¿Se justifica elegir Ruby solo porque tiene Rails?
son preguntan basicas muy importantes, que tenemos que hacernos antes de elegir enfocarnos a RoR o a cualquier otro framework.
Particularmente me mantengo con PHP.
saludos, respeto la opinion de cada uno de vosotros.
Super interesante articulo,aunque si es verdad que no has profundiczado mucho en ror.Me interesa los puntos que te señala Epaminondas sobre que ruby es un lenguaje mas \”moderno\” en enfoque que php y que algunas implementaciones que se hacen son demasiado artificiales y complejas.Nos puedes dar tu opinion Daniel?
37 signals no es el único desarrollando sobre ROR, obviamente es el creador de Rails y por eso lo impulsa pero de aplicaciones hay muchas desarrolladas en ruby:
http://rubyonrails.org/applications
Y otra muy buena, http://www.streeteasy.com/.
Por otro lado se nota que un PHPero escribió el artículo.
Por dios no creo que la guerra ahora empiece PHPeros vs RoRaileros. Por dios, que cada cual escoja lo que quiera, y dejen de matarse unos a otro por un articulo bien redactado, y que no esconde nada.
Muy interesante tu articulo Daniel, lo mismo siempre decia, no se puede comparar un lenguaje contra un framework; pero para mi que he desarroado por mas de un año en php, Ruby on Rails cambio por completo mi metodologia de trabajo, ahora es mas eficiente, y paso mas tiempo pensando en la aplicacion que en el codigo. Cabe destacar tambien el inmenso apoyo que esta teniendo Ruby por parte de Sun Microsystems, debido al proyecto JRuby que promete una integracion total con Java y viceversa.
Saludos.
Yo quiero probar en mi proximo proyecto RoR, ¿será que la curva de aprendizaje va a ser un problema? Si lo hago en PHP por otro lado cuento con los años de experiencia de C y lenguajes estructurados. Por otro lado ¿que tan dificil es aprender a manejar Ruby? yo nunca lo he usado.
Es cierto lo que mencionas, sobre la “ausencia” de metaprogramación, y en particular de tecnicas de reflexión, en PHP. No lo incluye el lenguaje, pero no quiere decir que no podamos implementarla.
De todas formas, es sabido que la metaprogramación tiende a ralentizar el software, asi que podriamos verlo como alguno bueno o algo malo, segun el caso.
Vuelvo a la mítica: A cada problema…cada herramienta.
No, es verdad, no lo hace. El objetivo del artículo no es analizar bondades de uno u otro framework, de hecho no fue hecho ni para rails ni para Zend Framework, por citar algun Framework de PHP.
La idea es intentar dejar en claro otras cuestiones más de fondo
En este punto no coincido.
El software usa recursos escasos, y es necesario optimizarlos.
Esta claro que una diferencia de milisegundos no hace la diferencia para el usuario, pero si la hace para el server. Si un módulo es lento, el web server podrá manejar menos peticiones simultáneas, lo que puede conducir a una denegación de servicio.
Con tu reflexión, entonces para que se inventaron los proxies, los sistemas de cachés, los servers monolíticos o los ram disks? Los tiempos de respuesta importan y mucho en los desarrollos web. El tiempo dirá si algún coloso adopta Ruby On Rails como plataforma sobre la cúal desarrollar sus proyectos. Solo digo que tirarle flores en este tema es un tanto prematuro.
Saludos!
Daniel, muy buen artículo pues arranca un interesante punto de discusión.
Sin duda que hay que admirar el esfuerzo que ha existido con la promoción de este framework, a tal grado que se ha comparado con un lenguaje.
Y esto también nos hace ver la cantidad de frameworks disponibles que también se tienen para PHP, buen tema para un futuro artículo donde los comparemos y veamos cuales son los más utilizados y su razón.
Claro que también otro punto importante es evaluar las opciones, documentarse y solo así encontrar la herramienta que realmente necesitamos. Si algunos han migrado hacia RoR puede que hayan sido impulsados por esta moda que se oye en el medio, aunque sin duda que más que moda, también nos encontramos con una herrramienta poderosa y fácil de usar. Yo he probado ya un poco lo que hace RoR y ahora lo que me gustaría ver son más aplicaciones prefabricadas que apoyen el desarrollo en ese framework…
Gracias Christian!.
Justamente, la idea de generar este artículo dando mi opinion es conocer las opiniones de otros desarrolladores, y generar una sana polémica de la que todos podamos rescatar algo.
Saludos!
Bueno yo programo en php y en rails(o al menos eso intento :P) he provado los dos frameworks asi qeu dare mi opinion:
Rails es mas rapido y efetivo que php, la relentizacion de la que hablan es apenas perceptible. Programar en rails es mas intuitivo que en php y ademas de gastar menos tiempo en lineas de codigo, el trabajo tedioso casi siempre te lo saltas.
Lo unico malo que le veo a rails, es el hecho de la documentacion, aun hay muy poco y menos aun en nuestro idioma y los hosting, por lo demas me parece mil veces mejor que php.
Bueno esa es mi opinion, un saludo
PS:Recomiendo a todos a probar php y rails(sobre todo este ultimo) antes de opinar
Bueno yo he visto RoR en acción y la primera vez que lo vi me dejo boquiabierto pero debo acotar tambien que he probado symfony(framework en php) y me parecio identico de eficiente. En mi opinión solo cambian los nombres de los comando porque todo es similar las bases de datos se mapean con xml, utiliza un pseudolenguaje(YAML) como RoR.
Seria cuestión de poner a dos expertos en el manejo de estos framework desarrollando la misma aplicación y comparar el resultado(tiempo, esfuerzo, calidad, etc).
Bueno yo he visto RoR en acción y la primera vez que lo vi me dejo boquiabierto pero debo acotar tambien que he probado symfony(framework en php) y me parecio identico de eficiente. En mi opinión solo cambian los nombres de los comando porque todo es similar las bases de datos se mapean con xml, utiliza un pseudolenguaje(YAML) como RoR.
Seria cuestión de poner a dos expertos en el manejo de estos framework desarrollando la misma aplicación y comparar el resultado(tiempo, esfuerzo, calidad, etc).
A mi entender es una simple cuestión de marketing, la gente de 37signals quiere popularizar su framework \”colgándose\” de la fama y popularidad de PHP, que es un LENGUAJE de programación; obviamente no es su competidor directo.
No creo que ningún programador PHP atine siquiera a pensar en dejarlo y, menos aún, dejarlo por RoR.
En fin, como han dicho en el articulo, ver para creer… donde están las geniales aplicaciones Web desarrolladas con RoR?
Interesantisimo articulo, ya que a vista rapida abre un gran punto de debate para todos los que nos gusta estar al dia con la tecnologia y probarlas todas, aunque por una causa y otra terminemos usando solo una de ellas.
Felicitaciones Pichongol
Ruby On Rails = minimalismo
El articulo me parece interesante, pero yo creo que para dar una opinion mas objetiva habria que esperar un poco si bien lo de Rails es bueno, PHP por su parte desde la version 5 han aparecido frameworks interesantes, como Prado, Symfony, PHPcake etc.
Excelente artículo. Me quedo con php y el framework que intento hacer… Al menos se que cuando me de problemas o quiera cambiarle algo, podré hacerlo, y no tendré que estar atado de manos para toda la vida a un rails.
ruby (on rails) le da mil vueltas a php ( on cualquiera de esas imitaciones mediocres de rails)
que articulo tan falto de contenido y poco objetivo, es claro y logico que php tiene mas aplicaciones y paginas, al fin y al cabo tiene mas tiempo ahi afuera y mas publicidad, lo que importa de TIOBE y esos indices de popularidad no es la posicion sino la tendencia
lo unico que digo es que estos articulos DESINFORMATIVOS disfrazados de informativo (por el titulo) no deberian pasar a la editorial
[…] una visión con respecto a un tema que necesitan ser debatido… Leer la noticia completa en [ maestrosdelweb […]
RoR se ve prometedor, pero definitivamente me quedo con PHP y sus frameworks. Me parece mucho mas intuitivo y fácil de utilizar y aprender que Ruby. Además, el tiempo de interpretación es muy valioso. Stick with PHP
Les recomiendo ver Qcodo un framework muy bueno para PHP…
Hola a todos!
Creo que la comparación es poco atinada. El lo que respecta a la comparación de los frameworks de PHP tales como (Cake, Symphony, etc) y RoR. Poseo experiencia programando en J2EE, PHP(Cake) y ahora estoy incursionando en RoR.
En mi opinión personal, me parece bastante mejor en velocidad de desarrollo RoR. Realmente el tiempo de desarrollo y configuracion de la aplicacion es muy inferior a los anteriores. De ahora en más en mis futuros proyectos voy a empezar a convencer a más personas de utilizar este framework.
Saludos
Igual que el autor, opino que según el proyecto se debe elegir el que mejor le vaya, sea php a secas, con framework, rails, asp… pon lo que quieras.
Pero para tomar la decisión hay que conocerlos lo mejor posible a todos. No por haber hecho 4 pruebas ya sabes Rails.
Si has usado siempre PHP, cambiarte a Rails en teoria es más duro que pasarte a cualquier framework para php. ¿ Porqué ? En un caso tienes que aprender solo un framework, en el otro tienes que aprender un lenguage y un framework. Y evidentemente hay que hacer un esfuerzo mayor ( y sus respectivas horas perdidas por fallos tontos).
Para sacarle realmente partido hay que partir con un conocimiento elevado y despues ya puedes hacer comparaciones.
En el curro uso PHP i en casa desde hace unos pocos meses estoy aprendiendo Rails a mi ritmo (no es lo mismo que trabajar todo el dia con él). Sus filosofias son distintas, Rails nació con el objetivo de desarrollar de forma ágil y divertida (y te diviertes), los de PHP nacieron con el objetivo de copiar a Rails. No tienen alma. Es la gran diferencia.
Yo, Rails 😉 ( aunque seguiré con PHP por supuesto )
Gracias por un texto tan claro y organizado. Totalmente de acuerdo en lo de a cada problema su herramienta.
Muchos de los que usan RoR se quejan a menudo de que se dibuja la situación en términos de blanco/negro, pero la realidad es que esa atmósfera ha sido creada por publicidad tipo 37s.
Pues no me he enterado de mucho
Pues yo lo considero brillante
Muy bueno el articulo.
Pero, entiendo a RoR (habiendolo usado en un intento de desarrollo que termine haciendo en PHP), como un framework con un potente lenguaje detras ideal para diseñadores graficos que quieren hacer una aplicacion completa para web.
O quizas yo no profundice lo suficiente (ni tiempo tengo de hacerlo, las aplicaciones tienen que funcionar y rapido) pero no logro llegar a controlar todo lo que pasa en RoR, en cambio en PHP haciendo el codigo, las conexiones con bases de datos, etc, si algo falla se exactamente donde esta y como solucionarlo, cosa que con rails se me hace dificil.
Y la curva de apredizaje tampoco es instantanea, como me quizo hacer creer RoR y lo hice.. no me llevo ni 1 ni 2 semanas sino mas, y no creo que lo conozca a fondo.
Mi opcion : PHP + AJAX, y dejemos de arreglar lo que ya funciona.
Y como dijo alguno antes. “lo mas caro de los desarrollos son las horas de los programadores”. Cuanto mas dificil sea para los demas, mejor para nosotros, y mas vamos a poder cobrar.
Saludos
Yo como ing de desarrollo, en el sistema actual, debo saber PHP y Ruby on Rails como la palma de mi mano, a si que vallamos todos aprendiendo que sino nos quedamos atrás
ROR = Limitaciones = Pereza
Pereza ?. Si puedes utilizar una herramienta más rapida que te genere la mitad de lineas. Eso es pereza ? Entonces tu eres un perezoso porque no haces lo que hacía yo hace 20 años en cobol con mis plantillitas de pantallas definidas a base de codigo. Y los infores ? Ni te cuento la odisea.
Deberían de ver los del PHP ( yo he hecho cositas con el) como estaba la situación hace unos 6 o 7 años con las comparaciones entre JSP, ASP y PHP. Yo encuentro en Ruby una herramienta que hace lo que tiene que hacer, trabajar para mí, quitamer esfuerzo y horas de trabajo codificando. Yo tengo que dedicarme a analizar y ha vender ( lo siento , somos pocos en la empresa). Ahora bien, como decía alguien, la salida de rails ha marcado un camino en cuanto al diseño de frameworks, con lo cual, siendo mejor o peor, ha ayudado a enriquecer otras herramientas como PHP o Java ( jruby). A ragabon. Y si trabajas con un presupuesto cerrado ? Que haces con las horas de los programadores. Y si en vez de mantener 1000 lineas mantienes 100 ? Hay que ser práctico. A framirez, totalmente de acuerdo.
Si MICROSOFT y SUN estan pagando desarrolladores para tener ruby en sus plataformas, es por algo, creanme
ademas, php esta mal diseñado
http://tnx.nl/php
[…] En el trabajo me dedico a proyectos basados en Ruby on Rails. La verdad es que me está costando un poco adaptarme a la sintáxis y a las funcionalidades que ofrece Rails, esto unido a que estas semanas no estaba muy por la labor de abrirme a nuevas cosas complicaban mucho más la adaptación al nuevo lenguaje. No obstante estoy muy ilusionado con los desarrollos en RoR, ya que creo que tienen mucho futuro. Como cada día me sorprendo más con las funcionalidades de Rails, estuve buscado algún FW similar para PHP, ya que las páginas que suelo hacer están basadas en dicho lenguaje y los servidores en los que están instaladas no tienen soporte para Ruby… y me encontre que Cake tiene prácticamente las mismas funcionalidades y comandos que Rails, aunque la mayor parte de la Comunidad “peachepera” se decanta por el Zend Framework . Creo que me decantaré por Cake para de esta forma poder compatibilizar mis conocimientos en dichos FW. Y ahora la cuestión, ¿Qué es mejor RoR o ZendFW+PHP?, y como yo no puedo opinar, os dejo con este post que me encontré por ahí. […]
Veo fanatismo… veamos que dice el tiempo… y veamos si RoR puede llegar a darnos soluciones empresariales como lo hace Zend Framework….. yo digo que ojala… mientras as opciones buenas mejor…
Creo que no es lo indicado empezar a disparar para un lado o para otro diciendo cual es mejor, creo que lo mejor es usar lo que más nos acomode personalmente. Usando php o Ruby puedes lograr las mismas cosas, dependera de cada uno cual le acomoda más.
Despues de haber leído todos los comentarios (por encima del mío), he visto que se han tocado varios temas.
Como dice manu_drac, RoR ha marcado un punto de partida para los frameworks. Tras la aparición de RoR y PHP5 han salido algunos frameworks en PHP que intentan, en cierto modo, de copiar al framework de Ruby.
A mi parecer, para poder avanzar correctamente, creo que se debería aprender Ruby antes de empezar con RoR, por lo menos las nociones básicas. Porque llegará un momento en el que te estanques sin saber cómo avanzar. No se trata solo de copiar unos ejemplos y ver que funcionan, cambiar el diseño y listo.
Yo en su momento hice eso, me puse a copiar unos ejemplos para crear un blog y listo. Ahora cambié la estrategia y estoy con Ruby (que me está fascinando y, sobretodo, divirtiendo). También comentar que me interesa bastante Ruby por el tema de usuarlo en linux para mis scripts y demás, a la vez de coger nociones para RoR.
También he leido algunos comentarios referentes a la curva de aprendizaje, que RoR es dificil, que si surgen problemas cuesta solucionarlo, etc… Pero vamos a ver, eso sucede con todo. Pon a una persona que no sabe programar en PHP con un framework de PHP como Symfony, estamos en las mismas. El 90% de las personas que hacen esos comentarios llevan un largo tiempo con PHP, con lo cual, si surge un error, lo normal es que sepa solucionarlo con más rapidez que en RoR (quien dice RoR dice Django[Python] u otros).
Para finalizar, animo a todo el mundo a que pruebe concienzudamente Ruby (y despues Ruby on Rails) y posteriormente hablen.
Saludos.
Me parece que en algún punto la discusión se torna más del tipo si es mejor Chevrolet o Ford, que sobre desarrollo de sistemas en sí. Particularmente llevo casi 8 años desarrollando con PHP, probé poco de RoR y ese poco me pareció fantástico, ahora bien, me parece que las comparaciones simpre van a terminar yendo para un lado de la balanza según quién opine.
Coinicido en que no se puede comparar un framework con un lenguaje, también creo que para comparar ambos, deberíamos experimentar y desarrollar la misma cantidad de tiempo y tener una opinión, nuestra opinión, mas acabada, cuando digo nuestra opinión me refiero a que no todos vamos a llegar la misma.
Php es un lenguaje fantástico, RoR me parece igual pero creo que deberiamos darle más tiempo es muy joven todavía, tiene mucho de python y smalltalk, sin duda a los puristas de objetos le va a gustar más que PHP y creo que la elección de cada uno va a depender del contexto en el que lo estemos usando: si programamos en casa para divertirnos o si trabajamos en una empresa con varios desarrolladores, creo que cada uno opina sobre su contexto y seguramente siempre van a haber opiniones encontradas.
Que la empresa desarrolladora de Ruby on Rails es cual???? me ha parecido entender 37signals.
Si es así estás muy pero que muy equivocado (y eso le resta mucha credibilidad al resto del artículo), si no es así creo que deberías explicarlo mejor.
Deberian ver P4A( http://p4a.crealabsfoundation.org), es un framework hecho en PHP, que permite la creacion dinamica de aplicaciones WEB practicamente. (Esta potenciado con AJAX)
Mi opinion es que ruby on rails va ha ser el futuro de las aplicaciones, se puede realizar cualquier proyecto y enlazarlos con algunar librerias que pueden estar realizados en otros lenguajes, por eso ultimamente Rails a comenzado a crecer bastante, yo he realizado una pagina en rails aqui en Ecuador, si quieren verlo la direccion es http://www.xuniversitarios.com
el articulo es muy interesante, estoy recien tomando conocimiento del uso de frameworks.
el primer frameworks que conoci buscando por internet fue Symfony, hace tan solo unas semanas y realmente me sorprendio por su contenido en español, diversidad de foros y sitios sobre el tema lo cual me parecio un punto importante para decidirme por su eleccion como plataforma de desarrollo en mi actual proyecto.
Ahora me entero de toda esta diversidad de frameworks y aunq
el articulo es muy interesante, estoy recien tomando conocimiento del uso de frameworks.
el primer frameworks que conoci buscando por internet fue Symfony, hace tan solo unas semanas y realmente me sorprendio por su contenido en español, diversidad de foros y sitios sobre el tema lo cual me parecio un punto importante para decidirme por su eleccion como plataforma de desarrollo en mi actual proyecto.
Ademas, coincido plenamente con opiniones anteriores que indican que primero debemos conocer fuertemente el framework antes de poder expresar nuestra opinion a favor o en contra de tal o cual; y eso no se logra con solo algunos ejemplos.
En tal sentido hoy puedo decir que la documentacion de Symfony es muy variada y sobre todo en español y ese punto es fundamental para mi ya que manejo a medias el ingles; con el tiempo podre dar una mejor opinion sobre la funcionalidad y si me permitio cumplir mis objetivos.
Por favor, esto es un tormento. PHP o RR ? Todos buscamos resultados, y sobre todo en que apoyarnos para desarrollar el programa que necesitamos sin tener que andar buscando trucos o salvando fallas de los lenguages. Que buscamos como desarrolladores? A que le llaman Ustedes Framework? Para mi, la respuesta es facil, hay un lenguage (nativo o como sea, ej. PHP o Ruby) claro alguno es mejor que el otro por algo, pero nadie lo menciona. Luego hay Extensiones (modulos) del lenguage, y aqui empezamos, Cual necesitamos? cual nos es util? cuales tiene uno y el otro? nadie lo menciona. Luego usamos Librerias, unas mejores que otras, unas muy ligeras otras muy cargadas, unas muy dentro de su contexto otras demasiado diversificadas, (Pearl ?, no se ruby) no lo mencionan. Ahora sigue la gloria, encontrar un Framework que considere todo lo anterior y nos proporcione todas las facilidades para usar todo de modo que nos dediquemos al objetivo (nuestra aplicacion) y no a la investigacion o mejora de lenguages. Un framwork? A caray, un framework es un frame un marco que dificilmente puede ser tan generico que sirva para todos los casos, no confundir, un framework no es un IDE o en que consiste RR? un juego de Objetos prefabricados muy utiles para bases de datos para interactuar con interfaces web? que pasa si como en Net, no tiene algo que necesito? o primero tengo que aprender Ruby y luego Ruby o Rails? que implica aprender Ruby, no RR, solo ruby? porque si lo tiene todo, pues no es un framework, sera un lenguage hecho en Ruby. Finalmente, porque despues de tantos años nadie usaba Ruby hasta ahora que tiene Rieles, no jala bien sin rieles como los trenes? Porque si a frameworks vamos, pues si, ya hay y habra Ruby.Net, PHP.Net, Java.Net o sea, no sera Rails.Ruby o Ruby.Rails sino Ruby.Net, porque Net es un framework que se podra usar con muchos lenguages (ironico, ya sabemos las estupideces de MS con su DMR) y Ruby?
esto es muy interesante por fin tenemos una opcion para poder desarrollar aplicaciones web, ppero una vez analisado espero que no tenga tantos errores para poder programar..mas informacion por favor publicarla que estoy muy interezado en RR
Quizás algunos de Uds. ya lo habrán visto, pero para los que no lo sabían les digo que CodeGear (subsidiaria de Borland) ha lanzado el año pasado una herramienta para programar visualmente (la única el mercado que yo tenga conocimiento) con PHP. No sé si esto será un Framework, pero vale la pena probarla. Toda la potencia de Delphi trasladada a PHP.
Creo yo que con “Delphi For PHP”, como se llama dicha aplicación, se puede programar muy rápido y fácil. La conexión a la Base de datos se hace en un abrir y cerrar de ojos, como en Visual Studio.
Echen un vistazo aquí:
http://video.codegear.com/php/DBGridDelphiforPHP-ENGLISH/DBGridDelphiforPHP-ENGLISH.html
Me gustó tu analisis, comparto la visión, agnostico en la elección del código, utiliza lo que te sea más comodo.
si llevas mucho tiempo con php, un nivel avanzado, sería lógico si quieres usar algún modelo mvc mantenerte en el mismo lenguaje, así cuando lo “automagico” que ofrecen algunos frameworks te quede corto no tendrás problema en desarrollar o extender el mismo framework.
Utilizo (aun) PHP, Practicamente desde que ha salido a ruedolo vengo haciendo. PHP y muchos de los frameworks montados sobre el. De hecho estoy migrando una aplicación con CakePHP que previamente que yo mismo desarrolle en rails.
Sin embargo superada la imperceptible curva de aprendizaje es casi imposible no ver feo al código escrito en php; aunque este este perfectamente codificado. Flechas, tags, ausencia de syntactic sugar, falta de una consola para pruebas dinamicas, Deploys automatizados desde SVN, Migrations! Todo parece ‘aparatoso’ en PHP luego de tomarle el gusto a PHP.
Mitos: 1) Rails es lento: (casi imperceptible la diferencia y en algunos casos hasta obtuve mejores performances en rails (tambien imperceptibles). 2) Tienes que aprender Ruby: Se puede decir que lo aprendes a la par, Ruby se aprende de manera natural mientras juegas con Rails.
A todo esto, ¿Porque migro una aplicación hecha en rails a CakePHP si el primero aporta tantas ventajas? Pues una cuestión monetaria relacionada al cliente: Mayor oferta de Hosting para PHP y a menor precio. Ese si es un punto que consigue mantener en mi el cariño por PHP. Si algún dia existiese un mod_ruby que convenza, hay no se si podría ser tan fiel…
[…] Fuente de apoyo |Maestros del Web […]
[…] artículo sobre las diferencias en PHP y RubyOnRails y el echo de que sean comparados de forma injusta por no ser lo mismo. Y sobre la reciente moda de […]
Ruby on rails es para personas que probaron PHP y no pudieron con el…
Ruby on rails es para personas que aman el “codigo generado”… para simples mortales…
Solo es la moda… y como dice un amigo de PEAR, “overhyped”
Excelente articulo !!!
Estoy elaborando un proyecto de investigación para un programa de doctorado en Ingeniería Informática y tu articulo muestra un rigor técnico envidiable.
Felicitaciones.
Gracias por el artículo, algunas de las cosas de las que hablas también las he mencionado varias veces.
De hecho me gustaría recalcar que no pueden obligarnos a usar un sistema u otro, ni siquiera usando libros, hay gente que lo hace y no creo que eso sea una práctica correcta.
Saludos!
[…] Como dije en mi presentación de la Final del Concurso, nunca intentaré llevarme a mi terreno a nadie para ganar la batalla de quien usa más qué framework & lenguaje… Me gusta bastante lo que ha escrito y ha dejado muy claro Daniel López en su artículo “Ruby on Rails vs PHP: una falsa comparación”. […]
Ningún programador puede decir que un lenguaje es mejor que otro, sólo hay estilos, áreas y hasta técnicas de desarrollos diferentes. Tampoco podemos medir los limites de un lenguajes basados en nuestros conocimientos de programación, en nuestra forma de ver las cosas y abstraerlas. Me gusta ser libre y radical, por lo tanto me inclino por PHP, más si quiero hacer un proyecto y tengo poco tiempo, utilizo el php con el CakePHP que a la final tendré más o menos el mismo resultado que utilizar el Ruby sobre Rails que bien venido sea también….. Cual sea el mejor ????? no me importa de verdad… sólo sé que estoy agusto con el PHP y que no facilmente lo cambiaría… más creo que las defensas fervientes de las cosas es inversamente proporsional a la inseguridad de un algo oculto….. Señores los lenguajes de programación son herramientas… y como tales cada uno los aplica a su manera… no puede decir que un taladro sea mal martillo… dejemos los vicios mentales…. y recuerden que la libertad es signo de ser inteligentes….
Creo en tu artículo hay mas pasión que razón, no has profundizado en tu conocimiento sobre RoR y tal vez tienes miedo a ser un poco mas pragmático y tomar lo bueno de cada mundo. El crecimiento de RoR no es meramente fruto de la mercadotécnia, del mismo modo que no lo fue para PHP en su momento. El surgimiento de framworks rails-like, es una pequeñisima de lo sorprendente de este framework. Y ruby como lenguaje esta a años luz de php.
Saludos.
estoy comenzando en este medio y nose con cual lenguaje irme realmente con ruby e probado poco porque me atoro en cosas bobas y el conseguir ayuda es muy dificil y lo q e usado de php no me parec nada complicado como algunas personas que manejan ruby quieren hacer ver el codigo de php se entiende al igual que el de ruby yo creo q el problema viene de la documentacion y es hay donde php le lleva una muy buena ventaja a RoR ya que a la hora de querer realizar un proyecto realmente grande de seguro se nos presentaran algunos grandes problemas y ¿a quien vamos a recurrir sino existe una buena documentacion? o lo q existe es muy basico bueno es mi opinion la verdad me voy por php pero igual aprendere ruby de manera mas lenta…
slds.
articulo brutal y gracias a los comentarios puedo tener una ligera idea del camino a escoger. tengo algo mas de dos años en php y la publicidad de ruby me atrapo y quise conocer su framework (rails). como todos los principios son duros y la documentacion sobre ruby y rails es bastante escasa googleando, busque por la palabra magica “versus” y encontre esto.
finalmente he decidido invertir mi tiempo en aprender el framework de zend (php).
Si quieres dedicarte al desarrollo web no puedes ignorar PHP. Hay toneladas de información y millones de sitios web usando esta tecnología.
Una vez tengas controlado PHP, adelante con RoR, con ASP.NET, JSP o lo que más convenga.
Para cesar. Que no pudieron con PHP? Jajaj disculpa me rio, mi sobrino en la primaria solo falta que le enseñen PHP.
[…] “Ruby mola” es el lema de los evangelistas, en mi opinión Rails es lo que mola. Ruby on Rails vs PHP, también es una comparación sin sentido. […]
Gracias a todos por sus comentarios. Me han ayudado a saber que tecnologia elegir.
Tanta charla de mejorias en php o RoR… no hay duda que
C# ASP.NET / .Net Framework 3.5
se los lleva en años de desarrollo, en mejorias del lenguaje implemantacion del framework y IDE’s de desarrollo, documentacion….
Gracias al papa Bill y a sus miles y miles de “colaboradores”
M@crosoft rules
Best Ruby Framework -> Rails = Open Source
Best PHP Framework -> Zend = $$$
I use Linux and always prefer the the Best Open Source Option.
No importa que tecnología se utilice, la decisión es personal o obligada, podría ser PHP, RoR, .NET, JAVA, Perl, Python, hasta BASIC o LOGO. Si es un framework o un lenguaje, no es realmente importante. Al final lo que importa es el uso que le demos, la aplicación final que hagamos, que este bien hecha por dentro y por fuera, la calidad y el detalle que le dediquemos. Yo por elección uso PHP, JAVA y .NET, cada uno para proyectos distintos, conozco las bondades de cada cual, y he conseguido satisfacción en el resultado y el cliente también en la mayoría de los casos. Lo mejor que podemos hacer es tener nuestro propia manera de trabajar, nuestro propio framework (desde el punto de vista de metodologia y organizacion) en cuelquiera de las tecnologias que manejemos, un buen punto de partida es ser sencillos y minimalistas, e implementar algun modelo como MVC que de alguna manera te ayuda a orgainzar las cosas. En fin si hacemos una pagina que corre BASIC detras, excelente si funciona bien y hace lo que debe, y como desarrollador no te da dolores de cabeza a la hora de modificaciones y mejoras…
Rendersix tiene toda la razon, no importa la tecnologia, mientras se use bien y nos sirva, como dice: “puedes hacer una pagina que corra BASIC” si es lo que necesitas, solo esta el detalle de que lo debes hacer bien.
Actualmente estoy desarrollando aplicaciones bajo symfony…
Creo que es un framework muy completo, me gusto la herramienta de linea de comandos con la que cuenta.
Puedes generar automáticamente módulos que hagan operaciones básicas sobre la base de datos, después modificar el código generado y adaptarlo a las necesidades de tu aplicación.
Entre otras herramientas con las que cuenta… enrutamiento inteligente, entornos, pruebas unitarias, pruebas funcionales, formularios… etc
En lo personal creo que reúne muchos de los requisitos que debe tener un framework para limitar el trabajo del programador a la lógica de negocio.
Ademas es de los framework mas documentados que hay en la red, bueno al menos en español e ingles esta muy bien documentado.
Ciertamente, no se puede comparar un framework con un lenguaje. Lo justo es comparar frameworks con frameworks. Con todo, sigo prefiriendo Ruby on Rails a cualquier framework de PHP, puesto que me encanta la sintaxis de Ruby y me parece que junto al framework resulta ser la solución más elegante y que facilita mejor un desarrollo web ágil.
Coincido además en destacar que Ruby on Rails cuenta con una comunidad muy activa y es fácil encontrar aquello que necesitas.