Cómo pedirle cosas al ordenador
Resumiendo muchísimo esta parte solo comentaré lo que aprendí del gran Tanenbaum, acerca de la manera de acercarse al aprendizaje de una computadora. Una computadora es una máquina realmente compleja, aunque sus principios realmente son muy básicos, aunque básicos para unos es muy complicado para otros. En todo caso, lo que decía Tanenbaum, era que abordásemos el problema del funcionamiento de una computadora como una cebolla, por capas.
Una computadora, tiene muchas capas, y nos podemos enfocar en solo una de ellas, según nuestro interés o nuestro trabajo, o muchas de ellas si queremos ser verdaderos expertos en la materia. Pero normalmente lo suyo es solo centrarse en unas pocas, así el estudio de una computadora se puede enfocar desde cómo funciona su electrónica más básica, la creación de los propios microchips, una electrónica más general que llevaría a cómo se interconectan las distintas partes o a nivel de programación de los sistemas operativos, funcionamiento de las redes, o enfocarnos en por ejemplo desarrollar gráficos 3D o multimedia. Como digo, todo dependerá de nuestras necesidades y sí es verdad que a veces para trabajar bien en algunas de las capas es muy interesante saber algo de las demás, pero a día de hoy las computadoras son tan complejas y hacen tantas cosas que nadie las conoce todas.
Así, desde muy los inicios de la computación se desarrollaron lenguajes de programación que facilitaban la programación de las computadoras. Las primeras computadoras se programaban directamente accionando switchs y cambiando cables de sitio, pero posteriormente los programadores podía escribir una representación de estas acciones en un papel que luego traducían a una tarjeta perforada, y una vez introducida al ordenador digamos que hacía que el ordenador en sí accionase sus propios switchs y cambiase sus cables.
Los lenguajes de programación, al igual que la forma de introducirlos a la computadora y las mismas computadoras evolucionaron mucho alejando cada vez más al programador de la máquina física y sin tener que preocuparse de cómo funcionaba físicamente cada máquina.
En los años 70-80, donde ya tenían mucha complejidad y aún así eran muy más simples que ahora, se estipuló una clasificación para los lenguajes de programación según para qué capa estaban más enfocados.
- Lenguajes de bajo nivel. A veces también llamados lenguajes máquina, que están desarrollados para crear programas pequeños y eficientes y muy ligados al hardware de la computadora. Estos lenguajes dependen tanto del hardware que cada procesador por ejemplo tiene el suyo propio.
- Lenguajes de alto nivel. Son lenguajes más enfocados en crear aplicaciones más generalistas, además suelen ser portables, es decir, que el mismo código funciona en distinto hardware. Por esto, también son menos eficientes y de un tamaño mayor, y usan muchas abstracciones para que el programador no tenga que preocuparse de ciertas cosas de cómo internamente interacciona su software con el hardware donde funciona.
- Lenguajes intermedios. Estos lenguajes son lenguajes que principalmente funcionan como lenguajes de alto nivel pero se les puede incluir o tienen rutinas que trabajan a bajo nivel, pudiendo realizar cosas que con un lenguaje de nivel alto puro no se podría.
--------------------------------------------------------------------------------------------------------------------------
Si estás viendo este artículo desde un navegador web a través del proxi de flounder, aconsejo que accedas a la dirección de gemini usando un navegador compatible con este protocolo.
Gemini, es un protocolo minimalista que minimiza el uso de recursos del cliente y del servidor reduciendo las emisiones de carbono y además no permite el uso de programas que accedan a tu información personal, por lo que tu privacidad está asegurada.
Usa Gemini, salva al planeta, salva tus datos. Por un futuro mejor.
/informatica/emacs/cursos-elisp/curso-basico/