"¿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.

22 comentarios:

Eugenio dijo...

Hola yo uso un framework, se llama PHP5 y es realmente completo!

enrique_place dijo...

Estimado Eugenio:

¿framework "PHP5?

Elvira dijo...

¿¿¿¿que????
PHP5 es un lenguaje no un framework, quedras decir Zend Framwork o synfony.

5n4K3 dijo...

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 =)

enrique_place dijo...

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 ;-)

jorge dijo...

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...

enrique_place dijo...

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.

lisandro dijo...

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.

enrique_place dijo...

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" ;-)

symsony dijo...

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" ......

Erik dijo...

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.

eltonto dijo...

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

Ale Vasta dijo...

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.

cocorossello dijo...

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!!

enrique_place dijo...

Estimaod cocorossello:

Muy buen aporte, nada mejor que la "voz de la experiencia" ;-)

Fran dijo...

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.

Carlos dijo...

Una pregunta donde puedo descargar el FrameWork de GatorV?

Gracias

Christopher dijo...

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

Vicente dijo...

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ó).

Guillerf10 dijo...

Aquí le presentó un caso donde se tuvo que desarrollar (se encuentran estado beta) un framework con características (según los autores) excepcionales, con el cual están desarrollando un CMS de código abierto llamado xPDO y el CMS se llama Modx Revolution.
Mi opinión no cuenta porque estoy aprendiendo, y por eso me interesa mucho la opinión de ustedes y creo que les puede aportar algo a este debate.
Aquí les dejo el link de las características de xPDO y navegando por la misma página encontrará características de Modx Revolution sólo disponible en inglés.
http://svn.modxcms.com/docs/display/XPDO10/Home

PaK0s dijo...

mmm… enrique.. Apenas que encontré tu blog, y dije :o ya encontré a quien admirar, tengo yo creo unos 6 años que la persona que admiraba o que decía quiero ser o saber lo de que sabe el, lo deje abajo, y trabajo tras trabajo, escuela tras escuela he querido encontrar una persona la cual admirar y decir ahora tengo que dejar abajo a este :D…. y me sales con esto….!
Creo que los errores que mencionas pueden llegar a pasar, pero creo que decir es malo crearte tu framework es una aberración y eso casi te cuesta mi admiración aunque q todavía puedo aprender algo de tu blog, pero si eso fue decepcionante.
Creo que ya sabes mi postura, no creo que sea malo o bueno crear un framework desde 0, pero si creo que es una muy buena forma de aplicar la OOP, digo sabemos que en OOP vamos a tener a los diseñadores, a los que programan las clases más chidas y los programadorcitos obreros que solo utilizaran las clases, bueno yo en lo personal no pienso ser un programadorcito obrero que utilice las clases y Apis y framework y siempre este abstracto, esto en lo personal me aleja mucho de porque amo programar, al utilizar Apis/frameworks me abstraigo del RETO, dominar resolver algo, lo cual me deja con un muy desabrido sabor de programación, a este tipo de programación le suelo llamar Programación Industrial, donde lo importante es el tiempo, el vender rápido. Y es en el único motivo real que diría a por eso utilizar un framework hecho. O si eres un programadorcito farol(modismo en México que refiere a una persona que cree que sabe mucho pero al final no sabe nada) pues bien = te sienta bien un framework ya que uno no tendrás la capacidad de crear uno propio porque te lloverán los errores que mencionas, dos haces muchas cosas sin saber como realimente se hacen.
Yo en lo personal prefiero crear mi framework propio porque así tengo más libertad que atándome a uno que ya este hecho, tengo la libertad de crearlo como me plazca de hacerlo tan pequeño o tan robusto como lo necesite, obvio siguiendo los patrones que quieres seguir, buscando la calidad que quieres lograr, si es tiempo invertido, pero no perdido, porque este framework lo vas a reutilizar una y cuantas veces lo necesites, y sobre todo a mi como desarrollador me queda una gran satisfacción y sobre todo conociemiento al enfrentarte a los problemas que te da el crear un frameworks, problemas que tal vez si eres un frameworksero desde el inicio nunca sabrás que están allí y mucho menos como resolverlos.
Creo que todo aquel que se sienta capaz de hacer un framework propio le recomiendo que se ambiente el clavado que empiece a crear, tal vez cree el mejor framework, el decir prefiero usar que a la mejor el mío me sale con errores, la verdad se me hace tremendamente MEDIOCRE y por eso me decepcionaste en este post, si tu quieres hacer tu rueda.. pues hasla, si no te gustan la que utlizan los demás ps hasla, y en cuanto a los frameworks de empresa, creo que hasta yo me sentiría incomodo utilizando un framewok que no conozco, pero allí esta tu capacidad de adaptate a y de entender, aquí si va mucho la calidad y el diseño con el que hicieron el framework, pero pues igual el reto seria, reparar o remplazar el framework por el tuyo, ya que si eres un programador obrero pues bueno sigue utilizando frameworks, creo que para mi lo mas importante es dominar el leguaje, por eso me callo a toda madres el primer comentario “yo utilizo PHP5”, si es un leguaje, pero si dominas el leguaje haces lo que te de la gana, no lo que el framework te pueda proveer en interfaces o APIS

Fco Diaz
www.devtics.com.mx

carlosalvet dijo...

¿Programador Obrero? '¿programación industrial? valla jejeje y el trabajo en equipo ¿donde queda? hay muchas cosas en las que estoy deacuerdo muchas en las que no, como todos los que escriben aqui creo yo.

Hay cosas como, si utilizas un framework propio porque lo conoces a la perfección y quieres crear una aplicación tan grande como lo seria un ERP ¿que salida tomarias?

¿capacitar a todos para que usen tu framework creando programadores obreros o tu programacion industria al uso de tu framework?
¿lo harias tu solo?
¿que clase de estandares usarias para al el trabajo en equipo?
¿en el trabajo en equipo importa la velcidad y como el equipo se sienta con el trabajo final y que todos se desarrolen profesionalmente generandose la satisfacción de que son buenos en lo que hacen?
¿cual es la finalidad de programar, crecer como persona al infinito o crear aplicaciones en grupo robustas grandes imposibles de hacer solo que utilicen todos?
¿aplicaciones muy bien hechas por ti nadamas y que usen todos o nadamas tu?

Solo por inquietud me gustaria saber las respuestas sin ofender a nadie sin decir que alguien esta bien o mal, yo creo que todo en esta vida tiene sus ventajas y sus desventajas, de la moda lo que te acomoda y usa lo que mas te convenga que puede ser lo ¡menos te imaginas!, solo el saber, ¿porque creen eso?

Entradas populares