Disculpad que recupere un hilo con ya casi 2 meses de antigüedad, pero el debate me parece superinteresante, esencialmente porque es uno que he tenido conmigo mismo desde que me dedico al desarrollo en general, pero especialmente en lo referido a la web.
Siempre he sido de los que quieren diseñar sus propios programas desde cero. Me cuesta mucho reutilizar código de los demás. No por capacidad, sino por mentalidad y metodología. Evidentemente, cuando se trata de proyectos mastodónticos en los que tienes que centrar tu atención en su arquitectura y no en detalles menores, no queda otra que recurrir a frameworks o librerías de terceros. Pero en mi caso, siempre usaría ese código ajeno bajo el concepto de caja negra: Yo te doy estos datos, tú me das los resultados, y punto. Cuando toca enredar en el código de otros para adaptarlo a tus necesidades entonces ya se pierde la practicidad.
En el caso de los frameworks de JS, yo los descubrí un poco tarde, ya que ya tenía creadas una serie de funciones que "reciclaba". El caso es que, pese a la posibilidad de derivar en un framework abierto, seguí a mi ritmo, yo sólo. Seguí así hasta hace unos meses, en los que entré en "crisis" y me replanteé todos mis esquemas. Comencé a pensar que era muchísimo trabajo para una sóla persona, que me iba a dar algo, que por mucho esfuerzo que hiciera, un framework participado por toda una comunidad siempre estaría más probado y sería más efectivo. Propuse mentalizarme a esa manera de trabajar y comencé a estudiar posibilidades...
Y, para mi sorpresa, llegué a la conclusión de que recurrir a un framework de propósito general, como uno sea muy maniático y quiera ajustarlo al máximo, es una locura tan grande como ponerse uno sólo a realizar algo semejante (Mi caso). Usando un framework como los de JS siempre hay aspectos que retocar o maneras de hacer las cosas que, pese a ser muy simples de implementar, precisamente por esa razón, son complicadas de personalizar al máximo.
En resumidas cuentas, bajo mi criterio considero que usar un framework tiene más sentido cuando éste está especializado en una serie de tareas concretas y no afecta a tu metodología o cómo organizas el resto de tus necesidades. O lo que es lo mismo, que en caso de tener que usar código de otros, prefiero tener que integrar una serie de librerías a mi proyecto, aunque me suponga renunciar a mucha de la automatización que los frameworks brindan.
Yo a día de hoy, sigo desarrollando mi propio conjunto de librerías. Reconozco que es un trabajo tedioso, y frustrante y satisfactorio a la vez. Una locura hacer funcionar todo exactamente igual en la mayoría de navegadores web. Pero si veo que algo me supera, siempre puedo procurar integrar lo de otros (reconociendo su autoría evidentemente).
Por cierto, que hablo de frameworks por lo que se entiende como tales en el caso de JS o PHP. Si hablamos de entornos de trabajo y control de proyectos como NetBeans o Eclipse en el caso de Java, ya es un concepto muy diferente (y que yo pienso que se entremezclan erróneamente) . En esos casos sí que es una burrada ponerse desde cero.