To framework or not to framework…

A la hora de desarrollar una Web, es cierto que usar frameworks es una ayuda muy interesante. Anieto, ya escribió hace unos meses sobre los más usados.
Quizá el problema puede estar en que unos te dan unas facilidades que no te dan otros, y por supuesto, mezclarlos es una muy mala idea. Además, la actual, si se puede llamar “guerra de frameworks”, provoca que cada vez tengan más funcionalidades, y por lo tanto más peso. De forma que si lo quieres solo para una cosa concreta, o te buscas un snippet de código concreto, o rebajas manualmente la librería.

En coder battery, dan una lista de razones muy adecuada sobre porqué usar frameworks, que intentaré resumir.

  • Te permite programar más rápidamente.
  • Te ahorra trabajo
  • Da consistencia a tu código.
  • Te ayuda a escribir mejor código y más ordenado.
  • Te permite usar lo último en herramientas técnicas
  • Te da soporte gratuito
  • Te permite tener un ejército de programadores para ti.
  • Te permite separar presentación de negocio.
  • Puedes tener la documentación lista.
  • Es más multiplataforma
  • Mejor acceso a la capa de datos del que podrías hacer tu.
  • Mejora la seguridad de tu aplicación

Bien, estas afirmaciones, lo cierto es que tienen muchas caras. Empezando porque hay que sopesar el tiempo de aprendizaje que requiere una librería, o la elección de la más apropiada (usaré prototype o jQuery?), por no hablar de efectos espectaculares que nos dejan asombrados, pero que requieren cantidades inmensas de código.

Aumenta el peso de nuestra aplicación, y, cuidado, como tengamos errores o incompatibilidades con el resto de nuestro código, prepárense para analizar el código línea a línea a ver dónde carajo está el fallo (gracias! firebug!).

Y depende que frameworks, tendrás mejor o peor soporte, las herramientas serán mejores o peores, o tienen una documentación maso menos útil.

“In the other hand” , tenemos este artículo en inglés de Andy Smith: Why frameworks suck, muy interesante de leer, aunque un poco denso.

Me quedo con una frase:

If building an application with libraries is playing football with your buddies, building an application on a large framework is playing football in the NFL. You may get money, attention and busty cheerleaders, but what was a game about throwing a ball and doing your damndest to make your best friend eat mud becomes a game about offsides, holding and television breaks; it’s just not fun anymore.

Si desarrollar una aplicación con librerías es como jugar al futbol (americano) con tus colegas, desarrollar una aplicaión con un gran framework es como jugar en la NFL (liga de futbol americano). Puedes conseguir dinero, atención y animadoras “pechugonas”, pero lo que fué un juego de tirar una pelota y hacer todo lo posible para que tu mejor amigo caiga sobre el barro, se ha convertido en algo lateral, de participación y televisión; ya no es divertido… (traducción libre y muy mejorable).
Y la conclusión, al final de su artículo:

Frameworks suck because they are an avatar of enterprise, frameworks suck because they take away your freedom, frameworks suck because they build walls between coders, frameworks suck because they make you fit your project to the toolset rather than the toolset to the project, and frameworks suck because they take the fun out of programming, long live the library.

Los frameworks apestan porque son la representación empresarial, porque te quitan libertad, porque levantan muros entre programadores, porque hacen que tengas que cambiar tu proyecto a la herramienta en lugar de la herramienta al proyecto, y porque le quitan la diversión a la programación, larga vida a las librerías!.

Sin duda, la clave está en el término medio. Ni son la panacea para cualquier proyecto, ni debemos dejarlos de lado. En parte estoy de acuerdo en que en ocasiones adaptamos nuestro proyecto a una herramienta, cuando debería ser al revés, de modo que ahi entra la inteligencia y experiencia del analista, que sopesa los riesgos y las ventajas de usar un framework y los acepta y asume.

Vosotros, ¿que framework utilizáis? ¿Qué dificultades os habéis encontrado a la hora de implementar alguno?

Artículos relacionados

  • No related posts

  1. Usar o no un Framework para nuestras aplicaciones - aNieto2K dijo...

    [...] Sergio Gago ha publicado un artículo bastante claro en el que nos podemos hacer una idea de las ventajas y desventajas que podemos encontrarnos a la hora de desarrollar nuestras aplicaciones con frameworks.  [...]

  2. Darky dijo...

    Antes que nada es un interesante articulo y puedo confirmar algo.. El usar librerias depende de la aplicacion que se requiere.. en mi caso es un sistema algo leve, use un framework por una funcionalidad que necesitaba, intente depurar pero habia muchos js dependientes por lo que en resumen:

    _ Use gran parte del framework para obtener una funcionalidad.
    _ Al final uso mis librerias para validar formularios y algunos efectos creadas por mi mismo.

    Creo que es cosa de valorar que conviene mas.. saludos..

  3. Sergio dijo...

    Hola Darky!

    Estoy de acuerdo contigo. Cuando llevas unas cuantas aplicaciones a la espalda, te acabas haciendo pequeñas librerías y snippets personales que reutilizas donde lo necesitas (es el alma de la POO, ¿no?)

    Pero el problema viene cuando, o bien quieres reducir el tamaño de ese framework, o tienes que depurarlo, porque, por ejemplo, tenga alguna incompatibilidad con tus librerías.

    Como bien dices… valoremos lo que nos conviene más en cada momento, y añado: sin cerrarnos en banda al “no a los frameworks”, o “son la panacea del desarrollo!”.

  4. Ariel dijo...

    Podrias haber enlazado el artículo original…

    http://www.coderbattery.com/top-13-reasons-to-use-a-web-framework-and-never-look-back

  5. Sergio dijo...

    Si te fijas, he enlazado a la versión en castellano que es exactamente igual.

  6. Webstandard-Team dijo...

    jQuery, muy facìl implementar

  7. Sergio dijo...

    Estoy de acuerdo, jQuery es muy fácil, pero precisamente fue el que me dio problemas con funcionalidades que tenía con Rico (claro, dos frameworks ya sí que es una locura).

    Por cierto, añadiré tu blog a mi sindicador, y asi practicaré un poco de alemán ;)

  8. Andrés dijo...

    A mi tampoco me gustan los frameworks y espero que solo sea una moda como tantas otras.

    PD. Ariel deja de criticar.-

  9. PaK0s dijo...

    pues yo digo que todo es bueno hay que saber cuando y donde utilizarlo, en lo personal prefiero evitarlo ya que al usar un framework no conoces realmente tu codigo, sabes lo que le dices al framework que hacer pero no sabes como lo hiso, y el problema es cuando tienes que hacer algo especifico que el framework no tiene conteplado, enseguida las ventajas segun el articulo y lo que opino de cada uno coparando con un BUEN PROGRAMADOR (subrayado BUEN PROGRAMADOR) codificado directamente en el leguaje

    * Te permite programar más rápidamente.
    un buen programador debe de ver la forma de ser mas rápido eso no hay duda, para eso se diseño la OOP crear nuestras librería código que tenemos que reciclar para hacernos la vida mas fácil en los próximos proyectos. aqui estoy de acuerdo que no es lo mismo que tu solo crees tus librerias a las librerias que puedes desarrollar un equipo de trabajo de un framework, pero siempre es mejor que uno mismo haga sus cosas.

    * Te ahorra trabajo
    la respuesta es OOP, un buen diseño de librerias, funciones y o clases debe de ahorarte todo el trabajo que requieras ahorar

    * Da consistencia a tu código.
    Si eres BUEN PROGRAMADOR, BUEN DISEÑADOR de desarrollo) deberias de crear código entendible y con consistencia, claro que aquí estar los PSEUDO PROGRAMADORES que las cosas que UN BUEN PROGRAMADOR realiza se le hace complicado esto depende mucho del nivel del programador

    * Te ayuda a escribir mejor código y más ordenado.
    depende 100% de ser un buen programador, no de las herramientas

    * Te permite usar lo último en herramientas técnicas
    Solo hay que ponerse a estudiar (lo que es legal y la amejor opcion) las nuevas cosas. (esto ya es cuestion de flojera del desarrollador) claro que se vale por la razon de urgencia si es requerido aqui si justifico el uso

    * Te da soporte gratuito
    No siempre es así, y si es así cuantos programadores pueden tener problemas y cuanto tardarán en solucionarte tu problema, es mejor se idependiente.

    * Te permite tener un ejército de programadores para ti.
    Depedencia total de este ejército si el ejercito es derotado tu tambien lo serás.

    * Te permite separar presentación de negocio.
    Depende de las técnicas del programador.

    * Puedes tener la documentación lista.
    Depende de las “buenas costumbres” del programador

    * Es más multiplataforma
    ?????.. depende del lenguaje, y depende del nivel del programdor, y de su nivel en el lenguaje.

    * Mejor acceso a la capa de datos del que podrías hacer tu.
    Depende 100% del que se trate de un BUEN o MAL Programador.

    * Mejora la seguridad de tu aplicación
    ???.. dejar que otros cuiden tu seguridad es muy mala idea, creo que si te ofrecen esto estas dejando este factor muy importante en otras manos que no dependen de ti.

    bueno en conclusion son deceptico del uso de los frameworks, prefiero el desarrollo tradicional, el real problema es que hay una industria, y pues esta exige la fabricacion en maza, lo que obliga al uso de los Famework a desarrolladores inexpertos que carecen del tiempo o incluso ganas de profundizar en lo que necesitan desarrollar, ademas que segun el framework, puede que pierdas mas tiempo en aprender uno y otro framework que entrar y aprender las herramientas que real mente necesitas, creo que un framework no es mas que trapa, desarrollar algo que no se desarrollar, vender algo que no se hacer en realidad. pero esta el factor empresarial e industrial, que exige como comentaba software industrial que nunca sera mejor que el tradicional (copare esta relación con cualquier producto) y pues no esta de mas ver como desarrollar otro es practica mete tener la mete avierta, ya que algu dia puede que te toque mantenimiento a un sistema realizado en un framework por eso no esta de mas utilizarlo, y pues su uso opino realmente que no es recomendable mas que por motivos industriales.

    PaKO Diaz
    Desarrollador PHP, MySQL, JavaScript, CSS, JEE, JSE,

  10. Mario dijo...

    Pues bueno pako escuche decir mucho en tu articulo la palabra “depende del buen programador” pero como saver si sos un buen programador??? creo que el uso de los Frameworks depende mucho de la situacion en la que estes si vos necesitas una aplicacion Firme y Concisa considero que devis de usar una Framework al fin y alcavo terminaras utilisando tus librerias para poder concluirla y estoi de acuerdo LARGA VIDA A LAS LIBRERIAS ya que todos(creo) tienen sus porpias librerias para validacion etc… pero tambien digo que venga lo nuevo y vengan los Frameworks ya que no siempre seras como decis vos “un buen programador”

  11. Angels dijo...

    Interesante el comentario de Pakos :)

  12. Los frameworks agilizan el desarrollo | Plus Global dijo...

    [...] To framework or not to framework [...]

  13. Cristian Sanchez dijo...

    Buenas,
    he leido los comentarios a favor y encontra de los FW.
    Mi postura es ser flexible y como dijo alguien por allá arriba, tomar lo que necesitemos cuando lo necesitemos.
    En este momento estoy iniciando mi proyecto de título y elegí el tema de los Framework en el desarrollo web con PHP y AJAX.
    Es muy interesante, sin duda, el concepto de Framework.
    Les cuento como va mi proyecto donde compararé el uso o no uso de Framework y el trabajo con FW para PHP y AJAX.

    Saludos
    Desde Chile
    Cristian

Discútemelo

consultoria web