Hace poco leí una frase que me ha dado que pensar, si no usas un framework en tu startup tienes dos problemas tu negocio y tu plataforma, cuando lo que te tiene que preocupar realmente es el negocio no la tecnología.
También suelo escuchar por ahí la opinión de no necesito matar moscas a cañonazos, ya que los frameworks están preparados para casi todos los problemas que se suelen encontrar en la mayoría de aplicaciones web pero que puede haber casos que no se usen todas estas funcionalidades.
¿Qué opináis al respecto frameworks si o no?
¿Frameworks si o no para un MVP (mínimo producto viable)?
¿Frameworks si o no para una Startup?
¿Frameworks si o no para una Empresa?
Respecto al comentario de "matar moscas a cañonazos", totalmente de acuerdo... pero si un framework es un cañón para tu mosca, entonces te has equivocado de framework. Lo que necesitas es aprender del tema, no evitarlo.
Según se dice por ahí: si no estas usando un framework... estás construyendo un framework. Tengo que decirte que mi experiencia me ha llevado a desarrollar varios "frameworks propios" y a largo plazo esto siempre ha sido un error.
Concretamente por ejemplo en el caso de una empresa, sin duda es esencial utilizar tecnologías reusables: si entra nueva gente en la empresa nadie sabrá de antemano tu paranoia personal, y desde luego pocos querrán aprenderla (es más fácil conseguir desarrolladores con ganas de trabajar en frameworks polivalentes que desarrolladores interesados en estudiar casos particulares de dudosa aplicación en otros sitios).
En el caso de una Startup: dificilmente puedas conseguir un producto escalable, centrarte en el negocio y estar listo para incorporar desarrolladores a tus filas y crecer ante el mínimo atisbo de inversión... si tienes un desarrollo desde cero. El margen de maniobra teniendo que formar a los nuevos fichajes es mucho peor, y que los inversores confíen en un producto que difícilmente pueda probar estar asentado en bases solidas... chungo. Muy bien tienes que hacer las cosas para que este tipo de desarrollos no se convierta en un spaghetti, y resulta que cuando haces las cosas muy bien, terminas pareciéndote a alguno de los mil frameworks existentes.
Finalmente el único caso en el que podría tener alguna duda es respecto a un prototipo, pero en el momento en que asumimos que queremos que dicho prototipo pueda avanzar (no es una demo que tiraremos a la basura), entonces volvemos a caer en lo mismo: más nos vale hacer desde el inicio las cosas bien.
Por tanto, en mi humilde opinión solo no usaría un framework en casos de software muy muy pequeño (dos o tres días de desarrollo singular o menos), que se de antemano que no va a crecer ni voy a retomar.
Yo tengo que sufrir todos los días problemas, muchos derivados por la falta de una buena base: código spaghetti, desconocimiento total de patrones de diseño... y muchos otros. Al final todo esto deriva en falta de confianza sobre los componentes sobre los cuales trabajas, con la consecuente pérdida de tiempo. Y sí, aunque los frameworks tampoco son infalibles, si están muchísimo más probados.
Y otra cosa que mencionas y con la cual estoy también de acuerdo es "si entra nueva gente en la empresa nadie sabrá de antemano tu paranoia personal, y desde luego pocos querrán aprenderla". Es algo con lo que también tengo que lidiar. Sería mucho más feliz trabajando sobre algo que me permita luego seguir creciendo como profesional.
Es antiguo pero voy a responder, las empresas no utilizan frameworks para que si otra persona entra sea capaz de seguir el codigo porque al final es un poco igual es como decir que el que entre sepa javascript al final acabas haciendo cosas personales aunque sea utilizando un framework, los frameworks los utilizan las empresas no para que si el dia de mañana entra alguien nuevo sino para que seas completamente prescindible y seas desechable, les importa un pito la calidad del software quieren trabajar poco y ganar mucho, el problema viene cuando dicho framework no te permite personalizarlo o cuando empiezas a personalizar el framework, porque si no te vas a una pagina y te vas a la competencia y soy practicamente iguales, es decir se pierde el caracter diferenciador y si quieres que sea diferente con tal o pascual framework no te queda otra que personalizarlo y entonces es cuando pierde el sentido el framework, no se si me he explicado, voy a decirlo de otro modo, para cosas de andar por casa y desarrollo rapido viene bien, ahora si lo mezclas con desarrollo propio mejor, es decir lo mismo me da poner
o como se suele usar
var f = document.forms['patata'];
f.patata.value="patata;
que esta ultima forma puede ser hasta mas corto de escribir cuando tocas varios campos por jquery frente a javascript tradicional
El problema ya no es tanto usar un framework, el problema es mas que la gente se acostumbra tanto a los frameworks que se olvidan del javascript como tal o ni si quiera saben usarlo, yo prefiero a un experto en javascript que un experto en jquery, el primero sabra solventar cualquier problema y podra utilizar en muy poco tiempo cualquier framework, mientras que el segundo estará atado a jquery y le costara muchísimo entender otro framework
a y crearse un framework propio no es ningún error, yo me hice un framework para tareas repetitivas en su dia en la que el desarrollar un formulario muy complejo con muchos permisos y acciones que eran muy parecidas con su workflow se tardaba un mes en desarrollar, con ese framework no tenias que tocar casi codigo y en 8 horas desarrollabas el formulario porque no programabas como tal metias alguna linea de codigo muy pocas pero todo era mediante documentos descriptivos a nivel de campo accion, vista, y se construia a traves de DOM y ajax, tarde en desarrollarlo mes y medio pero ahorre otro mes y medio de desarrollo. a veces construirse un framework propio tiene sus ventajas.
No añado ni quito absolutamente nada al comentario de Ignacio. Ni una coma.
Hoy en día tener algo general, testado por comunidades, usando patrones de diseño "standard", con múltiples herramientas que te ayudan al desarrollo y sobre todo la documentación, no sólo en la web oficial sino en foros es lo mejor que hay.
Simplemente por el hecho de que si contratas a alguien nuevo y tiene que ver tu framework creado desde 0, no es ni parecido a usar un framework que esté a la orden del día.
Mis respuestas son: Si, si y si.
Lo mejor de todo es cuando te encuentras a personas que dicen que usar frameworks o librerías está mal.
Por ejemplo: usar jQuery si hace lo mismo que Javascript a pelo. Que si cargan mucho la web, etc. Cuando hoy en día se usan procesadores y líneas capaces de cargar una web en cuestión de milisegundos. Y ya no sólo la carga, sino también la fluidez de desarrollo y las facilidades y herramientas que te ponen en la mesa a la hora de trabajar.
Usaría un framework en todos los casos posibles. Quizás alguno necesite algo más y pueda extender dicho framework (Instagram con Django personalizado) pero nunca empezar desde 0.
Es sobre todo una cuestión de evaluación. Algunos desarrolladores Android, por ejemplo, prefieren copiar cierta parte del código de una librería, antes que importarla al proyecto.
En cuanto a frameworks webs, hay algunos que te permiten hacer cosas con un lenguaje (ejemplo Laravel con PHP) que de forma nativa no lo puedes hacer. Así que mi respuesta es (teniendo en cuenta mi escasa experiencia), framework sí, pero con cabeza.
En Android se copian trozos de una librería porque hay un límite en el dex de 64k métodos. Yo ya he alcanzado ese límite en algún proyecto (sólo Analytics tiene 7000, como para programar encima en Scala). Cuando cabe, es mucho más cómodo y útil importar la librería con 1 línea en gradle o maven.
Hecha la puntualización, la pregunta del op es como si le preguntas a un tio de la obra si usar hormigoneras si o no. Si vas a hacer un chapú en el baño entiendo que mezcles el yeso tu, si vas a hacer una casa, la pregunta carece de sentido.
Es antiguo pero respondo, no es lo mismo, la hormigonera siempre funciona igual no tienes actualizaciones ejecutas la misma, un framework debe ofrecer retrocompatibilidad, y eso jquery no lo hace por ejemplo el día que realices un proyecto basándote en una versión de jquery y lo subas a la intranet y te fallen el resto de aplicaciones y te des cuenta que o bien tiras todas las aplicaciones o bien tiras tu aplicación me lo cuentas, javascript siempre sera javascript y solo dependes del navegador un framework es crear una dependencia artificial hacia una versión de un framework que ni siquiera ellos respetan métodos entre versiones, y los hacen desaparecer en versiones posteriores sin tan siquiera aparecer en en changelog, o te agarra a un único framework sin actualizar o te arriesgas a una catástrofe, la gran diferencia es que un document.forms[0].nombrecampo.value sabes que siempre existirá un $("nombrecampo").value(""); puede que mañana no exista y mañana lo llamen .values("",separador); por ejemplo, con lo que como uses intensivamente el anterior y cambies de versión de framework vas a tener que decidir si actualizar todas las aplicaciones o mantener la versión antigua del framework y tocar la nueva aplicación.
Estáis seguros que es mejor utilizar frameworks?
Otro ejemplo un código javascript puro de hace 15 años funcionara en casi cualquier navegador, un código jquery estarás atado a utilizar esa versión de framework o a adaptar ese código para la nueva versión del framework,, ¿seguro que es mejor?, ahorra tiempo si, pero hay que saber elegir para que, si es para una única aplicación si lo utilizaría, pero si vas a montar una intranet, con muchísimas aplicaciones no lo utilizaría jamas
Yo diría depende del proyecto y del negocio. Si estas desarrollando algo muy especifico y realmente innovador (vas a tener dinero y personal) quizá puedas olvidarte de usar frameworks como tal, así y todo ¿vas a reinventar la rueda? Seguramente acabes apoyándote en librerías bien conocidas y probadas para hacer tus menesteres más básicos.
Yo usaría un buen framework, bien probado y con buen soporte y comunidad. Te obliga a usar buenas prácticas y ahorrará muchooos problemas y dolores de cabeza, sobre todo si trabajas en equipo, ya que todos saben donde buscar algo y está bien documentado. Al final lo que importa es centrarte en tu negocio y no en como crear una clase adaptador para MySQL... en fin reinventar la rueda. Además, si puedes contribuir a estos frameworks ayudarás a que sean cada día mejores.
Bastante de acuerdo con "si no usas un framework en tu startup tienes dos problemas tu negocio y tu plataforma". Muy acertado. Yo caí en ese error. Matas moscas a cañonazos? si, pero no reviven ;)
si, desarrollas más rápido, mejor calidad y te dejara pivotar mejor
si, menos gastos en recursos
si, una startup es una empresa, no entiendo la diferencia.
lee mi respuesta anterior crear una dependencia artificial no es bueno y menos con la cantidad de rotación en los puestos de desarrollo, en la que con suerte en la misma plantilla de 20 quedara 1 dentro de 2 años y se pierde mucha documentación por el camino he visto muchas empresas con cero documentación es una bomba de tiempo el usar frameworks y encima no tener documentación sobre arquitectura del sistema.
Me enfrenté en una ocasión a un desarrollo mio nuevo que aproveché para aprender a utilizar Symfony 1. No era un desarrollo complejo (si lo era la base de datos), por lo que al final calculo que debí tardar unas 4 veces más de la cuenta que si lo hubiera hecho "a pelo". Con el paso del tiempo deshice todo lo hecho con Symfony 1 excepto Doctrine.
Aún así, si utilizaría un framework para muchos desarrollos, CASI OBLIGATORIO si es para un tercero.
Cosas que se me ocurren a tener en cuenta de los framework:
- Un framework permite abstraer bastante bien las inconsistencias de un lenguaje como por ejemplo PHP, diferentes versiones del lenguaje, carencias, etc.
- Un framework permite patrones como MVC, configuración consistente, etc., en definitiva un código mucho más grande pero más ordenado. Aunque con framework y todo siempre puedes soltar una "perla" manual en mitad del código que luengo nunca más recordarás.
- Un framework pesado añade un overhead en la ejecución, cargando decenas de ficheros, cientos de clases, inicializaciones condicionales, precondiciones. Hay que afinar luego el servidor con todo esto, en sitios con mucha carga.
Si a todas las preguntas,
Un framework te permite trabajar mas rapido, y evitar repetir el mismo código en diferentes proyectos, las conexiones a la base de datos etc...
Hoy en dia es imposible trabajar sin un framework en un proyecto decente.
No entiendo esa obsesión de hoy en día con los frameworks. Lo veo como una moda: si no los usas, no estás a la última. Me parece que nos distraen e impiden que conozcamos bien los lenguajes básicos (aquellos de los que depende el framework). Estos lenguajes básicos siguen desarrollándose, adquiriendo nuevas características e incorporando beneficios de los frameworks. A mí personalmente los frameworks me irritan, principalmente porque su escritura suele parecerme una aberración. Aunque admito que pueden jugar un papel importante para marcar el camino en el desarrollo de los lenguajes básicos.
- Que controles algún framework no impide que profundices en el lenguaje, al contrario, es conveniente y acelera el desarrollo.
- Tener toda la documentación centralizada acelera el desarrollo.
- Tener una comunidad que cumple las mismas convenciones y comparte código acelera el desarrollo.
- Tener un juego de herramientas que te abstraigan de las tareas repetitiva (procesado y parseo de ficheros, plantillas, estructura) acelera el desarrollo.
Si alguien te ha hecho ya parte de tu trabajo, ¿para que repetir? No es una moda, es que se necesita que los proyectos salga a tiempo, con un mínimo de calidad y que puedan ser mantenidos en su futuro.
Tu puedes desarrollar tu proyecto desde 0 en tus lenguajes favoritos, pero luego te quedará la titánica tarea de documentar cada librería, cada fichero y cada funcionalidad para que otra persona lo pueda continuar.
yo por mi parte estoy a favor de los frameworks, por ejemplo si realmente sabes trabajar con wordpress, las opciones que tienes para desarrollar un proyectos son muchísimas. Evidentemente si el proyecto es demasiado extenso o demanda muchos recursos sera mejor realizarlo a medida.
También suelo escuchar por ahí la opinión de no necesito matar moscas a cañonazos, ya que los frameworks están preparados para casi todos los problemas que se suelen encontrar en la mayoría de aplicaciones web pero que puede haber casos que no se usen todas estas funcionalidades.
¿Qué opináis al respecto frameworks si o no?
¿Frameworks si o no para un MVP (mínimo producto viable)?
¿Frameworks si o no para una Startup?
¿Frameworks si o no para una Empresa?
25/03/2014 14:31
Respecto al comentario de "matar moscas a cañonazos", totalmente de acuerdo... pero si un framework es un cañón para tu mosca, entonces te has equivocado de framework. Lo que necesitas es aprender del tema, no evitarlo.
Según se dice por ahí: si no estas usando un framework... estás construyendo un framework. Tengo que decirte que mi experiencia me ha llevado a desarrollar varios "frameworks propios" y a largo plazo esto siempre ha sido un error.
Concretamente por ejemplo en el caso de una empresa, sin duda es esencial utilizar tecnologías reusables: si entra nueva gente en la empresa nadie sabrá de antemano tu paranoia personal, y desde luego pocos querrán aprenderla (es más fácil conseguir desarrolladores con ganas de trabajar en frameworks polivalentes que desarrolladores interesados en estudiar casos particulares de dudosa aplicación en otros sitios).
En el caso de una Startup: dificilmente puedas conseguir un producto escalable, centrarte en el negocio y estar listo para incorporar desarrolladores a tus filas y crecer ante el mínimo atisbo de inversión... si tienes un desarrollo desde cero. El margen de maniobra teniendo que formar a los nuevos fichajes es mucho peor, y que los inversores confíen en un producto que difícilmente pueda probar estar asentado en bases solidas... chungo. Muy bien tienes que hacer las cosas para que este tipo de desarrollos no se convierta en un spaghetti, y resulta que cuando haces las cosas muy bien, terminas pareciéndote a alguno de los mil frameworks existentes.
Finalmente el único caso en el que podría tener alguna duda es respecto a un prototipo, pero en el momento en que asumimos que queremos que dicho prototipo pueda avanzar (no es una demo que tiraremos a la basura), entonces volvemos a caer en lo mismo: más nos vale hacer desde el inicio las cosas bien.
Por tanto, en mi humilde opinión solo no usaría un framework en casos de software muy muy pequeño (dos o tres días de desarrollo singular o menos), que se de antemano que no va a crecer ni voy a retomar.
25/03/2014 15:48
Yo tengo que sufrir todos los días problemas, muchos derivados por la falta de una buena base: código spaghetti, desconocimiento total de patrones de diseño... y muchos otros. Al final todo esto deriva en falta de confianza sobre los componentes sobre los cuales trabajas, con la consecuente pérdida de tiempo. Y sí, aunque los frameworks tampoco son infalibles, si están muchísimo más probados.
Y otra cosa que mencionas y con la cual estoy también de acuerdo es "si entra nueva gente en la empresa nadie sabrá de antemano tu paranoia personal, y desde luego pocos querrán aprenderla". Es algo con lo que también tengo que lidiar. Sería mucho más feliz trabajando sobre algo que me permita luego seguir creciendo como profesional.
11/01/2017 01:07
$('#patata').value("patata");=""
document.getElementById("patata").value="patata"
o como se suele usar
var f = document.forms['patata'];
f.patata.value="patata;
que esta ultima forma puede ser hasta mas corto de escribir cuando tocas varios campos por jquery frente a javascript tradicional
El problema ya no es tanto usar un framework, el problema es mas que la gente se acostumbra tanto a los frameworks que se olvidan del javascript como tal o ni si quiera saben usarlo, yo prefiero a un experto en javascript que un experto en jquery, el primero sabra solventar cualquier problema y podra utilizar en muy poco tiempo cualquier framework, mientras que el segundo estará atado a jquery y le costara muchísimo entender otro framework
a y crearse un framework propio no es ningún error, yo me hice un framework para tareas repetitivas en su dia en la que el desarrollar un formulario muy complejo con muchos permisos y acciones que eran muy parecidas con su workflow se tardaba un mes en desarrollar, con ese framework no tenias que tocar casi codigo y en 8 horas desarrollabas el formulario porque no programabas como tal metias alguna linea de codigo muy pocas pero todo era mediante documentos descriptivos a nivel de campo accion, vista, y se construia a traves de DOM y ajax, tarde en desarrollarlo mes y medio pero ahorre otro mes y medio de desarrollo. a veces construirse un framework propio tiene sus ventajas.
25/03/2014 15:17
Hoy en día tener algo general, testado por comunidades, usando patrones de diseño "standard", con múltiples herramientas que te ayudan al desarrollo y sobre todo la documentación, no sólo en la web oficial sino en foros es lo mejor que hay.
Simplemente por el hecho de que si contratas a alguien nuevo y tiene que ver tu framework creado desde 0, no es ni parecido a usar un framework que esté a la orden del día.
Mis respuestas son: Si, si y si.
Lo mejor de todo es cuando te encuentras a personas que dicen que usar frameworks o librerías está mal.
Por ejemplo: usar jQuery si hace lo mismo que Javascript a pelo. Que si cargan mucho la web, etc. Cuando hoy en día se usan procesadores y líneas capaces de cargar una web en cuestión de milisegundos. Y ya no sólo la carga, sino también la fluidez de desarrollo y las facilidades y herramientas que te ponen en la mesa a la hora de trabajar.
Usaría un framework en todos los casos posibles. Quizás alguno necesite algo más y pueda extender dicho framework (Instagram con Django personalizado) pero nunca empezar desde 0.
25/03/2014 14:00
En cuanto a frameworks webs, hay algunos que te permiten hacer cosas con un lenguaje (ejemplo Laravel con PHP) que de forma nativa no lo puedes hacer. Así que mi respuesta es (teniendo en cuenta mi escasa experiencia), framework sí, pero con cabeza.
08/04/2014 12:22
Hecha la puntualización, la pregunta del op es como si le preguntas a un tio de la obra si usar hormigoneras si o no. Si vas a hacer un chapú en el baño entiendo que mezcles el yeso tu, si vas a hacer una casa, la pregunta carece de sentido.
Saludos
13/11/2017 12:47
Estáis seguros que es mejor utilizar frameworks?
Otro ejemplo un código javascript puro de hace 15 años funcionara en casi cualquier navegador, un código jquery estarás atado a utilizar esa versión de framework o a adaptar ese código para la nueva versión del framework,, ¿seguro que es mejor?, ahorra tiempo si, pero hay que saber elegir para que, si es para una única aplicación si lo utilizaría, pero si vas a montar una intranet, con muchísimas aplicaciones no lo utilizaría jamas
25/03/2014 14:04
Yo usaría un buen framework, bien probado y con buen soporte y comunidad. Te obliga a usar buenas prácticas y ahorrará muchooos problemas y dolores de cabeza, sobre todo si trabajas en equipo, ya que todos saben donde buscar algo y está bien documentado. Al final lo que importa es centrarte en tu negocio y no en como crear una clase adaptador para MySQL... en fin reinventar la rueda. Además, si puedes contribuir a estos frameworks ayudarás a que sean cada día mejores.
25/03/2014 15:35
si, desarrollas más rápido, mejor calidad y te dejara pivotar mejor
si, menos gastos en recursos
si, una startup es una empresa, no entiendo la diferencia.
13/11/2017 12:50
08/04/2014 13:27
Aún así, si utilizaría un framework para muchos desarrollos, CASI OBLIGATORIO si es para un tercero.
Cosas que se me ocurren a tener en cuenta de los framework:
- Un framework permite abstraer bastante bien las inconsistencias de un lenguaje como por ejemplo PHP, diferentes versiones del lenguaje, carencias, etc.
- Un framework permite patrones como MVC, configuración consistente, etc., en definitiva un código mucho más grande pero más ordenado. Aunque con framework y todo siempre puedes soltar una "perla" manual en mitad del código que luengo nunca más recordarás.
- Un framework pesado añade un overhead en la ejecución, cargando decenas de ficheros, cientos de clases, inicializaciones condicionales, precondiciones. Hay que afinar luego el servidor con todo esto, en sitios con mucha carga.
11/04/2014 10:52
Un framework te permite trabajar mas rapido, y evitar repetir el mismo código en diferentes proyectos, las conexiones a la base de datos etc...
Hoy en dia es imposible trabajar sin un framework en un proyecto decente.
Saludos.
18/01/2017 05:14
19/01/2017 10:17
- Tener toda la documentación centralizada acelera el desarrollo.
- Tener una comunidad que cumple las mismas convenciones y comparte código acelera el desarrollo.
- Tener un juego de herramientas que te abstraigan de las tareas repetitiva (procesado y parseo de ficheros, plantillas, estructura) acelera el desarrollo.
Si alguien te ha hecho ya parte de tu trabajo, ¿para que repetir? No es una moda, es que se necesita que los proyectos salga a tiempo, con un mínimo de calidad y que puedan ser mantenidos en su futuro.
Tu puedes desarrollar tu proyecto desde 0 en tus lenguajes favoritos, pero luego te quedará la titánica tarea de documentar cada librería, cada fichero y cada funcionalidad para que otra persona lo pueda continuar.
01/12/2017 14:29
yo por mi parte estoy a favor de los frameworks, por ejemplo si realmente sabes trabajar con wordpress, las opciones que tienes para desarrollar un proyectos son muchísimas. Evidentemente si el proyecto es demasiado extenso o demanda muchos recursos sera mejor realizarlo a medida.