Luego de un post totalmente al pedo , voy a intentar escribir uno que sirva para algo.
¿Por qué usar frameworks? Porque es mejor.
No fue muy explicativo, ¿no?
Hay todo un debate que quizás jamás se resuelva y del cual ya hay mucho escrito.
mi intención es dar un panorama basado en mi propia experiencia y, a continuación, ordenar un poco de data para que te informes, investigues y decidas. Como habrás podido ver, en este blog fomentamos la investigación y el autodidactismo. Fucking Googlea.
¿Que es un framework?
La definición es bastante abierta pero, básicamente, es una estructura definida sobre la cual se puede realizar determinados trabajos (software) de manera fácil y agilizada. Esto puede incluir librerías, programas, etc etc.
¿Usarlos o no?
Existen personas que tienen una mentalidad de "usar frameworks es para homosexuales, a mi me gusta hacer las cosas a mi manera y bien". Bueno, si sos tan macho, andá a vivirte al campo sin electricidad, electrodomésticos, agua potable, comida enlatada, etc etc etc. Todo eso es el "framework" de nuestra vida cotidiana. Si no te cabe usar frameworks y tu único fundamento es "es para gays", no hay mucho más para hablar...
Empecemos a "debatir" pero con fundamentos.
Algunos dicen que los frameworks son muy restrictivos en la manera de trabajar y que prefieren hacer las cosas con más libertades. Estoy de acuerdo con punto. De hecho, si releemos la definición, el framework nos ofrece una estructura predefinida de trabajo. Pero no entiendo porqué la gente que dice esto, muchísimas veces, termina haciendo algo que podían hacer perfectamente con un framework, sólo que más fácilmente.
Existen ciertas cosas que, para determinado tipo de aplicaciones, haremos una y otra vez, casi sin modificaciones sustanciales. A la hora de realizar una aplicación web de negocios (sitios o sistemas) seguramente no innovarás desde lo técnico. Seguramente no innovarás. Pero si lo hacés, será desde otro lado, como la idea del negocio, el producto que se ofrece o el diseño. ¿Por qué entonces volverte loco reinventando la rueda?
Como decíamos, los frameworks te obligan a laburar dentro de sus propios limites. La imposibilidad de trabajar con varios frameworks en un mismo proyecto es una clara restricción actual del desarrollo web (en realidad.. se puede.. pero es un quilombo -fíjense Twitter..-) y también una muestra más de lo obsoleto que está quedando este ámbito con su pensamiento de "trabajo por páginas" y la imposibilidad de mezclar lenguajes (en otro tipo de plataformas, es usual que algunos programadores laburen en C++, otros en Perl, etc y otros "peguen" todo en Python o símiles).
Estoy convencido que en poco tiempo veremos un replanteamiento total de la web en sí misma, pero mientras, los frameworks juegan con las reglas actuales. Entonces.. ¿usarlos o no?
Mucho material hay sobre esto ya dando vueltas y mucho debate para nutrirse y formar opinión propia. Pero no sólo basta con la lectura sino que la experiencia es importantísima. Basándome en la mía, te daré mi opinión, pero te aconsejo que experimentes y encuentres tus respuestas.
Tras desarrollar varios sitios y sistemas web (algunos bastante grandes), descubrí que el uso de frameworks se me hacía muy copado. Cobrar lo mismo y tardar la mitad o menos y no romperme la cabeza en boludeces es para agradecer. No obstante, a la hora de realizar pequeños trabajos, puede resultar más quilombo usar un framework que no usarlo.
En este tipo de casos, a veces podemos usar frameworks pequeños, para tan solo algunas cosas, como manejo de templates (onda Smarty, por quien guardo un especial cariño). Además, distintos frameworks se ajustan muchas veces a distintos proyectos.
A veces necesitamos utilizar determinados Widgets o Módulos (un editor WYSIWYG por ejemplo) y el framework que estamos usando nos hace volver locos para poder integrarlo. Algunos features pueden ser la gloria a veces y a veces no.
Personalmente, mi mayor experiencia en frameworks viene a través de cakePHP y debo decir que practicamente lo amo. Por supuesto que no es perfecto (al igual que todo), pero me ha dado enormes satisfacciones. Y cuando algo falta, ahí está la comunidad para aportar extensiones y módulos, además de los que uno mismo puede desarrollar.
Si decidís usar un framework en tu proyecto, el primer paso es elegir uno. ¿Cuál es el mejor? Ninguno. Mátense defendiendo camisetas y banderas, lo cierto es que todo es muy relativo.
Hace poco alguien me decía que alcanza con ver una comparativa de los features para decidir cual es mejor. Ingenuo...
No basta con eso.. mismos features son implementados muchas veces de maneras muy distitas, sin contar que son más los factores para decidir. Algunos frameworks se instalan muy facilmente, otros te rompen las bolas y te requieren instalarse por consola y añadirse al Apache. La documentación y las comunidades suman mucho igualmente a la hora de optar un camino.
¿Cómo elijo? Probá. No tengas miedo a intentar y equivocarte. Los maestros sólo pueden ser forjados por el camino del error.
Pero, para no irnos al otro extremo, está bueno tener un panorama, así que voy a dejar varios links con data para que vayas viendo. Probablemente haga alguna nota sobre cakePHP.
Y Googlea carajo.
Links de utilidad
Una comparativa
Otra Comparativa
Listado de Frameworks con discusiones de cada uno.
1 de noviembre de 2009
Suscribirse a:
Enviar comentarios (Atom)
1 comentario:
Según entiendo, la pregunta más relevante ante la situación de decidir entre usar uno o no es:
"¿La aplicación a desarrollar se puede describir en términos clásicos (y por ende abstraíbles => patrones) o no?"
Un Framework soluciona toda situación para la cual ya se sabe que X forma es la mejor solución, además de dar herramientas básicas por supuesto.
Con esto estoy queriendo decir que la mayoría de las aplicaciones van a tener partes clásicas (ergo, solucionables mediante un Framework), y cuanto más común la aplicación más Framework se va a aplicar como solución; pero también estoy queriendo decir que a mayor complejidad de aplicación, menor necesidad de estar atado a capas de código (claro que a mayor complejidad de aplicación, mayores recursos existirán para desarrollar todo lo necesario).
Como siempre en informática, la cuestión se clarifica cuando se denota ese punto de inflexión que ya todos conocemos.
Éxitos para el blog, le veo futuro!
(Sé que prometí empezar a postear D: Ya se me va a ocurrir algo! Probablemente linux-related)
Publicar un comentario