What is Lead Generation?

A lead is the contact details of a client who is keen on particular services or products. Leads can be made for purposes, for example, list building, e-bulletin list, or for deals leads. The…

Smartphone

独家优惠奖金 100% 高达 1 BTC + 180 免费旋转




CakePHP vs. Laravel

¿Es necesariamente uno mejor que el otro?

Tengo que admitir que el título no hace justicia al enorme trabajo y “seso” invertido en el desarrollo estas tecnologías. Es tan injusto como insinuar rivalidades en el ámbito de la música con un tinte futbolístico: Megadeth o Metallica, los dos no te pueden gustar. Si bien las rivalidades del fútbol tienen su encanto, en este caso vamos a dejarlas bien bien de lado, y observemos cómo se desempeñan estos dos grandes con la misma camiseta de PHP desde su única tribuna.

Así como Ulises era el único capaz de tensar su arco, CakePHP también brilla con una cualidad única: un poderoso scaffolding para ABMs (aplicaciones CRUD) perfectamente integrado. La frase característica de CakePHP es “conventions over configurations” (convenciones antes que configuraciones). Esta frase describe a la perfección su trabajo y cultura. Todo lo construido en CakePHP está pensado en función de seguir ciertas normas… atenete a ellas y las cosas van a funcionar “solas”. Hay mucha magia que resuelve los problemas más duros de las formas más simples. Pero como toda magia tiene su precio: para conservar el poder de estos hechizos de alto nivel (guiño, guiño) debemos… ¿adivinan …? ¡Sí! ¡Seguir las convenciones! Si pasamos por alto este detalle, nuestra experiencia con CakePHP nos va a dictar que su magia existe tanto como los unicornios.

Otro lugar donde este framework se hace muy fuerte es en su ORM. Además de su fabuloso Query Builder, tenemos la recompensa de una excelente performance. Es otro punto que para poder disfrutar debemos haber seguido las convenciones.

En cuanto a frontend también tiene mucho músculo, sobre todo (y particularmente) al empezar a desarrollar nuestra aplicación. Cuando ejecutamos el scaffolding inicial sobre nuestra base de datos, ya tenemos armadas nuestras Vistas en función de nuestros Controladores y Modelos con la posibilidad de crear, leer, modificar y borrar registros allí mismo. ¿Era esperable si su fuerte es crear ABMs, no? Pero, lo más impresionante es cómo resuelve tablas intermedias, ¡crea en las vistas del ABM las relaciones de Uno a Uno, Uno a Muchos, Muchos a Uno y Muchos a Muchos con sus funcionalidades respectivas! Otro condimento extra muy interesante es que soporta llaves primarias compuestas. Es increíble que ya tengamos todo eso resuelto y aún no hemos escrito ni una sola línea de código.

Quizás la parte menos atractiva sea la cantidad de convenciones y prácticas cuasi obligatorias que proponen, pero para aprovecharlo al máximo no hay alternativa, esa es la idea con la que construyeron este framework. Si no vamos a seguir las convenciones no sólo nos estamos perdiendo sus virtudes, sino que también estamos perdiendo el tiempo.

Pero… ¿Telémaco hubiera podido terminar de tensar el arco de Ulises si éste no lo hubiera interrumpido? A eso voy: Laravel es el Telémaco de CakePHP cuando hablamos de tensar el poderoso arco generador de aplicaciones ABM. Laravel también cuenta con muy buenos paquetes para realizar esta tarea, aunque no sea de forma nativa. Sin embargo, son necesarias muchas configuraciones adicionales y hay “poca magia” ocurriendo detrás de escena para facilitar la tarea. Ahora bien, Laravel tiene su propio kit de herramientas divinas formidables.

Para empezar, el diseño del framework es muy minimalista y nos ofrece una enorme libertad. Si lo poco sexy de CakePHP son sus convenciones, es justamente una de las partes más calientes de Laravel. Cuando buscamos que la complejidad esté en el desarrollo del sistema, y no en la capacidad para implementar características, Laravel brilla.

Nos permite distribuir, utilizar y desarrollar los Modelos como a nosotros nos parezca, sin perjudicar el funcionamiento del framework. No tenemos que preocuparnos demasiado por convenciones y podemos configurarlo como creamos conveniente hasta el más mínimo detalle.

¡Pero no se trata únicamente de libertad! Nos ofrece todas las herramientas que podemos pedir y bastante más. Una de las cosas que hacen muy cómodo trabajar con Laravel es su Template Engine: Blade. Podemos mantener muy limpias y bien distribuidas las vistas gracias a sus decorators, que además favorecen su reutilización.

Es un framework que permite un altísimo grado de personalización y adaptación a necesidades muy específicas.

Pero entonces, si ambos son excelentes y la diferencia se encuentra en particularidades específicas, ¿por qué Laravel es claramente más popular? Debido a que tecnológicamente están parejos, me parece improcedente decir que es más popular porque “es mejor” o porque tiene “esto y aquello”. Esto me llevó a leer un poco de historia.

CakePHP anuncia su lanzamiento en 2006, mientras que Laravel es relativamente nuevo, siendo su lanzamiento en Junio 2011. A diferencia de CakePHP, Laravel desde el minuto cero le abrió las puertas al mundo para hacer aportes al proyecto. Antes del lanzamiento de Laravel 1.0, ya había logrado fidelizar muchísima gente, al punto tal que ese mismo año en Agosto lanzarían la versión 2.0, y ya en Febrero 2012 estaría disponible la versión 3.0, que al día de hoy se encuentra en GitHub. La recepción del framework fue extremadamente positiva, se podría decir que fue el efecto de “amor a primera vista” pero sin las clásicas desilusiones posteriores. Se continuaron agregando funcionalidades y, lo más importante, jamás defraudó a su comunidad. Por otro lado, CakePHP 1.x tuvo una muy mala recepción en 2006 y años posteriores, en ese entonces podríamos decir que competía contra CodeIgniter, quien otrora habría sido la más linda del baile. Hay quien dice que la confianza no se gana, se pierde. En definitiva, aunque CakePHP 2.x haya sido muy bueno, y CakePHP 3.x aún mejor, podríamos decir que en sus inicios dejó una mancha en su nombre lo suficientemente relevante como para cargar aún al día de hoy con los errores del pasado.

Es importante entender el concepto: cuando hablamos de popularidad implica que hay una comunidad que te acepta, todo lo demás es irrelevante. La RAE define popularidad como: “Aceptación y aplauso que alguien tiene en el pueblo.”.

Es fundamental entender la pregunta: ¿por qué Laravel es más popular? Ser bueno es importante, seguro, pero ser bueno es simplemente un factor más en la balanza y no es suficiente por sí mismo para ganarse la aceptación de la gente.

Personalmente creo que CakePHP está excelentemente preparado para hacer el ABM o CMS más complejo. Si están dispuestos a soñar con sus convenciones, CakePHP les va a devolver el esfuerzo y tiempo con magia y productividad. Por otro lado, si bien Laravel no tiene esta característica tan desarrollada, su adaptabilidad y libertad sobre sus configuraciones, te van a permitir desarrollar el sistema para que funcione tal y como se supone que tiene que hacerlo, sin encontrarte con ninguna resistencia por parte del framework.

Add a comment

Related posts:

Does Changing Jobs Every Few Years Kill Your Career?

Around ten years ago, when somebody kept switching between careers after short stints, they would be considered disloyal, unstable and lacking purpose and vision for career growth. In this sense…

How to solve the Zebra puzzle in Clojure

The Zebra puzzle is a common type of logical puzzles. When I was young, I solved tons of them, but I didn’t know how they were called. I read about the exact term first in this article…

Finding the way back to myself

Story by Anonymous for The Better Because Project