Imagina que el desarrollo de software se vuelve tan complejo y costoso que ya no se escribe software, solo se diseñan aplicaciones en herramientas de desarrollo.

En la informática convencional, la facilidad de uso generalmente se implementa como algo simple, pero oculta una gran complejidad en las capas subyacentes. Por otro lado, sistemas que en realidad son muy simples y elegantes pasan por parecer complejos apersonas no expertas.

Se dice que Steve Jobs afirmó que su intención era que su computadora personal fuera una bicicleta para la mente, pero lo que realmente nos vendió fue un tren para la mente, que solo va a donde las vías y las estaciones han sido colocadas por ejércitos de trabajadores.

"La principal diferencia entre algo que podría salir mal y algo que no puede salir mal es que, cuando algo que no puede salir mal sale mal, usualmente resulta imposible de reparar."

— Douglas Adams

Las empresas intentarán preservar el problema para el cual son la solución.

Siempre le digo a las personas que lo que las computadoras hacen mejor es agregar complejidad. Si estoy en una sala llena de profesionales de informática, creo que estoy en una sala llena de personas que, en su mayoría, se ganan la vida con lidiar con esas computadoras obesas. Si le preguntas a esas personas que hacen sus empresas, ¿qué dirían?.

"Vendemos software para limpiar basura que dejan tus programas. Vendemos software para manejar la creciente complejidad de tu software. Seguimos vendiendo actualizaciones más grandes de nuestro producto. Vendemos CPUs más grandes. Vendemos memorias más grandes. Vendemos un servicio para resolver los problemas de actualización de la gente. Vendemos PCs a personas que no los necesitan."

Los gerentes se horrorizan ante la sugerencia de que se venderá software impecable, las empresas obtienen contratos por mantenimientos posteriores.

Estamos condicionados a creer que los "gadgets" son para cualquiera como si de lluvia se tratara

El siguiente texto se encontró en un archivo en el disco de DawnOS, un sistema operativo que funciona en la máquina virtual Subleq:

Imagina una computadora que requiere mil millones de transistores para hacer parpadear el cursor en la pantalla. Imagina un mundo donde las computadoras funcionan con software escrito a partir de 400 millones de líneas de código fuente.

Imagina un mundo donde las 20 corporaciones tecnológicas más grandes, con un total de 2 millones de empleados y 100 mil millones de dólares en ingresos, se unen para introducir un nuevo estándar. Y son incapaces de escribir un compilador en 15 años.

Este es nuestro mundo actual.

La nube es solo la computadora de alguien más.

Un sistema distribuido es aquel en el que la falla de una computadora que ni siquiera sabías que existía puede dejar la tuya inutilizable.

El debate tuvo un interludio en el que Costanza le preguntó a Sussman por qué el MIT había dejado de usar Scheme para su curso introductorio de programación, 6.001. Esto fue una joya.

Dijo que la razón por la que eso sucedió fue porque la ingeniería en 1980 no era lo mismo que a mediados de los 90 o en el año 2000. En 1980, los buenos programadores pasaban mucho tiempo pensando y luego producían código escueto que creían que debería funcionar. El código corría cerca del hardware, incluso Scheme: era comprensible en todos sus niveles. Como una resistencia, donde podías leer las bandas y saber la potencia, la tolerancia, la resistencia y V=IR, y eso era todo lo que había que saber. El curso 6.001 había sido concebido para enseñar a los ingenieros a tomar pequeñas partes que entendían completamente y usar técnicas simples para componerlas en cosas más grandes que hicieran lo que querías.

Pero la programación ahora no es tanto así, dijo Sussman. Hoy en día te enfrentas a manuales incomprensibles o inexistentes para software del que no sabes quién lo escribió. Tienes que hacer ciencia básica con tus bibliotecas para ver cómo funcionan, probando diferentes entradas y observando cómo reacciona el código. Este es un trabajo fundamentalmente diferente y necesitaba un curso diferente.

Así que lo bueno del nuevo 6.001 era que estaba centrado en robots: tenías que programar un pequeño robot para que se moviera. Y los robots no son como resistencias, comportándose según funciones ideales. Las ruedas patinan, el entorno cambia, etc. Tienes que construir robustez en el sistema, de una manera diferente a la que discute SICP.

¿Y por qué Python entonces? Bueno, dijo Sussman, probablemente ya tenía una biblioteca implementada para la interfaz de robótica, eso era todo.

"Nuestros mejores planes
han fracasado,
nuestros castillos etéreos
se derrumbaron,
porque trazamos líneas
con precisión
y luego, con precisión, tropezamos.

-Piet Hein

Traducido del original:

https://wiki.xxiivv.com/site/stack.html


Regresar al índice

Este espacio es posible gracias a la comunidad texto-plano.xyz.