¿Metodología o computadora?. Reflexión.
Concepcion–>Descomposición–>Análisis–>Diseño–>Cod.Fuente–>Cod. Objeto–>Ejecutable
Cuanto más se avanza a la derecha, menos importancia tiene el pensamiento, mas el lenguaje de programacion, cuanto mas a la derecha prima la arquitectura del procesador. Cual es el punto de entrada optimo para un desarrollo eficaz. ¿La izquierda? ¿La derecha? ¿Centro?
Cuando en la Universidad me dijeron que tenia que pensar como si fuera una computadora y luego escribir el codigo atendiendo a las actuaciones que la computadora espera de mi, directamente me dijeron que obviase cualquier lenguaje, expresividad, que me centrara en desarrollos ¿carentes de metodologia?. Pero si me hubieran dicho “piensa como un objeto” me habrian dicho que pensara adoptando esa metodologia sin tener en cuenta la a inexpresividad de la maquina. Eso si, como se trasladará luego tanta expresividad (=pensar en objetos) en tanta inexpresividad (=pensar como la computadora).
La respuesta o la combinacion es clara, grandes desarrollos : expresividad (=pensar como un objeto) pequeños problemas (=pensar como una computadora). Entonces trasladado esto al mundo de la computacion, podemos pensar que la metodologia nos organice las “clases” las relaciones entre ellas, etc y que los métodos de las clases, etc puedan contemplar construcciones de bajo nivel (las que permita el lenguaje -claro está-). La metodologia nos proporciona una buena dosis de morfina para evitar los impactos dolorosos de los detalles del hardware. Pero demasiada morfina, no debe ser buena.
En definitiva, pensar las soluciones, tal y como las abordaría una computadora daría lugar a sistemas confusos e inteligibles. Una computadora es un sistema que posee muchas fuentes/sumideros de información de los que ha de estar pendiente. Esto quiere decir que la computadora ha de hacer mas de una tarea a la vez. SI la secuencia de eventos externos no puede ser prevista con antelacion, entonces la secuencia de acciones, a realizar por la computadora, tampoco. Cualquier intento de llevar a cabo un programa respetable, sin una metodologia, pensando hacer las cosas como las resolveria la computadora, nos llevaria a ejecutar acciones entremezcladas y acciones confusas, de tal modo que casi nadie entenderia que esta haciendo el procesador y mucho menos que hará en un futuro cercano.
Desarrollar sistemas sin una metodologia no es un error, es simplemente un reto al intelecto. Dejando al azar una secuencia de errores imprevisibles en una secuencia totalmente aleatoria. Muchos desarrolladores de hoy, aun piensan como una computadora, aunque programen en OO.
Yo prefiero una metodologia eficaz y la capacidad de insertar en los desarrollos mis conocimientos “computadora”.