¿Por qué el TCP/IP se denomina a menudo «pila»? ¿Cómo pasó la palabra «pila» de una «pila de libros» a cómo se utiliza en el contexto de la informática?

A los ingenieros nos encanta parecer frikis y hablar en Lee7speak cuando nos comunicamos con gente no técnica, pero en el fondo, somos seres humanos muy simples a los que les encanta usar analogías para explicar las cosas que hacemos (una rápida búsqueda en quora mostrará a muchos ingenieros usando las analogías más interesantes para explicar técnicas/tecnologías).

De Wikipedia:

La pila se propuso por primera vez en 1946, en el diseño de ordenadores de Alan M. Turing (que utilizó los términos "enterrar" y "desenterrar") como medio para llamar y regresar de subrutinas.

Ahora las palabras "enterrar" y "desenterrar" nos traen a la mente una simple analogía.... enterrar a los humanos, por supuesto. 😛 Ahora supongamos que tenemos un agujero en el suelo. Para empezar, enterramos a una persona en el agujero. Si queremos desenterrarla (o, lo que es más aterrador, si quiere desenterrarse a sí misma), puede cavar ella misma para salir de la tumba. Pero supongamos que enterramos a otra persona justo encima de él. Ahora, incluso si la persona que está abajo quiere cavar para salir (con la música de Shaun of the Dead de fondo), tiene que esperar a que la persona de arriba sea desenterrada para poder salir. Del mismo modo, si hay 9 personas enterradas POR ENCIMA de él, tiene que esperar a que TODAS las 9 sean desenterradas antes de poder respirar por fin un poco de aire fresco (¡y probar algo de carne humana! :P). En esencia, las únicas 2 opciones posibles para una persona en el exterior (que por alguna razón, está muy interesada en enterrar y desenterrar gente) son:

  • Enterrar
  • Desenterrar

Y eso es exactamente lo que le ofrece la datastructura en cuestión.....

Ahora bien, supongo que los informáticos de la época no querían aparecer como espeluznantes necrófilos creadores de zombis hablando de entierros, por lo que con el tiempo se empezó a utilizar la analogía mucho más sencilla de una "pila". Al igual que con el ejemplo del entierro, en una pila (de, digamos, cajas), puedes añadir una caja en la parte superior de la pila o quitar una caja de la parte superior de la pila, ofreciéndote efectivamente las mismas 2 operaciones, que hoy llamamos "push" y "pop".

main-qimg-018232b8f675e5f44cea754c6ccbc8b2.webp

Ahora, hablando de TCP/IP, el modelo es básicamente un conjunto de protocolos (encerrados dentro de las 4 "capas") que se apilan uno encima de otro. Ahora, obviamente, en el momento en que alguien ve esto, lo primero que se le viene a la cabeza, sobre todo si es un informático que ha estado trabajando con pilas, es que esto es una pila... y de ahí el apelativo de "Pila de Protocolos"...

Pero, si quieres, puedes seguir llamándolo "Zombie de Protocolos TCP/IP" (bueno, al menos en susurros :D), ¡y seguir siendo fiel a las ideas de Alan Turing! 😀