Como funciona la programación
Hardware y Software
Dentro de los miles de conceptos que puedes encontrar en la computación existen dos que son claves para poder direccionar el conocimiento a un resultado óptimo. El Hardware y el Software. Ambos son pilares en esta materia, por un lado el "Hardware" el cual alude a los aparatos físicos y el "Software" que hace referencia a los programas que son ejecutados por dichos artefactos.
Hardware
Cuando hablamos de hardware se hace muy fácil dar una explicación, ya que aquí debemos hacer referencia a algo físico y tangible. Aquí podemos mencionar muchos componentes como el mouse, el teclado, la pantalla, la impresora, la tarjeta de sonido, la tarjeta de red, la memoria RAM, el disco Duro, el CPU, etc. Cada uno de estos artefactos tiene funciones meánicas manejadas por circuitos eléctricos. El hardware es uno de los conceptos más antiguos y fáciles de entender o asimilar.
Software
Cuando hablamos de software se nos presenta un gran problema ya que al no ser algo físico es muy difícil hacer que la gente comprenda que es en realidad. Este concepto que apareció poco después que el hardware es definido por la wikipedia como un conjunto de programas y rutinas que permiten a una computadora realizar determinadas tareas. Esta definición si bien cumple con su objetivo básico, no deja en claro que significa realmente. La ignorancia acerca de este concepto es tan grande que incluso dentro de los mismos informáticos son muy pocos los que realmente comprenden o pueden crear software.
Interacción de conceptos
Antes de comenzar a sumergirnos dentro de este oceano abstracto y tedioso vamos a tratar de entender de manera muy resumida como es que interactuan ambos conceptos y para ejemplificar lo veremos con una acción muy común: encender una computadora.
Cuando presionamos el botón de encendido, se hace un llamado a lo podríamos definir como el primer software en ser ejecutado. Este software de bajo nivel y que interactúa directamente con el hardware y los circuitos electrónicos se les llama "Firmware" y en el caso de las computadoras de escritorio o portátiles es posible configurarla mediante el sistema básico de entrada y salida conocida como BIOS. Este software obtiene diversa información, como por ejm, donde imprimira la visual de lo que está recibiendo la máquina. Aquí veremos una interacción entre la placa madre y la pantalla la cual mostrará algo típico como una pantalla negra con algo de información muy rara, pero una de las cosas principales es que dentro de todo ese proceso, se obtiene la información de donde debe iniciar la máquina, por defecto está configurada para iniciar desde un hardware conocido como el Disco Duro Maestro, pero podría tambien ser configurado para iniciar desde otro Disco Duro, un CD-ROM, un Pendrive o incluso una memoria Flash. Una vez que obtiene dicha información, en este caso el Disco Duro, se crea otra conexión física mediante cables conectores y hace una especie de llamado al sofware de arranque, que en lo habitual es otro software conocido como "Sistema Operativo" el cual será cargado en la memoria RAM, otro hardware, la cual finalizará cuando haya cargado lo que conocemos como Escritorio.
Con esta muy resumida descripción podemos entender que estos conceptos interactúan entre sí como si fuera una conversación. Lo hacen para poder cumplir sus propósitos y cada uno está destinado a una función específica. Algunos para almanenar datos, otros para transferir datos, otros para procesar datos, en fin. Todo funciona en base a datos y el software es el concepto global que encasilla cualquier sistema digital. A continuación veremos como se clasifica el software desde lo más utilizado por la gente hasta lo utilizado sólo por desarrolladores. Esto para ir pasando de lo práctico a lo abstracto.
Clasificación del Software: Software de Aplicación
El software de aplicación es el que utilizan los usuarios finales, aquí podemos encontrar programas como Word, Excel y Power Point que son orientadas a la ofimática o trabajo de oficina. También encontramos programas educativos como la antigua encarta y las enciclopedias virtuales. También caben los videojuegos, programas médicos, empresariales, las bases de datos y los navegadores web. La mayoría de los programas que utilizamos a diario pertenecen a esta categoría.
Clasificación del Software: Software de Sistema
El software de sistema es el que utilizan administradores y usuarios más experimentados. Aquí encontramos los sistemas operativos, los controladores o drivers que permiten la enteracción de la máquina con los hardwares externos, también encontramos las herramientas de diagnóstico, de corrección y de optimización, los servidores y muchos otros más. Todos orientados a la mantención y mejora del sistema.
Clasificación del Software: Software de Programación
El software de programación es el más complejo y abstracto para los usuario normales ya que son los que permiten crear nuevos softwares. Aquí encontramos editores de texto, compiladores, interpretadores, enlazadores, depuradores, y otros, que aportan al programador herramientas que automatizan tareas ya predefinidas en la creación de un programa. Afortunadamente nadie tiene que aprender de memoria de que tratan estos conceptos, ni tampoco tendrán que interactuar con todos ellos para crear un programa, a lo largo de los años estos han ido evolucionando para abstraer a las personas de ciertas funciones ya estandarizadas por lo que hoy en día lo más importante es aprender a utilizar un lenguaje de programación.
El lenguaje de Programación
El mayor desafío de un programador radica en saber comunicarse con una máquina. Al igual que una conversación alguien habla y otro escucha, un informático interactúa con la máquina, espera una respuesta y avanza en su desarrollo. El lenguaje es un concepto que trasciende al ser humano, independiente que no podamos entender todo los lenguajes, sabemos que los animales también se comunican entre sí, y así mismo en informática existen los lenguajes. Estas son las herramientas que nos permiten crear más soluciones digitales, nacieron gracias a programadores que estandarizaron códigos para no volver a repetirlo, algo que con el tiempo se fueron transformando en pequeñas librerías digitales y que posteriormente fueron dando origen a algún lenguaje de programación. Son muchos los lenguajes que existen, algunos similares entre sí, otros muy diferentes a todos, algunos con propositos muy parecidos y otros con propositos muy exclusivos. El lenguaje de programación es un concepto que nace como consecuencia del software.
El archivo
Si bien el lenguaje de programación abre la puerta a muchos otros conceptos, uno de los más importantes y que permiten seguir sumergiendonos en este oceano es el del archivo o fichero digital. A medida que el software se fue desarrollando nació la necesidad de agrupar los códigos y/o resultados en grupos completamente independientes de otros, recordemos que toda información almacenada está en unos y ceros y por ende se hizo necesario buscar un divisor que permitiera a la máquina detectar cuando iniciaba o terminaba un fichero digital. Los archivos digitales suelen tener un nombre alfanumérico, finalizar con un punto y algo más que corresponde a la extensión del archivo, algo así como un apellido. Dentro de los tipos de archivos más conocidos encontramos el doc para los archivos word, el ppt para los de power point, xls para archivos excel, jpg para imágenes, gif para imágenes con movimiento, png para imágenes con transparencia, pdf para documentos portátiles, mp3 para audios, mp4 para los videos y así muchos otros más. Los archivos tienen múltiples propositos y gracias a estos se hizo posible la diversificación de funcionalidades.
HTML
A inicios de los años 90' el internet comenzó a masificarse por todo el mundo, durante los primeros años comenzaron aparecer las primeras páginas web, y a mediados de esta década las páginas se hicieron cada vez más dinámicas, se incorporaron mejoras visuales con imágenes y posteriormente sonidos y videos. Una de las principales tecnologías implementadas fue la del HTML o lenguaje de marcas de hipertexto, que mediante texto permitía describir un documento el cual mediante un software conocido posteriormente como navegador web permitiría renderizar o visualizar los documento formateados, permitiendo distinguir títulos, subtítulos y parrafos, un gran avance que al poco tiempo revolucionó nuestra forma de informarnos y comunicarnos.
Definitivamente faltan muchos otros conceptos, pero al menos con esta pequeña introducción podremos ir avanzando en este oceano abstracto de lógica digital.
Escrito por Jcalderon