El inicio de la era de la línea de comandos (1999)
(web.stanford.edu)- Los sistemas operativos alguna vez parecían código inmaterial difícil de vender, pero después de Microsoft y Apple se convirtieron en productos que el público elige y paga, así como en una identidad cultural
- La GUI envolvió bytes y archivos en metáforas como escritorio, documento y papelera, haciendo la computadora más accesible, pero cuando la metáfora oculta el funcionamiento real, los errores y la pérdida de datos se vuelven más opacos
- Windows y MacOS crearon un mercado enorme, pero los sistemas operativos cerrados y el monopolio del hardware contrastan con el crecimiento de los Unix de código abierto y del ecosistema de PCs de bajo costo
- Linux expone el interior del sistema mediante la línea de comandos, código fuente público, bases de datos públicas de errores y archivos de configuración ASCII, pero ese poder deja fatiga geek (Geek fatigue) en el usuario cotidiano
- BeOS ofrecía una salida intermedia al dar una GUI nueva junto con una terminal basada en POSIX, pero en el mercado de los sistemas operativos la supervivencia depende tanto del mindshare y del ecosistema de drivers como de la tecnología
Cómo el sistema operativo se volvió un producto de masas
- Jobs y Wozniak crearon Apple con la idea de vender máquinas de procesamiento de información para el hogar, y Gates y Allen convirtieron en negocio algo que parecía todavía más extraño: vender sistemas operativos
- Un sistema operativo es una larga cadena de 1 y 0 con casi ninguna existencia física, pero Microsoft se convirtió en una empresa que lo vendía en masa, como Gillette vende rastrillos
- Los nuevos lanzamientos de sistemas operativos salían como blockbusters de cine, y hasta los usuarios comunes llegaron a entender la diferencia de que el software para Macintosh no corría en Windows
- El problema del monopolio de sistemas operativos de Microsoft se volvió objeto de medidas antimonopolio del Departamento de Justicia de EE. UU., y el debate PC versus Mac se convirtió en un tema cultural que llegaba hasta las relaciones personales
- En la analogía automotriz, Microsoft aparece como una empresa que vende la bicicleta llamada MS-DOS, la enorme station wagon llamada Windows 95 y el vehículo todoterreno llamado Windows NT, mientras Apple vende un sedán caro con el interior sellado
- BeOS sería el Batimóvil tecnológicamente avanzado, y Linux se parece más a un tanque que voluntarios regalan gratis
- El 90% de los clientes va a la tienda de Microsoft, y casi todo el resto elige Apple
- Linux gratis es poderoso, pero la gente duda porque “no sabe cómo darle mantenimiento a un tanque”
El costo de las metáforas creadas por la línea de comandos y la GUI
- En los primeros tiempos, usar una computadora implicaba un procedimiento formal con teletype, cinta de papel, módem y mainframe, y la división de roles era clara: los humanos interpretaban significados y las computadoras hacían aritmética con bits
- La interfaz de línea de comandos (Command Line Interface) nació de la forma de escribir una línea en un teletype y recibir respuesta; solo después de la aparición de la GUI recibió un nombre aparte
- Macintosh popularizó la GUI en 1984 y, con un diseño pensado para manejarse solo con mouse y sin línea de comandos, mostró una actitud de empujar a la CLI hacia la historia
- La GUI usa metáforas como archivos, documentos, ventanas, escritorio y papelera para explicar estructuras abstractas de datos
- Un archivo HTML, a diferencia del resultado visual de una página web, se parece más a un telegrama de texto que el navegador interpreta
- El navegador se compara con Ronald Reagan narrando un partido de béisbol imaginado a partir del contenido del telegrama
- Las metáforas de la GUI son prácticas, pero incompletas
- “document” en el mundo real significa un registro fijo, pero un documento en la computadora puede cambiar de estado antes y después de guardarse
- “save” se parece más a borrar la versión anterior y reemplazarla por una nueva versión con el contenido actual de la ventana
- Cuando un documento desaparece por un choque del sistema o por un problema eléctrico, el usuario sufre el metaphor shear, donde la metáfora y el funcionamiento real se separan
Microsoft, Apple y la lógica económica del código abierto
- Microsoft puede leerse como una empresa que lanza productos para maximizar el rendimiento para los accionistas más que por acabado estético o integridad
- Aunque Windows se vea mal o tenga defectos, si genera más ganancias la decisión puede justificarse desde la gestión
- La hostilidad hacia Microsoft aparece mezclando rechazo por “ser demasiado poderosa” y desprecio por “verse corriente”
- Apple mantuvo una estrategia de monopolio del hardware y controló el hardware en el que corría MacOS, por eso tuvo precios altos y una estructura sellada
- Esa política puede elevar la calidad de integración entre hardware, OS y software
- Al mismo tiempo, también opera la razón financiera de que Apple depende de los ingresos por hardware
- Macintosh era una máquina difícil de abrir y modificar para los hackers
- La esencia de un sistema operativo se parece más a una biblioteca de código de uso frecuente, y un sistema operativo cerrado entra en conflicto con el propósito mismo del sistema operativo
- Como la interfaz y el comportamiento del OS deben ser públicos para que los programadores los aprovechen, incluso si la implementación es secreta, el código que haga lo mismo puede volver a escribirse
- ProDOS reimplementa funciones equivalentes a MS-DOS
- En Linux, WINE recrea un entorno para ejecutar programas de Windows
- Unix fue implementado por distintas empresas como Sun, Hewlett-Packard, AT&T, Silicon Graphics e IBM
- La tecnología de sistemas operativos tiende a volverse gratuita con el tiempo, y aunque el negocio de OS de Microsoft sirvió como base para expandir el negocio de aplicaciones y la organización de investigación, a largo plazo se lo trata como algo que debería separarse
- Si Microsoft ata tecnologías nuevas como el navegador al sistema operativo para defender la cuota del OS, cuando esa cuota se tambalee también pueden venirse abajo sus otros negocios
La cultura de sistema que mostraron Linux y BeOS
- Linux es una de varias implementaciones de Unix, y empezó cuando Linus Torvalds comenzó en 1991 a escribir un kernel Unix para hardware compatible con PC usando herramientas GNU
- Las condiciones que hicieron posible Linux pueden resumirse en tres ejes
- Richard Stallman y GNU ofrecieron herramientas de desarrollo gratuitas
- Microsoft no hacía hardware y permitió que Windows corriera en PCs de múltiples fabricantes, haciendo crecer el mercado de PCs baratos
- Linus Torvalds inició su kernel sobre ese hardware y esas herramientas
- Unix es poderoso como un taladro “Hole Hawg”
- Ejecuta exactamente lo que se le indica, pero si el usuario no puede prever suficientemente el resultado, se vuelve peligroso
- Las herramientas pequeñas pueden fallar al intentar algo, pero el Hole Hawg es más peligroso porque cumple literalmente la orden con fuerza bruta
- Linux muestra al arrancar largos logs y mensajes de error en letras blancas, y aunque haya errores puede abandonar ese proceso y seguir avanzando
- Los primeros MacOS y los sistemas de Microsoft tenían dificultades para hacer varias cosas a la vez y su recuperación de errores era limitada
- Linux y otros Unix son fuertes en procesos paralelos y monitoreo de errores
- Debian expone a los usuarios los problemas y el proceso de resolución mediante una base de datos pública de bugs
- Debian Constitution: http://www.debian.org/devel/constitution
- Debian Bugs: http://www.debian.org/Bugs
- En enero de 1997, al enviar por correo un problema de Debian, en menos de 24 horas llegaron 5 correos con soluciones desde Norteamérica, Europa y Australia
- La experiencia de intentar instalar Windows NT 4.0 en la misma máquina llevó a una instalación interrumpida, una búsqueda en Microsoft Support que no funcionaba, un proceso Pay Per Incident que no lograba enviarse y números telefónicos que no conectaban
- Después, la búsqueda en Microsoft Support mejoró hasta permitir encontrar documentos bastante cercanos a reportes reales de bugs
- La información pública sobre errores tiene el efecto de obligar a Microsoft a reconocer que los bugs existen
- BeOS fue un sistema operativo diseñado desde cero para evitar el cruft acumulado en MacOS o Windows
- Be, Inc., fundada por Jean-Louis Gassee, creó desde inicios de los años 90 un nuevo OS incompatible con los existentes
- BeBox era una máquina exclusiva para BeOS con doble procesador y luces LED en el panel frontal
- Más tarde, BeOS se trasladó a Macintosh, clones de Mac e Intel PC
- BeOS tenía estructura orientada a objetos, paso de mensajes, multithreading y multiprocessing, y ofrecía línea de comandos mediante la aplicación Terminal
- Como cumple con POSIX, puede ejecutar compilador GNU, linker y utilidades GNU
- Incluso usando el editor de texto GUI Pe, es posible contar palabras con un comando Unix como
wc
El mindshare que mueve el mercado de los sistemas operativos
- En el mercado de sistemas operativos, el poder de Microsoft se parece más a un dominio del mindshare que a un monopolio en el sentido tradicional
- Linux es gratis y suele considerarse técnicamente superior
- BeOS se ofrece a un precio nominal
- Es distinto de los monopolios del pasado que controlaban físicamente los medios de producción o de distribución
- Microsoft ocupa una posición alta porque los fabricantes de hardware y software tienen que crear productos compatibles con Windows para ser tomados en serio en el mercado
- Como los fabricantes de hardware escriben drivers para Windows, Microsoft no necesita crear todos los drivers por sí misma
- Linux responde a esto con una comunidad capaz de programadores que escriben drivers gratis
- BeOS depende de sus propios drivers y de algunos drivers de terceros
- La GUI se volvió no solo una interfaz simple de PC, sino una metainterfaz de tecnologías de consumo como VCR, teléfonos móviles, TV satelital, cajas registradoras, terminales bancarias y Lego Mindstorms
- Si todo se envuelve en una GUI, resulta más difícil convertir pequeñas utilidades en programas independientes, y las funciones terminan absorbidas dentro de grandes paquetes como Microsoft Office
- El
wcde Unix basta como pequeño programa de línea de comandos, pero convertirlo en GUI exige mucho código y overhead de memoria - La función Basic de Microsoft Office podría dar a muchos usuarios una vía de acceso al hacking
- El
- La potencia de Linux agota al usuario porque exige archivos de configuración, línea de comandos, opciones, scripts y lectura de documentación
- La página man de
findtiene 11 páginas, y una conexión PPP necesita script de marcado, archivo de opciones y archivo de secretos - Si no se registran a mano los cambios de configuración, es difícil revertirlos
- El OS ideal se parece más a uno que ofrece una GUI bien diseñada junto con una línea de comandos a la que se pueda volver cuando haga falta
- La página man de
- En la metáfora final, la línea de comandos es una interfaz con la libertad y el riesgo de poder crear un universo, mientras que una GUI totalmente automatizada es una interfaz que reemplaza las decisiones de la vida con un solo botón
- La vida y la tecnología son difíciles y complejas, y ninguna interfaz puede cambiar ese hecho
- Si no quieres delegar tus decisiones, entonces el usuario tiene que elegir por sí mismo
2 comentarios
Opiniones de Hacker News
Este ensayo de Neal Stephenson se publicó por primera vez en 1999.
https://en.m.wikipedia.org/wiki/In_the_Beginning...Was_the...
La parte que compara los sistemas operativos con autos —por ejemplo, Windows como una station wagon y Linux como un tanque— volvió a aparecer recientemente en el episodio sobre Microsoft de Acquired; ahí compararon Vista con un Dodge Viper y Windows 7 con el Toyota Camry que los usuarios realmente querían.
https://slashdot.org/story/04/10/20/1518217/neal-stephenson-...
Aun así, la gente sigue sacando a relucir un texto de hace 25 años para ponerse por encima de los demás por ser usuarios de Linux. Algo como: “¡Yo uso un Hole Hawg! ¡Manejo un tanque! ¡Soy un hacker de verdad, distinto a ellos!”.
En cambio, Windows se convirtió en un auto con dos pantallas de 27 pulgadas en el tablero, mala experiencia de usuario y lleno de publicidad.
La comparación encaja bastante porque el Comet fue, en la práctica, el siguiente modelo del Edsel, solo con otra marca. El salto de Vista a 7 fue parecido.
No todo el mundo necesitaba la capacidad de carga pesada de una pickup, pero si querías evitar el tamaño y el costo de combustible, solo te quedaba el Pinto, que tenía modos de falla peligrosos. Más tarde, el Pinto desapareció y fue reemplazado por el Ford Taurus, un auto más o menos usable, pero sin nada especial en diversión ni rendimiento; además, por su diseño de transaxle, cuando fallaba había que desmontar toda la parte delantera para repararlo.
Y encima, por la presión de mercado de Ford, los diseñadores de infraestructura habían hecho que hubiera caminos por los que no podías circular o lugares a los que no podías ir si no tenías uno de esos tres autos; y si querías otra cosa, hasta se burlaban de ti.
Una gran ventaja de la interfaz de línea de comandos es que permite comunicar instrucciones o formas de corregir algo de manera muy concisa.
Si necesitas una solución conocida para un sistema Linux, basta con enviar el comando para copiar y pegar en la terminal. Pero una solución conocida para un programa gráfico de repente se vuelve mucho más difícil de comunicar. Hay que decidir si dar instrucciones en texto del tipo “haz clic en el menú hamburguesa y luego elige ‘preferences’”, o adjuntar varias capturas de pantalla con explicaciones.
Lamentablemente, no sé cómo comunicar gráficamente la acción de doble clic. Es un proceso que toma mucho tiempo y es propenso a errores, así que solo sirve cuando una app GUI con errores es, en la práctica, software abandonado.
Si no, es muy probable que en la nueva versión siga existiendo el mismo bug o el mismo procedimiento poco intuitivo, pero la GUI haya cambiado hasta quedar irreconocible. Tal vez porque algún gerente de algún lado leyó demasiados posts de HN y decidió que el refactor de cara al usuario era la tarea más importante.
https://support.microsoft.com/en-us/windows/record-steps-to-...
Dicho eso, si hubiera que expresar al estilo de fines de los 90 la ventaja central de una GUI frente a una UI de texto o la línea de comandos, sería que le exige menos al usuario. La diferencia entre “ver y hacer clic” y “recordar y escribir” parece muy fundamental.
Todavía no he visto una frase que exprese de forma tan concisa el compromiso de las UI de voz o las UI con LLM.
Algo como
{ select[i]@dropdown:states > click@button:submit }. Que todavía no exista un sistema así no significa que sea imposible. Basta con ver que los LLM, tan queridos hoy por la industria tecnológica, pueden hacer “cálculo visual” a partir de tokens, es decir, texto, para entender que cualquier representación puede terminar codificándose como texto.Entonces, la función de grabación de una GUI
apodría generar una codificación de acciones, enviársela por email a un colega que está viendo la GUIby hacer que la pegue.Si quisieras hacerlo de forma centrada en la GUI, las herramientas que realmente tendrías serían comandos de texto que instruyen acciones de GUI. Al final, eso agrega un paso intermedio más. Por ejemplo, si ya estás usando AppleScript, lo mejor sería ejecutar directamente el comando real que AppleScript está intentando rodear a través del sistema GUI.
Hay que volver a leerlo junto con Unix Haters Handbook https://web.mit.edu/~simsong/www/ugh.pdf
Creo que lo que necesitamos es un LispM recreado, una estación de trabajo Smalltalk, o una forma de convertir el sistema operativo en una sola aplicación. Debería ser un sistema en el que el framework esté abierto al usuario hasta el nivel más bajo, que permita por completo la programación por parte del usuario final, que sea explorable y esté totalmente integrado.
Como UI necesitamos una línea de comandos 2D, e incluso 3D/4D, algo cercano a una DocUI que pueda incluir 3D y elementos de video/multimedia. Como marco conceptual está http://augmentingcognition.com/assets/Kay1977.pdf
Sobre el pasaje original: “En este concesionario hay mecánicos. Si tu station wagon tiene un problema, puedes tomarte un día libre, traerlo aquí, escuchar música de ascensor durante horas en la sala de espera y pagar para que lo arreglen”, me viene a la mente una réplica de altavoz del estilo: “¡Si recibes un tanque gratis, voluntarios vendrán a tu casa mientras duermes y lo arreglarán gratis!”.
En la práctica, ¿en algún momento las distribuciones de Linux ofrecieron ese tipo de soporte? Probablemente habría sido algo como que un colaborador del proyecto entrara por ssh a mi computadora.
Mi impresión es que el argumento se parecía más a: “Tenemos un edificio entero lleno de manuales técnicos que explican cada perno y tornillo del tanque, y podemos copiártelos gratis. Si haces el esfuerzo suficiente para leerlos y memorizarlos todos, puedes arreglar y modificar el tanque tú mismo. Ya no tienes que depender de un concesionario de autos turbio. Si necesitas ayuda, ven a la reunión mensual de la comunidad y habla con gente tan obsesionada con los tanques como tú. Pero ven solo si estás lo bastante obsesionado con los tanques, y solo después de haber leído los manuales”.
Claro, eso fue hace décadas, y ahora la situación mejoró mucho.
También se ve que SuSE sigue existiendo, y uno puede imaginar cómo Canonical financia sus operaciones. Es soporte pago. El soporte de Linux es un gran negocio y es el motor que mantiene vivas a las distribuciones populares.
En la época, si el software comercial no funcionaba en mi computadora, había que comprar una nueva versión, y los parches gratuitos eran raros.
Normalmente la reacción esperable sería: “¡No te acerques a mi casa, raro!”. A menos que haya una confianza considerable, no dejaría que alguien entre a mi casa mientras duermo.
La reacción común real habría sido más bien: “Como es open source, puedes arreglar tú mismo lo que sea de tu tanque”. Si necesitas un módulo nuevo para conectarlo con otro dispositivo, lo haces tú mismo, como si no fuera gran cosa.
Si el navegador no maneja bien las líneas largas, se puede ver así:
wget -O - [https://web.stanford.edu/class/cs81n/command.txt](<https://web.stanford.edu/class/cs81n/command.txt>) | nroff | lessMi parte favorita para explicar los sentimientos de los usuarios de Unix/Linux hacia Windows es la expresión el Hole Hawg de los sistemas operativos.
Este ensayo debería ser lectura obligatoria para todos los estudiantes de ciencias de la computación y para cualquiera que quiera llamarse hacker.
Leí este texto durante la ceremonia de graduación de la universidad. Lo tenía escondido entre los pliegues de la toga, y fue lo más apropiado que podía hacer en ese momento.
De inmediato cambié el rumbo de mi vida y empecé a concentrarme en las ideas que planteaba este texto. El objetivo era mover el mundo con la línea de comandos, y casi lo logré.
Hay que pasar a Command Table.
Acabo de escribir una interfaz de línea de comandos para LLM casi puramente en Bash[1].
Por el argumento de este texto, apoyo el futuro de los LLM. La gente conversará con los LLM como conversa con un shell de línea de comandos, y todo estará basado en texto plano. También es la filosofía Unix. Si hubiera leído este texto antes de escribir el cliente CLI, creo que habría sacado muchas más ideas.
[1]: https://github.com/simonmysun/ell
¿Podría este texto ganar el premio al artículo republicado con más frecuencia en HN? Durante 17 años apareció, en promedio, dos veces al año.
https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu...
Las variaciones de título y URL también hacen que el conteo sea inestable.
Tengo este libro en tapa blanda. Probablemente lo leí antes del cambio de milenio.
Como fan de BeOS, me gustó especialmente la mención del Batimóvil.
The hole hawg.. ¿qué es eso?