Descargo de responsabilidad: soy un miembro central del proyecto.
Menciona un par de problemas en su pregunta: popularidad , adopción y características que no le gustan . Por lo tanto, haré todo lo posible para responder cada uno de estos puntos por separado …
Popularidad
En primer lugar, no estoy seguro de cómo llegaste a entender que CakePHP no es popular, o cómo midiste su popularidad. Lo que puedo decirte es que actualmente es el cuarto marco PHP más popular en GitHub (además de aparecer en los marcos de aplicaciones web), y también se encuentra entre los 5 proyectos de código abierto más populares que usan PHP, de unos 155.499 proyectos actualmente . Yo diría que es bastante “popular”.
- ¿Cuáles son todas las capacidades, soporte y características proporcionadas o cuáles deberían proporcionarse en un marco de automatización de prueba de aplicaciones web?
- Las pruebas de penetración reportaron cero vulnerabilidades. ¿Esto significa que mi aplicación web es segura?
- Buscando desarrolladores web talentosos con experiencia en redes sociales (principalmente Twitter y Quora). ¿Alguna sugerencia?
- ¿Qué arquitectura, en Python, debo usar para interactuar con una API web de terceros?
- En el desarrollo de software, ¿cuál es la diferencia entre las aplicaciones de escritorio y las aplicaciones web?
Solo el mes pasado, hemos tenido 120 solicitudes de extracción fusionadas en el repositorio de framework. Excluyendo fusiones, 38 autores han empujado 29 confirmaciones para dominar y 442 confirmaciones para todas las ramas. Parece bastante para un proyecto que no consideras “popular”.
Durante el último año, hemos tenido más de 31 millones de visitas a páginas de más de 8 millones de visitantes únicos a nuestros sitios web. Nuestros servidores son generosamente donados por Rackspace , quien creo que no admitiría ese tráfico si el marco no fuera “popular”.
En el aspecto social de las cosas, actualmente tenemos 12,484 seguidores en Twitter (CakePHP (@cakephp) | Twitter), 14,932 me gusta en Facebook (CakePHP), 19,013 miembros en nuestro grupo de Google (Grupos de Google) y 105 personas conectadas al # El canal IRC de cakephp en Freenode ahora mismo. El número de asistentes a CakeFest (la conferencia anual de CakePHP) también ha estado creciendo constantemente. Puedes escuchar la nota clave de eso en un podcast aquí: Episodio 3: resumen de CakeFest
¿Popularidad? Tal vez.
Adopción
Supongo que esto es una cuestión de percepción, y cómo piensas medirlo. Actualmente hay 21,197 preguntas etiquetadas con “cakephp” en Stack Overflow . Yo diría que muchos desarrolladores potenciales están “adoptando” y preguntando sobre el marco.
En las últimas dos semanas, hemos tenido 10.695 clones del repositorio de git y 63.299 visitas a páginas de unos 12.880 visitantes únicos a la página de GitHub para el marco (tenga en cuenta que hay muchos repositorios en la cuenta de la organización, solo estoy contando el repositorio del framework central). Esto es solo por un período de 2 semanas.
Para una vista de línea de tiempo más larga, aquí está el historial de confirmación completo (que incluye la rama 3.0 ), y muestra claramente la “adopción” del desarrollador en lo que respecta a la contribución (diría que alguien no contribuye a un proyecto si no hay ganancia para ellos) , es una inversión ).
Actualmente tenemos 286 contribuyentes al proyecto (incluido un equipo central de 25 miembros), que no incluye a algunos de los 355 contribuyentes a la documentación, que también es de código abierto. Todas estas personas han “adoptado” el proyecto hasta cierto punto.
El proyecto en sí es 100% impulsado por la comunidad . No hay inyección de capital o recaudación de fondos más allá de las donaciones al proyecto a través de la Cake Software Foundation y sus esfuerzos, como la capacitación de CakePHP, la certificación de CakePHP y los eventos. Por lo tanto, todo el crecimiento se origina en la comunidad de desarrolladores. Sin “adopción”, todo sería imposible.
Características desagradables
No tengo dudas de que si le preguntas a alguien que ha trabajado con las versiones 1.xo 2.x lo que no le gustó, el hecho de que los modelos devuelvan matrices probablemente estará en esa lista. A decir verdad, y como miembro central del marco, también estaba en mi lista. Sin embargo, vale la pena señalar que la versión 3.x ya no devuelve matrices, devuelve objetos. Al igual que muchas cosas de las que se queja la gente en CakePHP , ahora son cosas del pasado, que desafortunadamente viven gracias a la notoriedad o información errónea del pasado.
Otra gran queja es que es lenta. Bueno, para ser honesto, en los 1.x días que pudo haber sido cierto. Pero desde la serie 2.x , que vio un aumento significativo en el rendimiento, esas afirmaciones ya no pueden soportar su peso. Por ejemplo, aquí hay una aplicación creada en CakePHP , que ha estado en los sitios de mejor desempeño en el índice de New Relic :
Además, mira esta charla de Christian Winther , si realmente quieres saber cómo hacer una escala de aplicación (spoiler: “CakePHP tiene muy poco que ver con hacer una aplicación escalable en primer lugar” ):
Y, en cuanto a la calidad del código base, aquí tiene una calificación A + para la consistencia del código: Análisis de convenciones de codificación
Para dar un poco de historia, el marco se inspiró en las primeras versiones de Ruby on Rails , que aboga por la convención sobre la configuración, a veces causando una relación de amor / odio con los desarrolladores, porque es obstinada .
Esto significa que CakePHP tiene una forma de hacer las cosas, que si sigues el recorrido, obtendrás mucho trabajo por ti y más tiempo para construir tu aplicación. Estas convenciones no son un secreto, están claramente definidas para los desarrolladores.
Es importante recordar que CakePHP fue uno de los marcos PHP originales (como mencionó en su pregunta). Ha existido durante 10 años , que es un tiempo muy largo y “respetable” para que un proyecto construido por la comunidad sobreviva. Sin embargo, esto también significa que es muy maduro y probado exhaustivamente en escenarios y entornos de la vida real. Por razones por las cuales esto es probablemente algo positivo, recomendaría revisar la charla de José Lorenzo sobre el estado de “abuelo” del marco:
El marco comenzó en los 4 días de PHP, cuando faltaba mucha de la bondad orientada a objetos en el propio lenguaje PHP. En aquel entonces, el marco solucionó estas deficiencias al proporcionar mucha de la magia que se introdujo de forma nativa en PHP 5+ (por ejemplo, los comportamientos del modelo eran básicamente rasgos, muy por delante de su tiempo). Para obtener más información sobre la historia de CakePHP , consulte este artículo de Larry Masters , un fundador original del marco: CakeDC – CakePHP 3.0 está llegando
Sobre el tema de la longevidad, CakePHP siempre ha tenido un soporte muy fuerte para BC (compatibilidad con versiones anteriores). Esto podría ser el motivo de una introducción algo más lenta de nuevas funciones basadas en actualizaciones del lenguaje PHP, a favor de no hacer que los desarrolladores tengan que realizar reescrituras de sus bases de código. Aun así, cuando se lanzan nuevas versiones del marco (alrededor de 110+ hasta la fecha) se proporciona una guía de migración. Además, para actualizaciones mayores y menores, también hay un shell de actualización, así como herramientas para ayudar a los desarrolladores a pasar de una versión a otra.
Aunque esto (progresión lenta, menos interrupciones de BC) puede ser una de las razones por las que los desarrolladores más impacientes eligen cosas más nuevas y brillantes, también es la razón por la que otros se quedan con CakePHP , porque saben que no se quedarán atrás. Esta es probablemente mi única respuesta que vale la pena por la “adopción obstaculizada” a la que aludiste. Cualquier otra razón probablemente tenga algo que ver con las matrices .
Conclusión
Desafortunadamente, la comunidad PHP puede ser algo combativa cuando se trata de marcos. Esto no es necesariamente algo malo, la herramienta que usa y su elección siempre serán algo obstinadas, basadas en sus gustos y experiencias, y tendrán cierto nivel de sesgo en función de su estilo y enfoque como programador.
Probablemente sea una autopromoción desvergonzada, pero hablé sobre los beneficios de CakePHP , así como sobre los buenos enfoques para el desarrollo, puedes encontrar las diapositivas aquí: Enterprise Cake
Además, para aquellos que predican el mantra “no sigue patrones de diseño”, aquí hay otra charla como argumento contrario a eso:
Reflexión final: pruebe todo, diferentes marcos y bibliotecas. Tenga en cuenta a los falsos profetas y evite seguir la exageración, las mejores soluciones son las que brindan los resultados y pueden demostrar su valía y resistir el paso del tiempo.