secciones

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.

10 Comentarios
Epaminondas Pantulis
8 marzo 2004, 09:39 — #1
Estoy de acuerdo contigo. De hecho, la descripción de cualquier tarea se puede simplificar en exceso hasta convertirla en algo tan simple como "leer datos y mostrarlos por pantalla".

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.
jose luis
8 marzo 2004, 11:06 — #2
Sin embargo creo que esa afirmación es una exageración intencionada del hecho de que en muchas ocasiones (y por varios motivos distintos al aburrimiento) las aplicaciones se complican mucho más de lo que debieran. Si los desarrolladores tuvieran en mente el esquema "leer datos y mostrarlos por pantalla" y solo lo complicaran cuando fuera necesario, estoy convencido de que la mayoría de las aplicaciones se desarrollarían más rápidamente y con menos problemas.
mig21
9 marzo 2004, 12:43 — #3
Yo creo que si nos complicamos la vida (no se si con esos artefectos, porque no programo para la web) y es necesario que nos compliquemos la vida :)

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...
Juanjo Navarro
9 marzo 2004, 19:01 — #4
Está claro, jose luis, que la simplicidad es un valor en programación. Pero como dice Epaminondas, uno empieza haciendo "lo más sencillo que funciona" y cuando se intenta añadir funcionalidad, el tiempo que se aprovechó al principio se termina perdiendo después, y ese después siempre llega :-)

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.
Epaminondas Pantulis
10 marzo 2004, 10:05 — #5
Precisamente ese proceso que mencionas, lo del "hacer lo más sencillo que funcione" es comentada por en una entrevista a Stroustrup de Venners en Artima: ( http://www.artima.com/intv/eleganeP.html )

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)
mig21
10 marzo 2004, 10:51 — #6
Hola Epaminondas...
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
mig21
10 marzo 2004, 10:53 — #7
esto de los enlaces....

me refería a esta :http://www.artima.com/weblogs/viewpost.jsp?thread=36529

Saludos
Juanjo Navarro
10 marzo 2004, 17:43 — #8
Epaminondas, parece que el enlace que has dejado no funciona.
mig21
10 marzo 2004, 20:26 — #9
Me permito poner el enlace de Epaminondas

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
Albin
16 marzo 2004, 14:29 — #10
La leche ... iba a decir algo y me habeis mareado.

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

Anterior: Notas sobre jornadas de accesibilidad Siguiente: Jardinería del Software