Ciudades de software

En categorías: ElSoftwareNoMuerde

En esta entrega de #ElSoftwareNoMuerde, te cuento sobre una técnica que nos permite ver al software como a una ciudad virtual.

Originalmente publicado en Twitter

Mucho se habla sobre que el software se está comiendo al mundo... ¡y hay mucha verdad en eso!

Pero desde esta cuenta quiero contarles que #ElSoftwareNoMuerde. Hoy sale un hilo apto para todo público hablando de "visualización de código".

¿Visu-lo-qué? Te cuento 👇

1/ A grandes rasgos, la gran revolución de la computación está dada por 3 fenómenos:

- Computadoras programables que son cada vez más baratas: hardware.
- Interconexión de estas computadoras: Internet.
- Creatividad sin límites para posibles usos: software.

2/ Pero concretamente... ¿qué es el software?

La computadora sabe hacer de todo, pero por sí sola no hace nada. Necesita que alguien le diga qué hacer.

El software es una serie de comandos que le damos a la computadora para que se comporte de tal o cual manera.

3/ En un mundo ideal le diríamos estos comandos a la computadora coloquialmente: "por favor, calcula la trayectoria ideal para mi cohete" 🚀

Pero en la vida real, necesitamos escribir este programa en un lenguaje que la computadora pueda entender. Un lenguaje de programación.

4/ Lenguajes de programación hay muchos. Los primeros surgieron hace más de 50 años y algunos de ellos aún se usan.

Todos los años surgen nuevos, y hay interminables debates en nuestra comunidad sobre cuál preferimos usar.

Se ha librado más de una guerra religiosa al respecto.

5/ Pero casi todos los lenguajes de programación comparten una característica: se los escribe en un editor de texto.

Cuando escribimos nuestro programa usamos algo parecido al Word... pero en vez de agregar o quitar párrafos, agregamos y quitamos funciones y comandos.

6/ Pero a veces entender este texto nos resulta agobiante, o imposible.

Por ejemplo, el texto que hace funcionar a Windows 10 tiene unas 50 millones de líneas de largo. ¡Si las imprimiéramos, tendríamos una torre de 100 metros de alto! Algo así como un Obelisco y medio

7/ Dicen que una imagen vale más que mil palabras.

Por eso, para entender un programa tan grande, necesitamos visualizarlo de una forma que no sea textual... sino gráfica.

Hay muchas maneras de lograrlo, pero hoy les voy a contar sobre una: Las ciudades de código.

8/ La idea de las ciudades de código es representar un programa no como un sinfín de líneas de código... sino como una ciudad.

Cada parte del programa se convierte en un barrio, cada archivo es un edificio.

9/ La idea surgió en un artículo de 2007: "Comprensión de programas a través de habitabilidad de software" de la Universidad de Lugano, Suiza 🇨🇭.

Ya existían técnicas para visualizar software en 3D, pero esta es la primera que se anclaba a una metáfora de ciudad.

10/ Lo mágico de usar una metáfora así es que emergen conceptos impensados:
- Un archivo con muchos datos y pocas funciones se visualiza como un estacionamiento.
- Un archivo con muchas funciones y pocos datos se ve como un rascacielos.
- Y así...

11/ Esta idea se aplicó a varios lenguajes de programación y fue evolucionado hasta llegar a ciudades interactivas que podemos recorrer y hasta "pintar" según distintos criterios que nos sean de interés.

12/ Hay muchísimas otras formas de visualizar código, pero con esta espero haberles mostrado algo nuevo... y recordarles que #ElSoftwareNoMuerde 😆

Escrito el 01/10/2020