From 7c49013fee75ca05a833d557fe83c165b2f4ffc2 Mon Sep 17 00:00:00 2001 From: alex Date: Mon, 7 Sep 2026 14:12:21 +0200 Subject: Major flesh out pass --- .../mi-historia-de-la-programaci\303\263n.gmi" | 92 ++++++++-------------- 1 file changed, 33 insertions(+), 59 deletions(-) diff --git "a/blog/content/notas/tecnologia/mi-historia-de-la-programaci\303\263n.gmi" "b/blog/content/notas/tecnologia/mi-historia-de-la-programaci\303\263n.gmi" index fc3fcba0..87b4c03a 100644 --- "a/blog/content/notas/tecnologia/mi-historia-de-la-programaci\303\263n.gmi" +++ "b/blog/content/notas/tecnologia/mi-historia-de-la-programaci\303\263n.gmi" @@ -1,16 +1,20 @@ # Mi historia de la programación +(Secciones a considerar: máquinas recreativas.) + Cuando tenía cuatro años, un Commodore 64 apareció en casa. A mi madre le gustaba explicar cómo ese día ni mi padre, ni mi hermano, ni yo comimos. Es una buena historia porque era un presagio de lo que iba a venir. En este texto quiero hablar de los ordenadores programables, un invento significativo de la humanidad. Hablaré de sus antecedentes, de sus manifestaciones primitivas y de los largos linajes, pero también de los indicios de su decadencia. -Llamo a esto mi historia de la programación porque la cuento desde mi experiencia personal, mis puntos de vista y con la narrativa que yo veo. Los ordenadores programables han tenido una gran influencia sobre mí y quiero intentar explicar porqué creo que ha sido así. Además, creo que podemos aprender de la historia que quiero contar y actuar para que los frutos de los ordenadores programables sigan nutriéndonos por mucho tiempo. +Llamo a esto mi historia de la programación porque la cuento desde mi experiencia personal, mis puntos de vista y especialmente, la narrativa que veo. Los ordenadores programables han tenido una gran influencia sobre mí y quiero intentar explicar porqué. Además, creo que podemos aprender de la historia que quiero contar y actuar para que los frutos de los ordenadores programables sigan nutriéndonos por mucho tiempo. De momento, este texto es un esquema con emplastes de entradas de mi blog sobre estos temas. Espero con el tiempo poder convertirlo en un texto lineal y engarzado. ## La prehistoria -Desde mucho antes que los ordenadores, la humanidad ha hecho cálculos. Para las operaciones que no podemos memorizar o que no nos resultan obvias, a menudo buscamos procedimientos para realizarlos a partir de pasos bien definidos. +Desde mucho antes que los ordenadores, la humanidad ha hecho cálculos. De hecho, en español además de la palabra ordenador, también usamos la palabra computador o computadora para estos aparatos. Antes de los ordenadores, los computadores y las computadoras eran las personas que se dedicaban a realizar cálculos, que precisamente fueron sustituidas por los ordenadores. + +Para las operaciones que no podemos memorizar o que no nos resultan obvias, buscamos procedimientos para realizarlos a partir de pasos bien definidos. Por ejemplo, para sumar dos números grandes, los escribimos alineados y sumamos las cifras de derecha a izquierda. También disponemos de procedimientos similares para otras operaciones matemáticas como la multiplicación o división. @@ -18,7 +22,7 @@ Estos procedimientos son algoritmos, que fueron una gran motivación en el desar Los matemáticos han ido inventando algoritmos más complejos con el paso del tiempo. Por ejemplo, para calcular el máximo común divisor de dos números se usa el algoritmo de Euclides (que probablemente no fue inventado por Euclides). En este algoritmo, vamos dividiendo los dos números de los que queremos calcular el máximo común divisor y repitiendo los pasos sustituyendo el número más grande por el resto de la división. -Estos algoritmos se pueden realizar en lápiz y papel, pero conforme vamos tratando con datos de mayor tamaño, realizarlos a mano es cada vez más costoso y con mayor probabilidad de error. +Estos algoritmos se pueden realizar en lápiz y papel, pero conforme vamos tratando con datos de mayor tamaño, realizarlos a mano es cada vez más costoso y con mayor probabilidad de error. De hecho, hoy nos sorprenderíamos con los cálculos que se realizaban a mano; hasta la carrera espacial de los sesenta dependía del trabajo manual de las computadoras. Quienes necesitaban realizar estos cálculos buscaban maneras de acelerarlos y hacerlos de una manera más automática. Por ejemplo, los ábacos son instrumentos que automatizan el cálculo de operaciones aritméticas simples. @@ -34,31 +38,27 @@ A pesar de que la máquina analítica tal como la diseñó Babbage todavía no h => https://alex.corcoles.net/2011/11/hazanas-informaticas-v-las-maquinas-de-turing-y-von-neumann Hazañas informáticas V: Las máquinas de Turing y Von Neumann -=> https://es.wikipedia.org/wiki/Mecanismo_de_Anticitera [1] El mecanismo de Anticitera - ## Ordenadores como habitaciones (primera parte) -(Notas de puntos a tratar: estos ordenadores sólo eran accesibles a grandes empresas y universidades. Pero pronto [y más en la posterior era UNIX] se podrían programar casi como hoy en día.) +En 1936, Alan Turing, uno de los padres fundadores, describió una sencilla máquina teórica que consiste en un cabezal situado sobre una cinta (infinita) que contiene símbolos. El cabezal puede desplazarse por la cinta, leyendo y escribiendo símbolos. La máquina se rige por un estado y una tabla que según el estado actual, el signo que lee el cabezal, describe si el cabezal debe sobreescribir el símbolo actual y desplazarse. -En 1936, Turing, uno de los padres fundadores, describió una sencilla máquina teórica que consiste en un cabezal situado sobre una cinta (infinita) que contiene símbolos. El cabezal puede desplazarse por la cinta, leyendo y escribiendo símbolos. Esta máquina tiene un estado, y según lo que lee mediante el cabezal, puede alterar su estado, desplazarse y escribir. +Esta construcción simple (la definición formal más precisa que esta definición informal no es mucho más larga) es sin embargo muy flexible. Dada una definición de estados y comportamientos adecuados, la máquina de Turing puede realizar, por ejemplo, cualquier cálculo que se nos ocurra; dada una cinta con símbolos que describan números, puede sumarlos, multiplicarlos, etc. y en general, realizar cualquier computación que pueda realizar un ordenador de hoy en día. Esto tiene un primer interés; la máquina de Turing puede modelizar cualquier proceso informatizable, y por tanto, nos puede servir como base teórica para analizarlos- podemos describir una máquina de Turing (sus comportamientos, símbolos, movimientos, estados, etc.) que realice cualquier cálculo. -Esta construcción simple (la definición informal es de un par de líneas; la formal no es mucho más larga) es sin embargo muy flexible. Dada una definición de estados y comportamientos adecuados, la máquina de Turing puede realizar, por ejemplo, cualquier cálculo que se nos ocurra; dada una cinta con símbolos que describan números, puede sumarlos, multiplicarlos, etc. y en general, realizar cualquier computación que pueda realizar un ordenador de hoy en día. Esto tiene un primer interés; la máquina de Turing puede modelizar cualquier proceso informatizable, y por tanto, nos puede servir como base teórica para analizarlos- podemos describir una máquina de Turing (sus comportamientos, símbolos, movimientos, estados, etc.) que realice cualquier cálculo. - -Sin embargo, podemos dar un paso más allá. Dado que podemos realizar cualquier operación computable con una máquina de Turing, esto nos lleva a decir que podríamos programar una máquina de Turing de manera que interprete los símbolos en su cinta como la descripción de una máquina de Turing- con los comportamientos del cabezal, sus estados, los símbolos etc.; y luego colocar más allá en la cinta los datos que queremos que procese. Es decir; podríamos describir el proceso de suma y luego colocarle unos números para que sume. Esta máquina de Turing podría, sin variar su programación y sólo cambiando los símbolos impresos en la cinta, realice cualquier cosa que pueda realizar una máquina de Turing- es decir, podemos obtener una máquina de Turing única "universal"- cuya programación le permite realizar cualquier cálculo computable. +Sin embargo, podemos dar un paso más allá. Dado que podemos realizar cualquier operación computable con una máquina de Turing, esto nos lleva a decir que podríamos programar una máquina de Turing de manera que interprete los símbolos en su cinta como la tabla de una máquina de Turing- con los comportamientos del cabezal, sus estados, los símbolos etc.; y luego colocar más allá en la cinta los datos que queremos que procese. Es decir; podríamos describir el proceso de suma y luego colocarle unos números para que sume. Esta máquina de Turing podría, sin variar su programación y sólo cambiando los símbolos impresos en la cinta, realice cualquier cosa que pueda realizar una máquina de Turing- es decir, podemos obtener una máquina de Turing única "universal"- cuya programación le permite realizar cualquier cálculo computable. Este proceso mental teórico nos sugiere una cosa interesante- podemos construir una máquina que a partir de unos "datos" (en este caso, unos símbolos en una cinta) que describen el cálculo a realizar y los datos en sí, realice cualquier operación que podamos describir- en efecto, una máquina "programable". Una vez más, esto tiene un interés teórico considerable, pero obviamente una máquina que procese una cinta infinita, leyendo y escribiendo símbolos de ella no parece algo muy práctico (y de hecho no lo es). -Paralelamente a las elucubraciones de Turing, otros científicos que trabajaban en máquinas de computación llegaban a ideas similares; Konrad Zuse en Alemanía y Eckert y Mauchly en EEUU comenzaron a elaborar máquinas con conceptos de programabilidad; Zuse, aburrido de realizar cálculos en su trabajo como ingeniero aeronáutico, creo el Z1, de programabilidad limitada y funcionamiento problemático en 1938, seguido del Z2 en 1939 y finalmente el completamente programable Z3 en 1941. Eckert y Mauchly trabajaban en el proyecto EDVAC, para crear una máquina para calcular trayectorias de artillería, al que se unió John Von Neumann en 1944. Se acredita a Von Neumann con la primera descripción "práctica" de una máquina programable ampliamente conocida publicada en 1945, que explica lo que ahora se conoce como arquitectura de Von Neumann. +Paralelamente a las elucubraciones de Turing, otros científicos que trabajaban en máquinas de computación llegaban a ideas similares; Konrad Zuse en Alemanía y Eckert y Mauchly en EEUU comenzaron a elaborar máquinas con conceptos de programabilidad; Zuse, aburrido de realizar cálculos en su trabajo como ingeniero aeronáutico, creo el Z1, de programabilidad limitada y funcionamiento problemático en 1938, seguido del Z2 en 1939 y finalmente el completamente programable Z3 en 1941. Eckert y Mauchly trabajaban en el proyecto EDVAC, para crear una máquina para calcular trayectorias de artillería, al que se unió John Von Neumann en 1944. Se acredita a Von Neumann con la primera descripción "práctica" de una máquina programable ampliamente conocida publicada en 1945, que explica lo que ahora se conoce como arquitectura de Von Neumann. La arquitectura de von Neumann es en sí muy parecida a la máquina universal de Turing, pero con una implementación física mucho más realizable- un procesador con unidades capaces de realizar cálculos aritméticos y de almacenar pequeñas cantidades de información, una memoria que almacena datos y programas, dispositivos de entrada y salida (teclados, pantallas, etc.) y lo que une a todos; el hecho de que el procesador lee instrucciones de su memoria y las va ejecutando, leyendo y modificando datos de la misma memoria y interactuando mediante sus dispositivos. Las máquinas con arquitectura de Von Neumann eran infinitamente más versátiles que las máquinas de propósito único anteriores- eran programables y eso hacía que cualquier problema se pudiese afrontar con un programa nuevo, y que las mejoras en potencia de estas se verían traducidas en mejoras en la resolución de todos los problemas- máquinas potentes podrían resolver problemas más complejos y más grandes en menos tiempo. -Las primeras máquinas de Von Neumann tenían el tamaño de habitaciones y su programación era infinitamente tediosa y muy diferente a la programación que conocemos hoy en día. Inicialmente se programaban mediante las tarjetas perforadas usadas por los telares automáticos y que Babbage propuso para su máquina analítica. Es decir, el programador no usaba el ordenador para escribir el programa, lo confeccionaba a mano con papel y lápiz, lo traducía a tarjetas perforadas que entonces se introducían en el ordenador para producir el resultado. +Las primeras máquinas de Von Neumann tenían el tamaño de habitaciones y su programación era infinitamente tediosa y muy diferente a la programación que conocemos hoy en día. Inicialmente se programaban mediante las tarjetas perforadas usadas por los telares automáticos y que Babbage propuso para su máquina analítica. Es decir, el programador no usaba el ordenador para escribir el programa, lo confeccionaba a mano con papel y lápiz, lo traducía a tarjetas perforadas que posteriormente se introducían en el ordenador para producir el resultado. -Estos fueron los primeros ordenadores programables, aunque aún eran muy diferentes de los ordeandores programables modernos. +Estos fueron los primeros ordenadores programables, aunque aún eran muy diferentes de los ordenadores programables modernos. Además, debido a su enorme coste, sólo unos pocos tenían acceso a ellos por pertenecer a universidades o grandes empresas que podían disponer de ellos. @@ -68,24 +68,16 @@ Además, debido a su enorme coste, sólo unos pocos tenían acceso a ellos por p ## UNIX -(Notas sobre puntos a tratar: todavía no estaban al alcance del público en general. Aparición del C que perdura hasta hoy.) - -Las máquinas programables fueron evolucionando. De tarjetas perforadas se pasó a teletipos y pantallas con lo que el proceso de uso de los ordenadores cambió. De limitarse a introducir programas en tarjetas perforadas y esperar los resultados, los sistemas con teletipos eran mucho más interactivos. Los programas para estos sistemas podían, por ejemplo, preguntar datos al operador y realizar cálculos sobre esos datos al momento. +Las máquinas programables fueron evolucionando. De tarjetas perforadas se pasó a teletipos y pantallas con lo que el proceso de uso de los ordenadores cambió. De limitarse a introducir programas en tarjetas perforadas y esperar los resultados, los sistemas con teletipo eran mucho más interactivos. Los programas para estos sistemas podían, por ejemplo, preguntar datos al operador y realizar cálculos sobre esos datos al momento o confeccionar los programas directamente sentados delante del teletipo. Nos centraremos aquí en el sistema operativo UNIX nació en 1970 en un laboratorio de Bell Labs, como sistema operativo para un videojuego implementado por un equipo de programadores aburridos en el proyecto Multics. Con el pretexto de adaptarlo para el procesado de textos, Thompson, Ritchie, Kernighan, McIlroy y Ossanna asentaron una de las dos familias de sistemas operativos que aún hoy pervive con cierta popularidad (la otra sería la familia de los 360 de IBM, que es más antigua aún). -UNIX se basa en conceptos sencillos- se implementa usando el lenguaje C (hijo del recientemente fallecido Ritchie) portable, simple y eficiente en un momento en que los sistemas operativos se implementaban directamente sobre el procesador, ligándolos al hardware para el cuál estaban diseñados y dificultando su desarrollo; un sistema de archivos jerárquico, cualidades de multiusuario y multitarea... todos ellos conceptos imprescindibles hoy en día. Además, introduce la filosofía Unix de programas pequeños comunicándose entre ellos- haciéndolo extremadamente versátil pero simple, una cualidad vital para ser extremadamente apropiado para gente como los programadores. +UNIX se basa en conceptos sencillos- se implementa usando el lenguaje C, portable, simple y eficiente en un momento en que los sistemas operativos se implementaban directamente sobre el procesador, ligándolos al hardware para el cuál estaban diseñados y dificultando su desarrollo. UNIX tenía muchas características que identificamos en los ordenadores actuales como por ejemplo un sistema de archivos jerárquico y la capacidad de ejecutar varios programas simultáneamente (incluso con multiples usuarios usando diferentes terminales). Si bien las herramientas eran más primitivas, son perfectamente reconocibles y usables por los programdores actuales. De hecho, los entornos actuales de programación todavía contienen herramientas con un linaje directo del UNIX de los setenta. -Pero más allá de ello, UNIX fue "pionero" en el hecho de que su código (junto con el de los compiladores del lenguaje C) fueran distribuidos libremente- la condena de las prácticas monopolísticas de AT&T impedían su comercialización y por contra forzaban a distribuirlo a quien lo pidiera. Si hoy en día es increíblemente costoso desarrollar un sistema operativo, en esa época primitiva, lo era aún más; y los sistemas operativos de la época eran por tanto costosos y, al ser no portables, sólo funcionaban en un determinado tipo de hardware. La distribución de Unix, por tanto, permitía a cualquiera aprovechar su código, adaptarlo al hardware que tenían y disponer de un sistema operativo potente por un coste relativamente bajo. +Sin embargo, aunque las máquinas que ejecutaban UNIX (y otros sistemas operativos de la época) eran menos gigantescas, seguían estando al alcance de muy pocos. Pero UNIX innovó en un aspecto que plantaría las semillas que ayudaron a que muchas décadas después, los entornos de programación más potentes estuviesen al alcance de mucha más gente. UNIX fue "pionero" en el hecho de que su código (junto con el de los compiladores del lenguaje C) fueran distribuidos libremente- la condena de las prácticas monopolísticas de AT&T impedían su comercialización y por contra forzaban a distribuirlo a quien lo pidiera. El desarrollo de sistemas operativos siempre ha sido increíblemente costos y en aquel entonces, al ser no portables, sólo funcionaban en un determinado tipo de hardware, incrementando las dificultades de obtener sistemas operativos para máquinas nuevas. La distribución de Unix, por tanto, permitía a cualquiera aprovechar su código, adaptarlo al hardware que tenían y disponer de un sistema operativo potente por un coste relativamente bajo. Lógicamente, mucha gente se sumó al carro- compañías comerciales que lo usaron o incluso lo extendieron y comercializaron (HP, Solaris, IBM, etc.; hasta Microsoft comercializaba su propio Unix hasta el 89). Pero el desarrollo quizás más importante se dio en universidades, particularmente en la de Berkeley en California. En el 83 AT&T quedó liberada de los corsés antimonopolistas y pudo comercializar Unix, movimiento con el cual los Unix no comerciales, y en especial el de Berkeley comenzaron a cobrar importancia, ya que eran los únicos que quedaban como libremente distribuibles. -Los sistemas comerciales siguieron su camino y perduran hasta nuestros días; HPUX, AIX y Solaris entraron en declive a principios del siglo XXI. - -Por otra parte, los sistemas académicos también siguieron su evolución paralela. Del código de Berkeley surgieron sistemas operativos como NetBSD, FreeBSD y OpenBSD. - -Sin embargo, aunque las máquinas que ejecutaban UNIX (y otros sistemas operativos de la época) eran menos gigantescas, seguían estando al alcance de muy pocos. - ### Referencias => https://alex.corcoles.net/2011/11/hazanas-informaticas-vi-el-sistema-unix Hazañas informáticas VI: el sistema UNIX @@ -96,7 +88,11 @@ Es muy difícil poner fechas e hitos a las cosas. Según la Wikipedia, a mitad d Entre los setenta y principios de los ochenta, fueron apareciendo más ordenadores personales que cada vez llegaban a más hogares. -Estos ordenadores eran infinitamente más baratos que los ordenadores más potentes que encontrábamos en las empresas y universidades y por tanto también eran mucho más limitados. De hecho, principalmente servían para videojuegos sencillos y pequeñas herramientas de productividad. Llamativamente, aunque se podía programar en BASIC u otros lenguajes en la mayoría de ellos, era extremadamente tedioso desarrollar programas desde la misma máquina y muchos de los videojuegos y programas más complejos se desarrollaban en ordenadores mucho más grandes y costosos. +Estos ordenadores eran infinitamente más baratos que los ordenadores más potentes que encontrábamos en las empresas y universidades y por supuesto también eran mucho más limitados. De hecho, principalmente servían para videojuegos sencillos y pequeñas herramientas de productividad. Llamativamente, aunque se podía programar en BASIC u otros lenguajes en la mayoría de ellos, era extremadamente tedioso desarrollar programas desde la misma máquina y muchos de los videojuegos y programas más complejos se desarrollaban en ordenadores mucho más grandes y costosos. + +El mundo de la programación evolucionó medio en paralelo entre los usuarios domésticos que disponían de implementaciones de BASIC primitivas o que programaban casi a la antigua en lenguaje máquina con herramientas muy primitivas o incluso manuales, frente a los programadores en sistemas del calibre de UNIX que disponían de herramientas mucho más poderosas para máquinas con muchísimas más posibilidades. + +Sin embargo, muchos de los programadores de los ordenadores personales de los 80 que nunca hubieran tenido acceso a ordenadores más potentes ya estaban cautivados por las posibilidades totalmente nuevas a las que les exponían los ordenadores personales. ### Referencias @@ -106,59 +102,37 @@ Estos ordenadores eran infinitamente más baratos que los ordenadores más poten En 1985, Commodore, la empresa que lanzó el ordenador personal más vendido de los 80, lanzó el Amiga 1000. El Amiga era un ordenador avanzado a su tiempo. En 1981 IBM ya había lanzado su primer PC (personal computer, ordenador personal) cuyo linaje todavía perdura hasta al menos el primer cuarto del siglo XXI. El IBM PC era marcadamente más potente que los primeros ordenadores personales y, por ejemplo, pronto dispuso de entornos de programación muy similares a los que se usan hoy en día y equiparables a los sofisticados entornos de programación de las máquinas UNIX y el resto de grandes computadoras de la época. -Sin embargo, el Amiga estaba todavía más cerca de las máquinas UNIX. Como estas, pero a diferencia de los primeros PC, su sistema operativo podía ejecutar varios programas simultáneamente. (La primera versión de Microsoft Windows de 1985 también tenía esta funcionalidad, pero Windows era un sistema operativo mucho menos usado en los PC que el MS-DOS; hasta 1990 Windows no tendría un éxito significativo.) +Sin embargo, el Amiga estaba todavía más cerca de las máquinas UNIX. Como estas, pero a diferencia de los primeros PC, su sistema operativo podía ejecutar varios programas simultáneamente, aunque con menos robustez que los sistemas UNIX con capacidades hardware y mayor evolución en este sentido. (La primera versión de Microsoft Windows de 1985 también tenía esta funcionalidad, pero Windows era un sistema operativo mucho menos usado en los PC que el MS-DOS; hasta 1990 Windows no tendría un éxito significativo.) Además, el Amiga contaba con unas capacidades multimedia (gráficos, sonido) que aunque hoy nos parecerían primitivas, no fueron igualadas por los PC hasta mucho más tarde. Con sus capacidades multimedia, el Amiga además tenía un gancho mucho más potente; permitía hacer música que hasta podía entrar en las listas de éxitos y dar unos videojuegos con poco de envidiar a los de los salones de máquinas recreativas. -El Amiga quizá sería el primer ordenador personal al alcance del gran público que nos resultaría en muchos sentidos equivalente a los ordenadores que conocemos. Junto con el IBM PC, fueron los primeros ordenadores programables con suficiente potencia para proporcionar un entorno de programación también como los actuales, con el que programar quedaba más al alcance de la mayoría de sus usuarios. +El Amiga quizá sería el primer ordenador personal al alcance del gran público que nos resultaría en muchos sentidos equivalente a los ordenadores que conocemos. Junto al vinieron otros sistemas, basados en el mismo procesador Motorola 68000 como los primeros Macintosh de Apple y el ST de Atari con capacidades similares. En conjunto con los PC, fueron los primeros ordenadores programables con suficiente potencia para proporcionar un entorno de programación como los que conocemos hoy, con el que programar quedaba más al alcance de la mayoría de sus usuarios. ## Los ordenadores personales de la era Internet -Windows XP salió en 2001. Mac OS X también. Me compré mi primer ordenador para usarlo exclusivamente con Linux en 2002. (Usaba Linux antes, pero "a tiempo parcial" y con bastantes dificultades.) - -En mi casa, en los noventa todavía usábamos el Amiga, pero estaba muriendo poco a poco. Aunque en algún momento tuve cierta interacción con el mundo de las BBS, no sería hasta 1997 cuando entré en la universidad que tuve algo de acceso regular a Internet. En 1999, creo que en casa fuimos de la primera oleada que se abalanzó sobre el ADSL, que era más o menos la primera opción ampliamente disponible para conectarse a Internet sin ocupar una línea de teléfono y con la famosa "tarifa plana" que suponía la rotura de una importante barrera psicológica. +En 2001, Windows XP y Mac OS X llegaron al mercado. Por esa época, Linux también comenzaba a ser más factible de usar. -Sobre cómo el acceso a Internet más o menos universal ha cambiado la sociedad ya se ha escrito mucho, pero esta mañana me ha venido a la cabeza su "coincidencia" con el gran cambio en los sistemas operativos "ampliamente disponibles". +También en esa época, según donde nos encontrásemos del globo, la gente comenzaba a poder acceder a Internet. Como los sistemas UNIX sobre los que Internet se construía en gran parte, hasta el momento la red que conectaba todo el mundo, hasta el momento estaba al alcance de unos pocos en ciertas empresas y universidades, pero por aquella época, las conexiones domésticas a Internet comenzaron a ser una realidad. -Pese a los móviles y demás, Microsoft sigue teniendo el sistema operativo dominante para ordenadores desde los noventa. Pero antes de XP, disculpadme, pero eran sistemas operativos muy malos. No tengo experiencias significativas con Windows antes de Windows 95, pero Windows 95 y 98 eran terriblemente inestables y molestos. Soy consciente de que 95 era una gran evolución sobre 3.11 y MS-DOS, pero para aquellos familiarizados con los Amiga (o los Atari ST, supongo, u otros sistemas que menciono luego), tampoco era tan impresionante. +Windows XP, Mac OS X y Linux acabaron de traer la robustez de los sistemas operativos del calibre de UNIX al usuario doméstico. Contaban con capacidades para ejecutar varios programas simultáneamente sin los problemas de los anteriores sistemas domésticos donde un defecto de un programa frecuentemente hacía caer todo el sistema. -Y de hecho, tampoco para nadie que estuviese familiarizado con el otro Windows. Hasta Windows XP era inaudito encontrarse con la familia Windows NT en las casas, sólo se usaba en ordenadores potentes y muy caros, pero me consta que mucho antes de Windows XP, las versiones anteriores de Windows NT eran muchísimo mejores que los Windows domésticos equivalentes. Los problemas eran dos; los mayores requerimientos de recursos (incluidos unos 8 ¡megas! más de memoría, que seguramente eran bastante caros en aquella época) y menor compatibilidad con aplicaciones domésticas... ¡sobre todo juegos! +Esta robustez era idónea para el uso de Internet, así como las mayores capacidades de hardware, brindando una experiencia bastante similar a la de hoy en día. -Y ese es el tema. Antes de 2000, había estaciones de trabajo con una experiencia de usuario "parecida" a la que nos sorprendía en el 2000; desde el NeXT (1988), pasando por los UNIX orientados a estaciones de trabajo (en la universidad podía usar sistemas Sun con Solaris que eran una maravilla) o quizá el OS/2 con cuya historia no estoy muy familiarizado. Pero todos ellos estaban fuera del alcance de los usuarios domésticos y seguramente no tenían el software necesario para ser útiles en estos contextos. (Y por supuesto, aunque los UNIX de los 90 tenían juegos, nada comparado a los juegos domésticos de la época, claro.) +Antes de 2000, había estaciones de trabajo con una experiencia de usuario "parecida" a la que nos sorprendía en el 2000; desde el NeXT (1988), pasando por los UNIX orientados a estaciones de trabajo o quizá el OS/2 con cuya historia no estoy muy familiarizado. Pero todos ellos estaban fuera del alcance de los usuarios domésticos y seguramente no tenían el software necesario para ser útiles en estos contextos. (Y por supuesto, aunque los UNIX de los 90 tenían juegos, nada comparado a los juegos domésticos de la época, claro.) -La otra dinastía es la del Mac. Pero el sistema operativo "clásico" de Apple anterior al OS X es según entiendo bastante bueno, pero con problemas de inestabilidad similares a los que tenía Windows antes de XP. La adopción de las entrañas de NeXT (un sistema bastante UNIX) es lo que llevó a Apple a tener un sistema operativo para este milenio. - -Linux apareció antes, en 1991. Pero no nos engañemos, aunque es discutible si hoy en día está preparado para el usuario doméstico, definitivamente si lo está, ha sido mucho más tarde de 1991. Y en mi opinión, el Linux "usable" coincide bastante con la llegada de XP y OS X. - -Seguramente no sea una coincidencia que la entrada del milenio trajese estos avances. Creo que todo el mundo que ha vivido el antes y el después de Windows XP y Mac OS X, lo marca como una de las transiciones más importantes. Desde luego, con la aparición de Internet y el incremento en el tiempo que pasábamos en nuestros hogares delante de un ordenador, era necesaria la aparición de sistemas operativos asequibles y robustos. Los avances en coste/potencia de los ordenadores llegaron al punto necesario para ellos, y seguramente las empresas comenzaron a ampliar la inversión en el mercado doméstico, que antes de Internet consistía mayormente de videojuegos. - -¿Hubiese sido distinta la historia con ciertos cambios? ¿Qué hubiese pasado si el hardware para mover Windows NT hubiese costado lo suficiente como para ponerlo en las casas? ¿O si Amiga o Atari no hubiesen implosionado? ¿O si OS/2 hubiese triunfado? Quizá Linux tal como lo entendemos hoy no existiría, pues creo que gran parte de su evolución se debe a las frustraciones de los Windows anteriores a XP. Quizá algún día un ejecutivo de Sun Microsystems tuvo la idea de fabricar un ordenador doméstico con Solaris, pero se le olvidó al salir de la ducha[1]. +Pero estos sistemas, junto con el acceso a todo el material sobre programación que había sido desarrollado en los sistemas UNIX durante décadas representó un salto cualitativo para muchos programadores. De repente no sólo disponían de entornos de programación punteros, sino que además tenían acceso código y materiales sobre programación que en épocas anteriores estaban al alcance de muy pocos. ### Referencias => https://alex.corcoles.net/2025/01/los-sistemas-operativos-y-un-amanecer-de-internet Los sistemas operativos y un amanecer de Internet -=> https://www.datagubbe.se/amix/ [1] Sobre los intentos de Sun Microsystems de sacar una estación de trabajo de bajo coste con Commodore basada en el Amiga. El proyecto acabo en el A3000UX que salió sólo con el impulso de Commodore en 1991. Por cinco mil dólares de la época tampoco cambió las cosas, pero bueno, que mi universo paralelo no estuvo tan lejos. - ## Los móviles -Desde el día (hace más de cuarenta años) en que pude escribir en un teclado y hacer aparecer letras en una tele, me han fascinado los ordenadores. Mucho antes de que apareciesen los ordenadores, existían máquinas que podían realizar tareas muy complejas y útiles, pero ninguna tan versátil como un ordenador, porque el ordenador es programable. - -Si lo pensáis, esto es lo que hace que los ordenadores hayan conquistado el mundo. Cualquiera puede coger un ordenador, aprender cómo funciona, aprender a programarlo y descubrir nuevas cosas que hacer con el aparato. Y así, se han convertido en una de las herramientas más versátiles que podemos tener. - -Pero después de la revolución del ordenador personal, llegó la revolución del smartphone. Tras la conquista del mundo por los ordenadores, está claro que los móviles le han comido la tostada a los ordenadores y se han hecho con su territorio. - -¿No es el móvil un ordenador? Sí y no. Sí, se puede programar un móvil (me da un poco igual que en general necesitas un ordenador para programar un móvil), pero cada vez menos. - -Poco a poco se van introduciendo medidas de control. Aunque Apple se lleva gran parte de la fama sobre dispositivos cerrados, Google no es que ande tan lejos. Llevo días trasteando intentando inspeccionar qué hace una aplicación de Android. Me encuentro capa tras capa de protecciones, problemas e impedimentos que hacen evidente que tenemos mucho menos control de los móviles que de los ordenadores. - -Hay justificaciones más o menos aceptables a algunas de estas medidas de control. Puede disgustarnos que los artistas quieran imponer restricciones al consumo de sus obras para ganar dinero con ellas, pero hay suficientes artistas que no lo hacen para que podamos escoger consumir sólo productos sin restricciones. - -Pero la aplicación que estoy inspeccionando no está en esta situación. Lo que quiero hacer no va a hacer perder dinero a la empresa que lleva la aplicación (si acaso, lo contrario); sólo circunvalar defectos de usabilidad que me irritan y que esta empresa no piensa corregir. Quizá esta empresa esté justificada en buscar ciertas protecciones, pero en mi opinión estas protecciones no tienen por qué pasar por trabas infinitas para que yo no pueda saber qué se está ejecutando en un dispositivo de mi propiedad. +Después de la revolución del ordenador personal y de Internet, llegó la revolución del smartphone. Ya con Internet asentado en el gran público, muchos marcarían 2007 y la introducción del iPhone como el momento en que comenzamos a tener en el bolsillo un dispositivo con acceso continuo a Internet. -Es complicado enmarcar esta discusión adecuadamente. Ya hace varias décadas que hay voces clamando contra estos movimientos. Y aunque hay críticas sin sentido, cada vez más hay mensajes que parecían disparates imposibles que han resultado ser previsiones milimétricas. +¿No es el móvil un ordenador? Sí y no. Sí, se puede programar un móvil, pero cada vez menos. Curiosamente, como los ordenadores personales de los ochenta, de momento es infinitamente más conveniente y común programarlos desde los ordenadores convencionales. -Siempre digo que si hubiese llegado al mundo no muchos años más tarde, no sé si hubiese recorrido el mismo camino. Me preocupa que la versatilidad del ordenador ya no reina. Conforme menos gente juega con máquinas programables, a menos gente se le ocurren cosas nuevas que nos hagan avanzar. +Además, poco a poco se van introduciendo medidas de control. Con justificaciones más o menos válidas sobre la seguridad (los ordenadores personales conectados a Internet nos han demostrado sobradamente de los riesgos que conlleva cosas como realizar transacciones monetarias o gestiones desde un ordenadore), pero también gracias al control de los móviles por un par de empresas privadas, los móviles suponen un entorno mucho más restringido. Con los ordenadores personales siempre hemos tenido una libertad casi absoluta sobre los programas que queremos ejecutar en nuestras máquinas que es muy distinta y reducida en los móviles. -Es cierto que hay problemas mucho más graves en este mundo, pero todos tenemos nuestras preocupaciones idiosincráticas y esta es una de las mías. Si os halláis en un cruce de caminos, y uno de los caminos lleva a más pérdida de control sobre nuestros ordenadores, si podéis escoger el otro camino, aunque os suponga una inconveniencia, os animo a que vayáis por la senda menos transitada. Creo que todos saldremos ganando con ello. +Nuestra relación con los móviles también es distinta a los ordenadores personales. Hasta los ordenadores portátiles más pequeños disponen de unas pantallas más grandes que la de cualquier móvil y tablet, y los teclados táctiles de los móviles son inútiles y tediosos salvo para los usos más limitados y breves. No sólo olvidémonos de programar en estos dispositivos, sino de cualquier tipo de actividad exigente. Los móviles y tablets nos llevan un poco al pasado de los ordenadores de los ochenta, sobre todo utilizados para juegos y otras actividades de ocio. ### Referencias -- cgit v1.2.3