¿Es Programar un ARTE?

Abr 07

¿Es Programar un ARTE?

Hoy, un Martes cualquiera, la pregunta que me surge mientras sigo un curso de programación de Apple Watch, ¿es la programación un arte?.

Según el profesor, lo es. Pero me parece demasiado fácil, no deja lugar a dudas pero hay que cuestionarse si esto es la verdad. Mi respuesta sería, que depende de quién escriba el código y de quién lo lea, y lo mismo para quién ejecuta el programa. Intentaré explicarlo con una comparación: la música. Cuando un pájaro canta o un músico compone y toca, lo hace sin más, es algo natural, en el caso del pájaro es innato y en el músico aprendido, pero el músico debe además tener un talento y ensayar para llevar su música a algo más elevado, ha de pensar en las cosas más básicas como cuando conduces un coche: pisar los pedales, girar el volante y cambiar las marchas. Igualmente, el músico ajusta su instrumento, bien sean las cuerdas vocales, o las de la guitarra, afinarlas y luego usarlas, algo normal. Un programador o programadora no es diferente en este aspecto, porque usa un ordenador como instrumento, con herramientas especiales, pero lo más importante y necesario es usar el cerebro.

programmer

¿Programador de videojuegos o hacker?

No digo que un músico no tenga que usar el cerebro, de hecho ha de recordar acordes, combinaciones, notas, melodías, y complejos movimientos que dependerán del estilo y el instrumento, también tiene que crear arreglos que se ajusten a la melodía que suene y adaptarse al momento. Aunque no se suelen ver muchos músicos que toquen una gran variedad de instrumentos, sí que podemos encontrar programadores que dominen una multitud de lenguajes, sistemas y dispositivos.

No importa si eres un virtuoso de la guitarra o un experto en C#, porque ambos han de pensar en soluciones a problemas mientras ejecutan su labor, y en el caso del programador será: recordar flujos de información, imaginar lugares en la memoria del dispositivo, conocer qué hará el programa antes de que se ejecute, y crear algoritmos basados en física, matemáticas, lógica,geometría, etc., dependiendo de lo que el programa tenga que hacer.

Por lo que para ambos, la herramienta que dirige la tarea es el cerebro, pero la más importante a parte de esa es el corazón. ¿Qué tiene que ver esto último con la lógica y ejecución de un programa o la estructura de una melodía?, bueno, ya sabéis que la intuición es la super-lógica de la naturaleza que raramente erra. Un momento, entonces, ¿arte es un programador con intuición?, no, vale,es una comparación un tanto extraña, pero válida.

Aunque en la programación no hay movimiento externo aparente, ni es tan entretenido de ver (o escuchar)…hasta que se compila y ejecuta el programa, mientras escribe código, el programador debe pensar antes de escribir, luego, el arte de la programación consiste en pensar sin pensar , algo heredado del zen, la meditación mientras se escribe código es posible cuando la inteligencia está al servicio del programador.

as_a_programmer_50_errors_in_one_line_of_code

Lo único que me queda por decir es que un programador brillante puede parecer el más estúpido sólo por una línea, pero igual que a un músico se le perdona una nota mal en su melodía, hay bugs que son admisibles, de hecho los juegos triple A están llenos de bugs graciosos que les encanta a quienes los encuentran.

Reconoceremos el arte de la programación al ver un videojuego funcionando de forma suave, cuando funciona de forma completa sin sobresaltos, como se espera que funcione.

programmer_god_or_dog

Y nos suele suceder, que cuando programamos, el control se nos puede escapar, perdiendo la noción de lo que hay en memoria o de lo que hace cierta clase, función, bucle o instrucción, divagando entre dos estados: dios o perro.

Programar videojuegos puede llegar a ser más complicado que el hacking, puesto que has de conocer tanto sobre tantas cosas que a veces puedes llegar a verte totalmente perdido y desbordado, y que sin ayuda te va a ser imposible encontrar una solución, pero sólo con paciencia, perseverancia y estudio se llega a acometer la tarea de finalizar un videojuego.

 

Artículos relacionados

  • ...

Exprésate dejando un comentario:

Introduce el captcha

Por favor escriba los caracteres de la imagen captcha en el cuadro de entrada