Complicándonos la vida
Hace poco leía en un weblog (siento no recordar dónde) que el problema que tenemos los desarrolladores web es que nuestro trabajo es muy aburrido. El 90% de los casos lo único que se hace es leer datos de una bbdd y mostrarlos por pantalla. Aquel artículo argumentaba que lo aburrido del trabajo hacía que complicásemos innecesariamente la labor, con modelos MVC, desacoplamiento de lógica y presentación y otros artefactos (J2EE, plantillas PHP, etc) en realidad innecesarios.
Yo no estoy de acuerdo con esa argumentación. Si bien es cierto que mucho desarrollo web es simple, creo que cada vez se desarrollan aplicaciones más complejas (banca electrónica, simulación de pólizas de seguros, por ejemplo) que precisan de estos patrones de software. Es más, páginas que empiezan siendo simples volcados de datos, se van enriqueciendo para servir mejor a los usuarios y terminan convirtiéndose en complejas aplicaciones imposibles de manejar y mantener sin la ayuda de esta infraestructura.
Otro ejemplo: me gano la vida desarrollando componentes en C++ que no hacen sino de intermediarios entre otros componentes y, simplificando, se podría decir que lo "único" a lo que me dedico es a implementar unas idls's, montar unos threads, sincronizarlos y mangonear los datos de un lado a otro.
Alguna vez he acometido la tarea de escribir una aplicación web doméstica (o sea, obligadamente modesta) y, maldita sea, si uno no termina recurriendo a los patrones que mencionas (sobre todo si te aferras al PHP) termina siempre acabando en un batiburrillo infumable.
Programar puede ser desde lo más divertido y fascinante hasta lo más aburrido. Y cuendo sabes hacer una cosa pierde su encanto. Es triste, pero cierto, cuando sabemos hacer bien algo es cuando nos aburre. Y en ese momento se suelen probar cosas nuevas, en la medida en la que se puede/te dejan: lenguajes, metodologías, modos de hacer código...
Y yo creo que es bueno, es la manera de mantener la actividad cerebral... sino, como he dicho antes, programar puede covertirse en una de las tareas más aburridas que existen...
Quizá (como siempre) lo suyo es el punto medio. Poner la infraestructura necesaria que "sabemos" que vamos a necesitar, pero no más. (Y de paso, como dice mig21, nos divertimos un poco :-) )
Un saludo.
Es la problemática de decidir si implementar la solución que necesitamos *ahora* o bien acometer la solución genérica que resolverá las necesidades *de después*.
Es un tema fascinante, por cierto. Sobre todo cuando entran las estrecheces en los tiempos de entraga (que estas charlas de ingeniería de sofá a veces no tienen en cuenta)
El otro día encontré, precisamente en un weblog de Artima, una entrada muy relacionada con esto...
Se trata de esta entrada. Explica un principio que llama YAGNI (You Aren't Going to Need It) Lo trata desde la prespectiva del eXtreme Programming, es decir, programar para lo que necesitamos ahora...
Aunque, claro, ser listo y dejar las puertas abiertas a las necesidades de después puede ser muy beneficioso para el futuro, simpre que nos nos complique el presente... Si, un dilema apasionante.
Saludos
me refería a esta :http://www.artima.com/weblogs/viewpost.jsp?thread=36529
Saludos
http://www.artima.com/intv/elegance.html
y de paso decir que lo "comenté" en mi bitácora (más bien lo extracté...)
http://barrapunto.com/journal.pl?op=display&uid=7781&id=3654
Saludos
Yo hago webs y ... uf! estoy aburridisimo ... antes con el JavaScript y las capas encontrabas mil retos pero ahora es todo I/O de base de datos, alguna puede complicarse mas pero, incluso Orkut lo veo con esa perspectiva ...
Quizas con J2EE y EJB puede tener mas gracia, o con struts pero ... rara vez son necesarias, mas allá de querer hacer las cosas mejor que bien por si acaso.
Comentarios cerrados para este artículo