La importancia de los cimientos

Esta nota, que no entrada, es una forma de desconectar un poco del trabajo haciendo algo productivo. En las ultimas semanas me ha tocado batallar con la compilación de programas usando el comando make o, directamente, llamando al compilador con la linea de comandos pasando le argumentos y opciones. Que duda cabe de que es complicado al principio, comandos difíciles de recordar o incluso arcanos, así como opciones que ni siquiera entiendo que hacen por mucho que lea la documentación.

Pero haciendo memoria de mi evolución en el mundo de la programación (llamarme junior podría ser hasta un piropo), me doy cuenta de la importancia de los cimientos o de la base, a la hora de conocer una tecnología, por ejemplo. En este caso, desde que comencé a programar prácticamente he estado usando IDEs o programas que ocultan toda la complejidad que conlleva organizar un proyecto compuesto por diferentes archivos, bibliotecas, scripts y demás. Parece lógico: si la tecnología nos permite evitarnos esa molestia, evitar tener que organizar los directorios, pensar como enlazar con diferentes librerías o archivos, etc., por qué no usarlo. Pero lo cierto es que eso esta muy bien para alguien que ya conoce lo que se cuece por debajo. Pero para un novato es mas un problema que una ventaja. Que pasa si el programa no configura adecuadamente el proyecto y alguna de las partes no enlaza bien con el resto? Pues que tendremos errores difícilmente comprensibles (al fin y al cabo, los ordenadores todavía son “tontos”) que serán casi imposibles de resolver salvo que encontremos una receta de pasos y acciones a tomar que serán como los pasos de un conjuro o embrujo.

Poco después descubrí que para usar librerías externas y compilarlas a la vez que tu programa, había herramientas como CMake o Autotools que configuraban todos los aspectos relativos a estos. Pero era el programador el que tenia que dar las primeras “pistas” para que se ajustase todo correctamente. Es decir, el IDE o compilador, como erróneamente se les llama (o les llamaba yo, no se) a los programas como Eclipse, VisualC++ o Code::Blocks, no era suficiente para saber que había que hacer. Así que era un paso mas de aprendizaje en el que también se dejaban flecos no resueltos.

De ahí a empezar a trabajar con Make o con el mismo compilador hay un paso. Pero es un gran paso y duro de dar. La cuestión, que es el motivo de esta reflexión rápida, es que si hubiese comenzado por lo mas bajo, por el compilador, o el make, habría entendido bien que es lo que esta pasando desde el principio y me habría ahorrado horas de frustración. Y probablemente habría avanzado mas y terminado muchos proyectos que termine abandonando por no conseguir solucionar algún error de este tipo. O quizá no, pero podría acusar directamente a mi inconstancia. Ahora siempre me quedará la duda…

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s