Programas, lenguajes y sistemas operativos

Muchas personas confunden estos tres términos. Sin embargo, son del tipo de cosas que necesitamos tener claras (o al menos no completamente oscuras) a la hora de navegar por el océano de la web, especialmente cuando amenaza tempestad.

La razón para ello es que una palabra cuyo significado no conocemos, o que confundimos con otro, o que nos acabamos de inventar “porque se deduce fácilmente del contexto” y muchas otras formas de lo que se llama palabra malentendida, puede causar estragos inimaginables, no sólo en tu comprensión de un tema, sino hasta en su tu propio cociente intelectual. Lo que acabas de leer no es una broma pesada…. En este enlace encuentras el cómo y por qué.

Esta es una entrada prometida hace varios meses a mi querido amigo Iñaki, espero que todavía pueda serle útil.

Para comenzar, podríamos decir que tanto un lenguaje como un sistema operativo son, de una u otra forma, dos tipos especializados de programas.

Sin embargo, programa no es sinónimo de sistema operativo ni de lenguaje. Son conceptos muy relacionadas, pero diferentes.

Los programas

Un programa, en su definición más simple, es un conjunto de instrucciones, de ódenes, para tu computadora. El programa primero se instala y entoces ya está listo para dar las instrucciones y tu computadora para recibirlas. Y el resultado es que cuando haces clic en un botón, tu computadora “sabe” que debe hacer “A”. Cuando presionas una tecla, ella “sabe” que debe hacer “B”. Y cada vez que realizas la misma acción, ella ejecuta la misma orden, de la misma manera siempre.

Por ejemplo, un programa procesador de texto, como Word, “sabe” que cuando tú seleccionas un texto y le das la instrucción “Ctrl+B”, ella debe poner en negritas ese texto. Tú presionas esas dos teclas, y siempre siempre que estés en Word, el texto se pondrá en negritas.

Pero si no estás en Word, sino en un programa navegador, como Explorer, y presionas “Ctrl+B”, no pasa nada (o pasa algo diferente), ya que este programa no contiene esa instrucción:

“Teclas Ctrl+B = negritas en texto seleccionado”

o como se escriba esta instrucción en el lenguaje en que están escritos estos programas.

Ya que sí, aquí es precisamente donde se juntan programas y lenguajes.

Pero antes de entrar en lenguajes, te cuento que hay tres clases principales de programa. Están los dos que ya vimos al comienzo de esta entrada (es decir sistemas operativos y lenguajes de programación). Y, además, están las aplicaciones, que son el tercer tipo.

Los sistemas y los lenguajes los veremos en un minutito.

Las aplicaciones son el tipo de programas que no son impresicindibles para el funcionamiento de tu máquina. Las aplicaciones son el tipo de programas que personas normales, como tú y yo, conocemos, usamos y manejamos hasta cierto punto. Son aquellos programas que no requieren que seamos unos genios de la informática, para poder hacerlos funcionar. Algunos ejemplos de aplicaciones son:

  • los procesadores de texto (como Simple Text, Pages, Word o millones de otros),
  • los editores de imágen (como Photoshop o Gimp)
  • los navegadores (como Safari, Firefox, Opera, Camino o Explorer)
  • los reproductores de imagen o sonido (como iTunes, Quicktime o Windows Media Player)

Hay aplicaciones muy sencillas, y otras extremadamente complejas y sofisticadas. Hay muchísimas otras clases, y miles de ejemplos en cada una, pero todas, como programas que son, hacen lo mismo: le dicen a tu computadora: “cuando el usuario aprieta aquí, tú haces X y cuando el usuario hace clic allá, tú haces Y“.

Los lenguajes

Por ahora (año 2008), lo más probable es que si le preguntas a tu máquina algo “personal”, como cuál es su color favorito, ella no sólo no te responda, sino que no tenga la menor idea de que le estás preguntando algo. En realidad, siendo una máquina, un objeto, NO tiene idea de absolutamente nada. Como máquina que es, pertenece a una especie diferente. No sólo “habla” otro lenguaje, sino otro tipo de lenguaje. Se llama “lenguaje de máquina”. Muy original el nombre, muy creativo, como puedes ver.

El lenguaje de máquina es un lenguaje que, en general, los humanos no podemos hablar ni comprender. No es como si fuera ruso, por ejemplo, que aunque es muy diferente al nuestro, con un poquitín de estudio y mucha práctica podemos aprenderlo. No. Es como si fuera “hormigués”, “perruno” o “delfiniano”…. se basa en códigos o señales completamente diferentes a todo lo que conocemos, como si fueran sonidos que por cuestiones fisiológicas, no podemos reproducir con nuestros actuales cuerpos.

Se compone de sólo dos símbolos, dos valores, dos sonidos, dos estados si quieres: Cero y Uno. Y todo tiene que traducirse o convertirse a cierta cantidad de Ceros y cierta cantidad de Unos dispuestos de cierta manera.

La información sobre este tema puede extenderse bastante, pero no es el propósito de esta entrada. Para darte una idea simplemente, la letra J en binario sería “01001010”, la S sería “01010011”, y así sucesivamente.

Ahora bien, si mueres de curiosidad sobre éste, el lenguaje que usan las máquinas para comunicarse entre sí, puedes leer este estupendo artículo, de los poquísimos que he visto a cuyo autor estaba verdaderamente interesado en comunicar algo comprensible a los principiantes.

Los humanos, entonces, no podemos comunicarnos con las máquinas, ni ellas con nosotros. Necesitamos lenguajes intermedios, que sean comprensibles tanto para una computadora, como para una persona. Y los hay. Se llaman lenguajes informáticos, los hay de varias clases, y cumplen diversas funciones.

Dos ejemplos de lenguajes informáticos son los lenguajes de programación y los lenguajes de marcado.

Naturalmente, los programas se escriben en lenguajes de programación. Son lenguajes legibles y comprensible por humanos, y que pueden luego se “traducirse” a la versión binaria que las diferentes computadoras pueden “comprender” y ejecutar. Sobre el más famoso de los lenguajes de marcado, el HTML, escribí una entrada hace unos meses, donde puedes encontrar más datos sobre el tema de lenguajes.

Los sistemas operativos

Si ya comprendes lo anterior, esta última parte se te hará facilísima. Si no estás completamente seguro, es buena idea que revises lo que acabas de leer a ver qué palabra o palabras no comprendiste completamente y la aclares (sea en mi Glosario o en un diccionario online o físico) antes de continuar.

Un sistema operativo es sencillamente el conjunto (sistema) de programas que necesita tu computadora para operar ella misma y para que operen los programas que le hayas instalado, así como los periféricos que ella tenga conectados. Por ejemplo, el programa que hace que puedas imprimir un documento es parte del sistema operativo.

Algunas de las funciones de las que se encarga un sistema operativo son el encendido, el apagado de la máquina y la mejor utilización posible de la memoria disponible. También, la interfaz, es decir la “cara” que le presenta el sistema operativo al usuario, si es amigable o no, si tiene ventanas o sólo letras, si es bonito, aburrido o complicado de usar. También determina cuántas cosas puede hacer al mismo tiempo sin congelarse, apagarse, caerse o necesitar un rebote.

Aunque en este momento todavía un 92% de los usuarios emplea alguna de las versiones del Sistema Operativo Windows en sus computadoras, Windows no es el único sistema que existe. Tampoco el mejor. Aparte de Macintosh y Linux, en este enlace encuentras una presentación de otros diez sistemas.

Personalmente, considero el sistema X de Macintosh, (conocido como “OS X”, cuya última versión es el 10.5 Leopard), la Octava Maravilla del mundo. No pretendo criticar en esta entrada al sistema operativo Windows. Tiene suficientes críticos (¿o debo decir “víctimas”?) entre sus propios usuarios. Baste decir que yo no cambio a Mac por nada en el mundo. Pero hay otras opciones. Mi querido vecino Jusamawi, por ejemplo, te puede hablar de las maravillas del sitema Linux y de Ubuntu.

Finalmente, para cerrar esta sección y esta entrada con una nota triplemente esperanzadora sobre el tema de los sistemas operativos, te dejo con un muy buen artículo de uno de los “Señores Bloggers” en español, Enrique Dans.

Anuncios

¿Para qué necesitas saber algo de HTML?

HTML… difícilmente pudo algo tener un nombre más complicado y falto de sentido. Solo de ver la palabra, fácilmente te da sueño. Y lo peor es que cuando te enteras de lo que significa la sigla (sí, HTML es una sigla), te quedas peor que como estabas.

Entonces, ¿por qué un navegante común y corriente, uno que nunca ha sido, que no es ni será nunca uno de esos jóvenes técnicos adictos a la programación y a lo último de lo último en tecnología, que se llaman a sí mismos geeks, que se comunican en lenguajes incomprensibles y descifran jeroglíficos informáticos… por qué alguien como tú necesita conocer algo tan esotérico? ¿Para qué?

Esta entrada no pretende enseñarte HTML. Pretende responder a la pregunta “¿Para qué?” luego de lograr algo casi imposible: convertir la sensación de pánico, de estar completamente en blanco y de frustración que provoca la incomprensión en un interés, moderado apenas, que te permita decidir racionalmente si deseas este conocimiento o no para mejorar tu blog o tu página web.

Mi propósito no es convertirte en uno de esos geeks que acabo de mencionar. Si más tarde sucede, es por completo tu responsabilidad. ;-)

¿Qué cosa es el HTML?

Tu computadora habla un lenguaje de máquina. Está compuesto de miles de millones de combinaciones de ceros y unos o, si quieres, “bolitas y palitos”.

Para un humano “normal” es prácticamente imposible comunicarse de esta manera. Para eso existen los programas. Los programas son intérpretes, traductores. Pueden comunicarse con la máquina directamente y también contigo, a través de idiomas comunes, de idiomas que tanto una máquina, como un programa (que es un especie de máquina), y como un ser humano (que no es una máquina, en absoluto) pueden comprender.

Por ejemplo, si tu computadora se quedara “vacía”, si le sacaras todos sus programas, si se quedara sin Word, sin Excel, sin Explorer…. etcétera, tú pensarías que ella “no puede hacer nada”. No, no es así. Ella puede, igual que antes. Eres tú quien no podría hacer nada. Porque no podrías comunicarle a ella lo que quieres que haga. Para comunicárselo, necesitas los traductores, que son los programas que le acabas de quitar.

Los diferentes programas se comunican con tu computadora, contigo y entre sí en diferentes lenguajes informáticos. El HTML es uno de ellos. Y de ahí viene la “L” de HTML: “language” en inglés, que significa idioma o lenguaje.

No te diré en este punto todavía lo que significa el resto de la sigla. Vamos a continuar entendiendo un poco más lo que es.

El HTML, entonces, es un idioma intermedio entre el tuyo y el de tu computadora y eso es todo lo que es. Es uno de los idiomas que “hablan” los programas navegadores de Internet, como Explorer, Safari, Firefox y todos los demás.

¿Cómo se dice “hola” en HTML?

El HTML es un idioma especial, que está compuesto principalmente de instrucciones u órdenes. No parece ser muy poético a primera vista, ni muy amable, supongo que sus creadores no consideraron que se debía ser amable con las máquinas…. Así que no hay un término para “hola!, aunque sí algo parecido, que veremos en un momento.

Los creadores del HTML, que apareció públicamente por primera vez en 1991, le llamaron a este idioma “Lenguaje de Marcado” (Mark-up Language), porque era muy parecido a las marcas que se hacían en los primeros tiempos de la imprenta de probablemente principios del siglo XIX. En esa época, los “marcadores” (un oficio muy respetable de la época), escribían (marcaban) los manuscritos con las instrucciones para el impresor de cómo debía verse la publicación ya impresa. Marcaban el tipo de letra que debía usarse, el estilo, el tamaño, las medidas de las columnas, etc. Y estas instrucciones, igualmente manuscritas, eran la guía para quienes preparaban las cajas de tipo para la impresión.

Para que tengas una idea aproximada del tipo de impresión de esa época, dale un vistazo a este maravilloso video sobre esa clase de impresión, que todavía se usa en muchos sitos.

El término “marcado” también se usa actualmente (en inglés sobre todo) para describir el trabajo de los correctores de pruebas, de estilo y otras profesiones similares.

El “marcado” también se usa en el lenguaje hablado. La Wikipedia da un ejemplo bastante ilustrativo de la aplicación de un lenguaje de marcado en un dictado en voz alta –me imagino que a una secretaria no muy diestra– y se los presento tal cual aquí:

    Ponga estilo de carta, ponga mayúsculas, Estimado Juan, ponga dos puntos, aparte, sangría, ponga primera letra mayúscula, Te escribo esta carta, abra negrillas, de forma muy urgente, cierre negrillas, ya que no me has enviado…, etc.

Ahora bien, si alguien va a leer lo anterior en vez de escucharlo, va a tener que leerlo al menos 2 veces, a menos que separe lo que es instrucción de lo que es el texto de la carta que se está dictando. Quedaría más o menos así:

    [Ponga estilo de carta] [Ponga mayúsculas] Estimado Juan [Ponga dos puntos] [Aparte] [Sangría] [Ponga primera letra mayúscula] Te escribo esta carta [Abra negrillas] de forma muy urgente [Cierre negrillas] ya que no me has enviado…, etc.

Y lo anterior seria una aproximación al HTML. En este idioma, las instrucciones se ponen entre signos < y >, en vez de corchetes, y son un poco más “maquinales” que las anteriores. Por ejemplo para decir:

    “[Abra negrillas] de forma muy urgente [Cierre negrillas]”, escribimos:
<b>de forma muy urgente</b>

y el resultado es: de forma muy urgente

ya que en HTML, “negrilla” se dice “b” (del inglés bold). De igual modo, como probablemente ya lo adivinaste, para poner itálicas en HTML, escribimos:

<i>de forma muy urgente</i>

y el resultado es: de forma muy urgente

Estas dos simples órdenes las puedes usar cuando escribas tu próximo comentario en un blog, si quieres destacar algo con negrillas o itálicas. :-)

Ese tipo de instrucción entre símbolos < y > se llaman “tags”. Sí igual que tus tags para clasificar tus entradas, pero significan algo diferente: en HTML, el tag de apertura significa: “Comienza a hacer lo que dice aquí” y el tag de cierre (el que tiene la diagonal “/“) significa: “Deja de hacer lo que dice aquí”.

Hay unas 65 tags para las instrucciones que necesitas para construir, por ejemplo, una página web. De éstas, se usan con frecuencia algunas 20.

Y así es como se estructura este lenguaje de marcado llamado HTML. Es simplemente el texto e imágenes, videos, etc. que quieres publicar en internet más las instrucciones en forma de tags. Eso es prácticamente todo.

Entonces, probablemente ya lo adivinaste, de “marcado” viene la “M” de HTML. Es decir que “ML” significa lenguaje de marcado (del inglés Mark-up language).

Por cierto, casi lo olvido. “Hola” en HTML, se dice:

<html>

y “Adiós” se dice, naturalmente,

</html>

O, al menos, así comienzan y terminan todas las páginas escritas en este idioma. ;-)

Los enlaces: diminutas puertas al infinito

En mi opinión, una de las cosas más maravillosas de Internet es la posibilidad de navegar por un océano de información virtualmente ilimitado, donde las rutas posibles se acercan al infinito, por virtud de los enlaces.

No sé si tú, lector o lectora, recuerdas haber vivido cuando no existía el Internet. Si es así, entonces posiblemente te maravillas igual que yo cada vez que lo piensas…

Los enlaces están hechos de una sustancia especial, diferente a la que usa el texto normal. Aunque esta “pasta” originalmente fue azul, actualmente viene en los colores más variados. Este tipo de texto especial, mágico, que te lleva por rumbos insospechados cuando haces click sobre él se llama, muy adecuadamente, hipertexto.

Hiper, como probablemente sabes, viene del griego hiper (ὑπερ), que significa “más allá” y también denota abundancia e incluso exceso. Así, los enlaces están hechos de una clase de texto que te lleva más allá.

El hipertexto se comenzó a crear en los años 60. Veinte años después, con la aparición de la Web, su uso se popularizó extraordinariamente. Actualmente, el HTML también ha evolucionado y existen otros lenguajes de marcado más modernos y con más opciones.

Entonces, “HT”, las dos primeras letras de la sigla significan “HiperTexto”. Porque el HTML no es cualquier lenguaje de marcado, sino uno para navegar en el océano de la Web, cuyas rutas son guiadas básicamente por el hipertexto, en forma de enlaces.

HTML, entonces, es una sigla para “Lenguaje de marcado de hipertexto”. Y ahora sí puedes comprender lo que eso significa. (¡Espero!) :-D Y así, con esta parte completamos la aclaración del término HTML.

Entonces… ¿para qué necesitas saber algo de HTML?

Ahora sí puedes hacerte la pregunta teniendo la posibilidad de responderla. Actualmente, existen miles de programas que le permiten a la gente ser completamente analfabeta en HTML y aún así poder hacer páginas web y blogs, por ejemplo.

WordPress tiene un magnífico editor visual que da muchísimas posibilidades a un principiante. Pero tiene algunos límites. Si conoces algo de HTML, puedes ir más allá de estos límites. Con mucha mayor razón en el caso de una página web. Si conoces HTML, puedes “hablar con el navegador”, para que tu página quede exactamente como tú quieres. Si no, estás limitado a las opciones que te brindan las “páginas al instante” que te ofrece tu servicio de hospedaje.

Tal vez dirás que tienes un programa especial que permite construír páginas Web con un sistema llamado “WYSIWYG”: sigla de “Lo que ves es lo que obtienes” (del inglés What you see is what you get), que funciona de manera similar, aunque mucho más sofisticada, que el editor visual de WordPress. Si es así ¡felicidades! son muy útiles y brindan miles de posibilidades de diseño, especialmente los de la casa Adobe. Pero…..

Sí, hay un pero. Si cometes un error, o si algo te sale mal, no tienes posibilidad de arreglarlo si no conoces HTML.

Sucede como con un automóvil. ¡Necesitas mínimamente saber cambiar una rueda pinchada! Por otra parte, mientras más conoces sobre el funcionamiento de tu automóvil, mejor te funciona, mejor puedes controlarlo y mejor te relacionas con él. Y, aunque no lo creas, si no sabes cómo arreglar una rueda pinchada ¡es más probable que se te pinche que si sabes cómo! ¡En serio!

En toda mi vida, este tema ha sido el único sobre el que he hecho un curso en lo que tiene que ver con computadoras. Ha sido el único tema en el que me sentí incapaz de aprender por mí misma. Tuve la inmensa fortuna de conocer al mejor profesor del mundo, Daniel Matos, que no sólo conoce Y USA la Tecnología de Estudio para enseñar, no sólo conoce informática (entre otros temas) al derecho y al revés, sino que ¡le fascina enseñar! No se encuentran fácilmente personas con esas calificaciones, al menos en nuestro país.

Bueno, pues, la primera pregunta que tuvo que responderme el Profesor Daniel fue precisamente ésa: “¿Para qué?” Y su respuesta fue aproximadamente todo lo que te acabo de explicar en los párrafos anteriores. Pero, naturalmente, no la reproduzco acá porque “él me lo dijo”… ¡Dios me libre! Sino porque muchos años de práctica me han demostrado que tenía absoluta razón.

L. Ronald Hubbard desarrolló un concepto vital, llamado el Triángulo KRC, que explica el porqué de lo anterior (y de munchísimos otros fenómenos en la vida). Los tres vértices de este triángulo son: K, de Conocimiento (del inglés Knowledge); R, de Responsabilidad y C, de Control. Es un triángulo, porque estos 3 elementos se interrelacionan y dependen unos de otros. Si uno “sube” o aumenta, igualmente aumentan los otros dos. Si uno “baja” o disminuye o se bloquea, igual sucede con los dos restantes.

Por esa razón, no puedes ser responsable de algo, ni mucho menos controlarlo, si no sabes nada sobre ese algo. De igual modo, no puedes controlar o conocer algo si no estás dispuesto a asumir un mínimo de responsabilidad sobre él. Y por el contrario, si estás dispuesto a saber cada vez más sobre algo, inevitablemente vas a asumir una responsabilidad cada vez mayor sobre ese algo y tendrás entonces mayor y mayor control sobre ello.

Pienso que por el lado del KRC también va la respuesta a la pregunta que da el título a esta entrada.