Sistemas: mucho más que computadoras
Cuando hablamos de sistemas, mucha gente imagina computadoras, pantallas negras con letras verdes o a algún programador tomando café mientras teclea cosas incomprensibles. Pero “sistemas” no es un concepto tecnológico. No nació con las computadoras ni depende de ellas para existir.
Un sistema es un conjunto de componentes alineados que recibe algo, lo transforma y devuelve otra cosa. El mundo está lleno de sistemas que no tienen cables, ni Wi-Fi, ni bases de datos. Por ejemplo:
- El sistema digestivo: recibe una milanesa con fritas, la procesa durante varias horas y devuelve energía y… bueno… algo más.
- El sistema jurídico: recibe conflictos, los procesa con normativas, leyes y jurisprudencia y devuelve sentencias.
- El sistema educativo: recibe personas sin conocimiento en un área y las transforma, idealmente, en personas con herramientas cognitivas.
No hay nada tecnológico en la idea. La informática adoptó y potenció el concepto de sistema. Pero, si lo analizás en serio, diseñar sistemas es un acto de pensamiento, no de programación.
En todos los sistemas, naturales, humanos o tecnológicos, la lógica es siempre la misma: hay inputs, hay un proceso que transforma y hay outputs. La informática no inventó esta estructura: simplemente la llevó al mundo de las máquinas.
Si decimos que un sistema informático no es más que un proceso que corre dentro de una máquina para recibir, transformar y devolver, entonces programar un sistema informático consiste en expresarle a esa máquina cómo debe ejecutar ese proceso paso a paso. Y ahí aparece una pregunta clave: ¿cómo hacemos para hablarle a esa máquina de una forma cada vez más cómoda, clara y humana?
Cómo le hablamos a las máquinas: escapando del bajo nivel
Señales físicas (encendido/apagado)
Todo arranca con electricidad. Literalmente. Corriente que fluye o no. Apagado y encendido. 0 y 1. Es la forma básica en la que una computadora comprende el mundo.
Tarjetas perforadas (programar con agujeros)
Antes de poder escribir código como hoy lo conocemos, las computadoras se programaban perforando tarjetas de cartón. Sin teclado, sin pantalla: un sistema físico donde introducíamos información mediante perforaciones. Programación rústica, casi una manualidad.
Lenguaje máquina (los 0 y 1 organizados en instrucciones)
Para abstraernos un poco de esas señales eléctricas básicas, la computación las agrupó en patrones: combinaciones de bits que representan instrucciones concretas. Este es el idioma nativo del hardware.
Assembler (un ayuda memoria)
Memorizar cadenas de bits, o decidir dónde perforar una tarjeta, era muy poco práctico. Por eso apareció el ensamblador: MOV, ADD, JMP… los primeros indicios del inglés ingresando al mundo de las máquinas.
Lenguajes de nivel intermedio (C)
Permiten escribir instrucciones más cercanas al pensamiento humano, pero todavía muy pegadas al hardware: manejo de memoria, punteros, registros. Una capa más arriba, pero aún cerca del fierro.
Lenguajes de alto nivel (Basic, JavaScript, Python, etc.)
Hasta hace poco, eran los lenguajes más amigables entre humanos y máquinas. Se acercan a un inglés técnico simple: “if”, “else”, “return”. Mucho más abstractos, mucho más cómodos.
Durante décadas programamos así: una traducción del lenguaje humano al lenguaje de la máquina. Una historia de abstracciones, capas que permiten concentrarnos en el diseño del sistema y no en los detalles del metal (o la “caja de hojalata”, como le llamaba Bill Gates al Altair 8800 de Ed Roberts).
Lenguaje natural: lenguaje de alto nivel con esteroides
Con la irrupción de la inteligencia artificial, ya no necesitamos traducir nuestras ideas a ese inglés técnico acotado. Podemos expresar intención directamente en lenguaje natural: español, inglés, francés o el que quieras.
Los modelos de lenguaje generan el código por nosotros. Son una nueva capa de abstracción, igual que alguna vez lo fueron los compiladores, pero a otra escala.
Así como dejamos de escribir binario, de escribir assembler y de escribir código de muy bajo nivel, ahora vamos a dejar de escribir ese inglés simplificado para computadoras: vamos a trabajar en lenguaje humano.
No significa que los lenguajes de programación desaparezcan. Significa que dejarán de ser la interfaz principal: serán una capa interna, generada automáticamente por los modelos.
Exactamente como hoy nadie piensa en binario ni hace agujeros en una cartulina, mañana nadie va a pensar en if (x == true).
Lo esencial de un sistema informático está en el proceso, no en la forma de hablarle a la máquina
Un sistema sigue siendo un sistema, independientemente del mecanismo que genere las instrucciones. La esencia nunca estuvo en la sintaxis: siempre estuvo en el diseño del proceso, en la claridad conceptual y en la comprensión profunda del problema que se quiere resolver.
La interfaz puede transformarse, antes fue binario, después assembler, luego lenguajes de alto nivel y ahora prompts, pero el pensamiento sistémico no cambia. Si mañana desaparecieran todos los lenguajes de programación, seguirían existiendo los problemas humanos, los procesos, las decisiones y la necesidad de transformar inputs en outputs de forma razonable.
El diferencial que aporta un profesional de sistemas no tiene que ver con cómo darle instrucciones a una computadora, sino con comprender y manejar las características inherentes a cualquier sistema:
- Entender el negocio.
- Comprender los problemas humanos detrás de los procesos.
- Pensar en los inputs correctos.
- Diseñar procesos razonables y robustos.
- Anticipar qué outputs generan valor.
- Detectar fricciones y reducirlas.
- Modelar la realidad sin romperla.
- Crear soluciones simples que funcionen sin que el usuario tenga que pensar demasiado.
El buen sistema no se define por el lenguaje de programación, tampoco por la persona que tipeó el código, ni se definirá por la IA que lo genere. La diferencia entre un buen sistema y uno malo está en la claridad conceptual: en entender qué problema estás resolviendo y en diseñar procesos que agregan valor con baja fricción.
Cualquiera puede aprender a tipear “if, else, while”. Cualquiera puede pedirle a un modelo que escriba código. Pero muy pocos pueden pensar en sistemas de verdad. Y esa habilidad es la que importa.
Hacer cosas simples es complejo. La tecnología avanza, se abstrae y se simplifica. Pero la complejidad conceptual, la que define un buen sistema, sigue intacta.
Diseñar sistemas es diseñar ideas claras. Es ordenar el caos. Es entender a las personas. Es conectar lo que entra, lo que pasa y lo que sale. Todo lo demás, el código, las herramientas, la sintaxis, cambia. Lo que no cambia es la necesidad de pensar bien.
Y pensar bien, en cualquier época, sigue siendo un arte profundamente humano (y escaso).
Deja un comentario