"¿La empresa cuenta con framework propio?"
Esta pregunta me la he hecho mentalmente todas las veces que alguien me respondió "¿qué framework usan para desarrollar en tú empresa?" y no hay mejor resumen de lo que pienso en la siguiente respuesta del post "Cinco preguntas para tu próxima entrevista de trabajo si te gusta el software":
"Si por cualquier razón la respuesta es "tenemos un framework propio", mal pinta la cosa. De hecho, hasta me atrevería a ser radical y decir que es hora de huir de ahí como del demonio. A 2008, el mundo del software no necesita otro framework casero realizado por mentes privilegiadas "porque Spring o JSF no se ajustan a los requisitos de la empresa".
El tener un framework propio es indicador, en el 99% de los casos, de estar reinventando la rueda. De aceptar esto, tocará trabajar con tecnologías probablemente obsoletas, tocará corregir bugs que no estarían ahí de utilizar algo probado, o tocará "mejorar" el framework con cosas que ya están implementadas en otras librerías. Un framework propio, puede ser resultado de una mala elección, o quizás de una elección forzada debido a que el producto se creó hace muchos años.
La respuesta ideal dependerá de lo que quiere hacer el desarrollador o del lenguaje, pero a cualquiera que se mantenga un poco al día le será fácil detectar nombres clave. En Java, Spring, Hibernate, JSF, WebWork, Seam, o incluso EJBs serían respuestas válidas. Struts, mmmmm, ok, todavía hay mucho Struts por ahí y siempre será mejor que un framework web propio. En serio, cualquier cosa que no implique corregir los errores del creador de un framework casero, será más que suficiente."
Sin palabras, 100% de acuerdo.
Si desarrollas PHP, no me vuelvas a decir "no, en la empresa usamos un framework propio" ;-)))
PD: fuera de broma, antes también era "purista" y quería hacer "todo yo", pero luego te das cuenta que estás perdiendo tiempo en poder realmente resolver problemas importantes y desarrollar o terminar de desarrollar sistemas, dejar funcionando verdaderos proyectos. Los usuarios, tus usuarios, no verán realmente qué framework usas, pero sí, que tu aplicación funcione, por lo cual, apóyate en herramientas hechas y probadas.













19 comentarios:
Hola yo uso un framework, se llama PHP5 y es realmente completo!
Estimado Eugenio:
¿framework "PHP5?
¿¿¿¿que????
PHP5 es un lenguaje no un framework, quedras decir Zend Framwork o synfony.
Hola!, yo empeze a usar CodeIgniter hace poco y la verdad me sorprendio muchisimo :D es muy versatil y me ahorra miles de horas programando, es muy facil de usar y tiene una documentacion muy buena www.codeigniter.com
pd: excelente blog...comparto muchas ideas =)
Estimada Elvira:
Creo que solo lo dice para molestarnos ;-)
Estimado 5n4k3:
Si no usas Zend, y menos, si no compartes todas las ideas, no eres bienvenido... que más, acá somos todos talibanes ;-)
Yo actualmente trabajo con codeigniter modificando su core para especializarlo como mvc modular, está bastante bien. En cuanto a empresas que poseen framework propio, pienso que depende de las tecnologías o lenguajes utilizados. Bajo PHP he trabajado en alguna empresa que utilizaba framework propio y puedo decir que la escalabilidad y modificación de la aplicación resultante puede dar alguna vuelta a Zend...
Estimado Jorge:
Si, las generalizaciones nunca son justas, pero son muy contados casos donde es conveniente hacer un framework propio cuando tienes otros proyectos con un equipo dedicado exclusivamente a ello y tú perfectamente lo puedes aprovechar y completar a gusto.
¿Para qué está la POO? Si todos son clases, puedes heredar un componente que te queda "chico" y luego lo completas a gusto, si cambia o mejora el mismo, tu sistema no se vería afectado.
Zend es especial para ello.
Lo unico que no me cierra es que GatorV tenga un "framwork propio", si no fuera por ese detalle tomaria tus afirmaciones como propias sin dale mas vueltas a la cosa xD. Digo GatorV porque es uno de los que leo pero seguramente son muchos mas.
Estimado Lisandro:
Es lo mismo lo que tú comentas, si te embarcaras en un proyecto y usaras el framework propio (o de GatorV) pasarías a tener el mismo riesgo que comenta el articulo que cito.
¿Es necesario reinventar la rueda, cuando puedes partir de una rueda hecha y realizar modificaciones?
PD: Siempre me acuerdo de una presentación de "buenas prácticas" de Zend que dicen algo por el estilo: "no reinventes estándares; no eres tan especial como para necesitar uno propio" ;-)
La verdad que hubo un par de ocasiones en las cuales me dijeron: "usamos nuestro propio framework". Personalmente pensaba, pero.... si los frames como Cake o Symfony cubren muchas necesidades , porque este tipo me mira a los ojos y afirma con gran impetu "usamos nuestro propio framework"?? o a lo mejor queria aparentar que su empresa es importante ya que tienen un fw propio y detras de esa mente habian un par de ojitos suplicando "quiero que trabajes para mi para ver si de una vez por todas terminamos mi framework" ......
No estoy en absoluto de acuerdo con el articulo.
Crear un framwork no es reinventar la rueda, hay diferentes ruedas para diferentes caminos, siguiendo con tu analogia.
Hay muchas filosofias de frameworks, tantas como programadores y uno puede estar mas comodo con una existente o crear la suya propia.
Muchos frameworks pecan tambien de convertirse mas en CMSs que en frameworks. Y tratan de abarcar todo con un simple click de ratón, yo personalmente odio las megaAPIs de formularios, el scaffolding y otras propiedades de otros, así que tengo mi propio framework, que crece conmigo y no con una comunidad incontrolable.
Enrique, tu blog es realmente interesante y creo que puede aprenderse mucho, pero hay que alejarse un poco, para ver los problema con cierta perspectiva... para todos los intervinientes.
Alguien que empiece a programar hoy en PHP sería un tanto absurdo que creará un framework, pero si empezó a utilizarlo a finales de los 90, crearon su primer framework en el 2000, cuando lo más que había eran unas cuantas librerías y el uso de templates era algo como de marcianos, ha pasado por unas cuantas releases, le permite hacer aplicaciones B2C y portales, rápidamente, con una determinada filosofía, pues... probablemente hará bien en seguir utilizándolo.
¿Habrá mejores soluciones en el mercado para realizar determinadas tareas? Sin ningún genero de dudas ¿Habrá alguna que les permita ser igual de productivos y hacer un código más modular? Tal vez no.
Eso nos lleva al punto donde estamos muchos ¿debemos cambiar a un nuevo framework y mantener aplicaciones con dos entornos completamente distintos? ¿cuál es el momento para dar ese paso?
El otro día conocí a un personaje que empezó a programar antes de que yo nací, 1963, no tiene ni idea de POO, pero he conocido a pocas personas más lúcidas y con más cosas originales e interesantes que contar sobre este negocio en su conjunto y la forma en que las distintas generaciones han resuelto los problemas.
Para muchos que un ordenador, con la potencia que tiene, tarde en arrancar varios minutos, que las aplicaciones pesen lo que pesan, que los interfaces sean incomprensibles -aplícalo a cualquier otra cosa relacionada que se te ocurra- no es precisamente un buen ejemplo de esta maravillosa ingeniería que promueven ciertas corrientes.
My 2 cents.
Jose
Mmm no estoy tan de acuerdo. Hay veces que los proyectos son chicos. No digo inventar un framework nuevo, pero utilizar singelton, mvc y algún otro patrón con un diagrama de clases que usamos normalmente en este tipo de proyectos no esta nada mal. Yo tengo clases que las repito en varios, helpers creados hace años, y no necesito en un 100% de mis proyectos CI , Zend , Sym, u otro.
Yo tengo armado un mvc básico con algunos helpers que tratan imágenes, url y demás. Lo llamo con una clase de control que se encarga de todo, estilo factory.
Se puede considerar un framework propio porque lo uso de capa entre mi teclado y php5 =)y me brinda muchas satisfacciones.
Un gran abrazo, aprecio mucho este foro y a todos sus participantes.
Ale.
Para los que dicen que es una buena opción:
Suele ser muuuuuy costoso en tiempo y recursos desarrollar e implantar un framework propio, por lo que o bien la empresa tiene invierte muchísima pasta en IT (ciertos bancos, etc...) o va a estar hecho de pena y mejor que salgas corriendo ya mismo (yo he entrado en un sitio así y de verdad que la experiencia ha sido nefasta, menos mal que ya se acaba).
Si no tiene mucha pasta lo que te va a pasar con probabilidad es: tecnología obsoleta, ideas felices, pobre documentación, mismo framework metido a presión para todas las aplicaciones (con lo que si no estás de acuerdo con el framework te aguantas) y difícil de justificar en un currículum.
En definitiva ¡¡salid por patas!!
Estimaod cocorossello:
Muy buen aporte, nada mejor que la "voz de la experiencia" ;-)
No estoy de acuerdo, hay que ver el contexto en que se decide desarrollar un nuevo framework. Si se va a desarrollar un producto para su distribucion, lo mejor es tener la menor cantidad de dependencias posibles y desarrollar un framework en este caso me parece viable.
Una pregunta donde puedo descargar el FrameWork de GatorV?
Gracias
A los que comentaron de mi Framework. Yo no lo consideró como tal. Es un Toolbox, una capa arriba de Zend Framework, que ocupó mucho para hacer tareas repetitivas que realizaba con ZF. Otra parte es para usar algunos componentes que no brinda ZF.
A los que preguntaron donde está mi Toolbox: http://code.google.com/geckotoolbox
Aquí no se habla de escribir un framework propio (lo cual no deja de ser una pérdida de tiempo, pero se aprende mucho y todo el mundo lo debería intentar y desechar).
De lo que se habla aquí es de utilizar un framework que ha hecho una persona (a lo sumo 2) tan buenamente como ha podido. Evidentemente, al que lo ha hecho le irá más o menos bien, pero hacerlo utilizar a otros programadores ya puede ser nefastos, ya que acostumbran a ser cutres y muy limitados (además de que están hechos al uso de la persona que lo escribió).
Publicar un comentario en la entrada