La tribu de los Kro-Binariones
Introducción al lenguaje de los programadores, digo de las máquinas.
Nos encontramos ante una paradoja típica de las cosas que ocurren en el Mundo Virtual. Para entender el pasado, tenemos que explicar el futuro de entonces. Bueno, el presente de ahora.
Los
descubrimientos de Rokagüeb nos sorprendieron por la avanzada tecnología que poseían en la Edad de Piedra. Tan avanzada que muchas veces, a pesar de los esfuerzos de Julk, necesitamos ser unos expertos informáticos para entender realmente como era la vida en Rokagüeb.
Si usted es un experto informático, cree que "sabe de ordenadores", y lo que son los lenguajes de programación, evite esta introducción y pase directamente a ver la historieta de la semana que se encuentra al final de este artículo. Pero luego no se queje si no entiende el chiste.
Se ha dado tanta relevancia al hecho de que vivamos en la "Era Digital", que da la impresión de que lo digital en sí, sea algo mucho más complejo y sofisticado que lo que en realidad es, algo extremadamente sencillo.
Digital viene de dígito, o número. Pero lo que mucha gente ignora es que esos dígitos son solamente dos. El uno (1) y el cero (0). Vamos, que no es para tanto.
Es decir, toda nuestra tecnología actual está basada en ordenadores, y estos son sistemas digitales. Pero por muy complicado que nos parezca, no son sino cantidades más o menos grandes de unos y ceros.
El uno y el cero se utilizan para representar dos estados de una misma cosa. Por ejemplo, una bombilla o foco, puede estar encendida o apagada. Diríamos que su valor sería uno o cero respectivamente. Luego, el significado que ese valor pueda tener para nosotros, será el que nos interese en cada momento y a ese "objeto" que puede cambiar de valor entre un uno y un cero, le llamamos (por una antigua tradición bárbara) *bit*.
Por ejemplo, un taxi, lleva un "bit" de color verde en la parte superior del vehículo. Si el bit está encendido (verde) quiere decir "Sí" (que admito viajeros). Si está apagado, es que "No", que ya está ocupado, se vuelve a su casa, o por alguna razón no admite viajeros y probablemente esté lloviendo. Con lo que se demuestra lo fácil que puede llegar a ser complicarse la vida con cosas sencillas.
Pero si algo insignificante como un bit puede dar tanto juego, si duplicamos el número de lucecitas, las posibilidades aumentan vertiginosamente. Supongamos los indicadores de dirección o intermitentes de un vehículo. Son dos, que pueden estar activados o no (dejemos lo de encendido/apagado en este caso). Las posibles informaciones que podemos transmitir con estos dos "bits" son cuatro. Si ambos están desactivados ("a cero") quiere decir que no pensamos cambiar de dirección (o que no consideramos importante que usted lo sepa). Si activamos ("ponemos a uno") el de la derecha o el de la izquierda, será para indicar que vamos a girar en esa dirección. Y por último, si activamos los dos simultáneamente, estamos indicando una situación especial ante la que se requiere precaución. Todo eso podemos hacer con dos simples "lucecitas" o bits, pero por favor, no confundir esto con el llamado "ordenador de a bordo".
Como puede verse, cuantos más "bits" tengamos, más información podremos dar o interpretar. Con un bit había dos posibilidades, con dos cuatro. Si tuviéramos tres bits ya serían ocho posibilidades y con cuatro habría dieciséis combinaciones distintas. Es decir, en el sistema binario, los valores que podemos representar son las "potencias" de dos (dos posibles valores por cada dígito empleado). De la misma forma, que en el sistema decimal lo son las potencias de diez. Con un dígito en sistema decimal podemos representar diez valores (de cero a nueve). Con dos, cien. Con tres, mil...
Volviendo al sistema binario, con cinco dígitos o bits, podríamos representar 32 combinaciones diferentes y asignar cada una a una letra del alfabeto y aún nos sobrarían. Si en vez de 5, disponemos de 8, las 256 posibilidades nos dan para diferenciar entre letras mayúsculas y minúsculas, e incluso añadir números y signos de puntuación hasta aburrirnos. Además, 8, al ser potencia de dos es mucho más manejable por un ordenador.
A ese grupo de 8 bits se le llama byte y lo que el ordenador puede representar con un byte es un carácter. Un byte hoy en día es algo insignificante que en los ordenadores actuales se cuenta por millones, "Megas", o "eMe Bés" (Mb). Pero no faltará quien tras leer esto, me escriba para contarme que en sus tiempos, los bytes se contaban con los dedos. Por supuesto que su mensaje será bien recibido.
El problema que tenemos para comprender los ordenadores es que no vemos "las lucecitas". Y aunque las pudiéramos ver, serían tantas (los megas esos), que resultaría imposible para el común de los mortales, e incluso algunos programadores, poder interpretarlas.
Los ordenadores hablan su lenguaje, el "lenguaje máquina", que es una combinación de unos y ceros. Entre los humanos, sólo algunos miembros de la tribu, perdón, del gremio de los programadores se atreven a hablar dicho lenguaje hoy en día. En el pasado, algunos miembros de dicho gremio que no eran tan masocas, inventaron los lenguajes de programación. Una forma de explicarle al ordenador que el común de los mortales sólo quiere escribir una carta, generalmente a la misma persona, y, a ser posible, con sólo pulsar un botón. Cosa que ya resulta más difícil de conseguir.
Para ello fueron paso a paso. En primer lugar, utilizando el lenguaje de los unos y los ceros, consiguieron un lenguaje más evolucionado llamado "ensamblador". Este era similar (por así decirlo) al que se utiliza hoy en día para enviar mensajes entre teléfonos móviles. Por supuesto seguía siendo para iniciados, pero algunas palabras de dicho lenguaje pasaron al habla coloquial como "Nop" y "Sip" (esta última de dudosa procedencia).
Pero todo ha de tomarse como un primer paso y nunca rendirse ante la evidencia. Así que los programadores, decidieron utilizar el nuevo lenguaje para intentar construir "otro mucho más sencillo y potente". De hecho, lo intentaron tantas veces que construyeron muchos lenguajes. Incluso con algunos de esos lenguajes crearon otros lenguajes y a fecha de hoy siguen sin parar de crear lenguajes para ordenadores.
Estos lenguajes pueden ser más o menos evolucionados y más o menos sencillos de hablar, hum... de programar. El caso es que las palabras o "instrucciones" de dicho lenguaje se convierten en más o menos palabras del lenguaje máquina. Cuantas más instrucciones en lenguaje máquina se generen por cada instrucción de un lenguaje, se dice de este que es de más "alto nivel". Si una instrucción se convierte en una o unas pocas instrucciones de máquina, el lenguaje es de "bajo nivel".
Los lenguajes de alto nivel son más sencillos de programar aunque menos efectivos en cuanto al aprovechamiento de los recursos. Los de bajo nivel, precisan de programadores más expertos. Son más veloces y permiten un mayor control de la máquina. Se emplean en tareas como las partes centrales de un sistema operativo, las comunicaciones o los programas "herramientas", mientras que los lenguajes de alto nivel son utilizados sobre todo en aplicaciones "de gestión" como contabilidades o para programas para rellenar quinielas.
Por volver al socorrido ejemplo del mundo del automóvil, apretando un sólo botón podríamos conseguir que las puertas se abriesen mientras los intermitentes destellaran varias veces y las luces interiores se encendieran para indicar al conductor que puede entrar al vehículo.
Esto sería calificado probablemente por un conductor/programador experto como "¡Tonterías!".
Ahora les dejamos con la nueva historieta de Rokagüeb, esperando que comprendan un poco mejor de lo que ahí se está hablando. Si después de leer esta introducción, usted se encuentra más confuso que al principio, no se preocupe. Siempre se ha dicho que es más sencillo entender (o apagar) a un ordenador que a un programador. Relájese y disfrute de los dibujos que menos da el Ministerio de Cienciología.
|