Me encanta Yii Framework, porque me permite bajar hasta el piso mas bajo, y llegar al piso mas alto, con extrema facilidad, pero hay cosas que me gustaría fueran resueltas, entre ellas los componentes de negocio reutilizables (mi intento actual para ayudar es la extensión eyui y el modulo cruge para rbac).
Todos los frameworks tienen pros y contras. incluso éste. Mas que todo las desventajas son relativas a lo que quieres hacer (no estamos hablando de "bugs" eso es otra cosa).
El usuario de Yii promedio viene de una linea de desarrollo muy baja con conceptos de OOP muy bajos, o a veces nulos y no se dan cuenta de los contras del framework..o..no le quieren herir el ego a nadie...o...no han necesitado ninguna de las cosa que pongo arriba....o simplemente responden con insultos o prepotencia.
En buena onda, quien piense que estoy equivocado discútalo sin prepotencia y sin insultos, aqui pongo lo que pienso en base a mi experiencia son los contras de Yii Framework:
Algunas cosas de Yii Framework que a veces me incomodan:
- Con yii framework se pueden hacer paginas web, pero no es la herramienta más óptima para hacer paginas web, para eso es mejor usar un CMF (content management framework), como lo es joomla, drupal o wordpress, el cual supera por mucho el alcance de yii framework, el cual esta orientado a aplicaciones web, mas no tanto a páginas web tradicionales.
- El uso de jQuery y Ajax aún depende mucho del conocimiento que tengas de ambos:, si tu conocimiento es bajo puedes pasar dias tratando de resolver un problema. El framework como tal no provee un eslabón jquery ajax "maduro, reutilizable y orientado a objetos" cómo lo provee en contraparte herramientas como GWT.
- Los componentes de negocio son muy básicos, hay que construir mucho para lograr un componente de negocio maduro, entre esos componentes que tratan de resolver el problema existe la extension EYui (la hice yo) la cual pretende acumular componentes de negocio reutilizables.
- El manejo de datos aun es muy crudo. Si bien algunos recordarán Clipper, FoxPro, incluso el terrible visualBasic, proveían entornos para manejar datos de forma muy madura, haciendo que solo uses los componentes ya listos, en cambio aqui en el framework hay que construir casi todo a menos que la extension exista, y si no existe te toca hacerlo de cero. El componente de datos estrella de yii framework es el CGridView, pero por mucho no le llega a componentes de datos de por ejemplo Clipper. La CDataProvider ayuda muchísimo, la ayuda vendrá en aquellos componente reutilizables basados en ajax-jquery que provean soluciones en componentes de interfaz de usuario reutilizables.
- Comparado con el manejo de "flujos de datos" de Java (el IO), Yii esta en pañales. es mas, no tiene un conjunto de clases que maneje el IO como lo hace java, el cual por contraparte trae una linea muy madura de clases reutilizables bien modeladas para el manejo de flujos de datos (iostrings, iofiles, io-de-cualquier-cosa).
- Yii no aprovecha la compresion de Javascript para emitir contenidos compactos en javascript compreso multi-browser como lo hace GWT (google web toolkit).
Quiza en la Yii 2.0 se esten tratando o curando estos casos, pero lo que bien existe en Yii 1.0 es muy bueno.