Si se eliminara todo el software del mundo, ¿qué cambios haría al reconstruirlo?

Creo que mi objetivo principal sería la simplicidad .

En este momento hemos introducido una gran cantidad de complejidad innecesaria en nuestras computadoras sin una buena razón. Tome un navegador web, si escribe uno desde cero, es casi imposible de implementar, es tan complejo que apenas se puede volver a hacer. Estoy hablando realmente desde cero, no puedes usar OpenSSL, no puedes usar FreeType, no puedes usar ningún analizador, tiempo de ejecución o pila de red existente, estoy hablando literalmente de que obtienes un compilador de tu elección y necesita escribir un navegador web con especificaciones de 2017.

Prefiero mis posibilidades de escribir un sistema operativo completo en lugar de escribir un navegador web, y creo que eso es absurdo.

Impide que la innovación tenga cosas tan complejas. Debido a que un navegador web es casi imposible de escribir desde cero, significa que cualquier sistema operativo GUI nuevo debe tener la capacidad de construir un navegador existente, por lo que inmediatamente estamos configurando la idea de que cualquier sistema operativo nuevo debe ser al menos vagamente similar a un sistema operativo que ya existe.

Por lo tanto, insistiría en la simplicidad, tal vez incluso a expensas del rendimiento (si fuera necesario, no hay evidencia de que el software simple tenga que ser lento). Algunas ideas son necesariamente complejas, y si la complejidad puede justificarse, no hay problema, pero si no puede, la idea se descarta.

Probablemente también quisiera hacer que las redes sean mucho más transparentes, básicamente hacer del eslogan de Sun “La red es la computadora” un objetivo real real. Creo que es sorprendente que Sun dijera eso probablemente hace 20 años, y todavía estamos tratando a la red como un “complemento” a la experiencia informática principal. Para algunas cosas estamos soportando HTTP, para otras API de Amazon S3 o Dropbox, o FTP o SFTP, o FTP / S o algún otro protocolo bueno para una cosa, basura para otra. La creación de redes creo que todavía se mantiene “al alcance de la mano” en informática y creo que eso es ridículo.

Digamos en Quora que alguien necesita ayuda con algo de programación, ¿por qué no puedo simplemente decir “muéstrame tu computadora” y puedo acceder a ella ahora mismo? Claro, hay Escritorio remoto, o GoToMyPC, o RDP, o VNC, o algo más, pero todo es muy arduo y bastante inútil si se trata de alguien que no tiene conocimientos de informática.

Me gustaría ver que las redes se conviertan en un verdadero ciudadano de primera clase en todas las plataformas informáticas, no en este complemento que todos dicen que les va bien (es decir, “la nube”), pero en realidad, todos están haciendo un trabajo sorprendentemente malo.

Me conmueve que tengas suficiente fe en la humanidad para pensar que reconstruiremos todo de la misma manera.

Interesante pregunta….

Todos estarían de acuerdo en que todo el software debería tener soporte nativo para Unicode, y luego no sucedería (porque oye, ¿quieres un emulador de terminal en dos meses o un emulador de terminal con Unicode en dos años?).

Estaríamos oscuros por mucho tiempo. Los terminales VT-100 arrancaron CGA, que arrancó EGA, VGA, y luego nos fuimos a las carreras con gráficos avanzados. Ya no tenemos muchos terminales VT-100, y la codificación manual del firmware necesario para ejecutar gráficos integrados llevará un tiempo.

Mientras hacemos eso, esta vez tendremos una hermosa discusión sobre cómo hacer que Internet funcione correctamente. No estoy seguro de cómo resolvemos el anonimato frente a la verificabilidad, pero tendremos mucho tiempo para resolverlo.

La plataforma de desarrollo elegida probablemente será la pantalla LCD Rasberry Pis +, solo porque se necesita un firmware mínimo. Y si esa es su plataforma de desarrollo, vi comienza a verse bastante atractivo como editor.

Los compiladores de C se regenerarán de forma natural. Quizás Fortran. R será uno de los primeros lenguajes de script. Habrá una gran demanda para el regreso de Excel, pero probablemente estamos a dos décadas de una reimplementación completa. (Estoy viendo una ilustración XKCD-ish: lenguajes de programación graficados por la cantidad de personas que los desean versus la cantidad de personas capaces de reimplementarlos).

Ah, y probablemente estaremos cavando 486 del vertedero. Se necesita software para hacer hardware, y la vida útil esperada de los procesadores que tenemos ahora no se mide en décadas. Pero me estoy alejando de la pregunta hecha …

Así que sí. Mucho desarrollo en silos hasta que Internet vuelva a funcionar. Mucha gente busca vender software a través de medios físicos. Probablemente, incluso los pintorescos virus del gestor de arranque reaparecerán. (¿Por qué alguien se molestó en escribirlas antes de que llegara Internet?)

Así que sí, busca que la historia se repita. Como especie, somos aprendices bastante lentos.


Pero, ¿qué cambiaría si tuviera el poder suficiente?

Haga que tor sea el protocolo de red predeterminado para todos en todas partes.

Y unicode.

No tengo conocimiento de los componentes internos de más de una fracción de un porcentaje del software del mundo, por lo que no sé qué cambiaría. El software, y esto significa el código fuente, desapareció.

Si estuviera a cargo de la reconstrucción, despediría a cualquiera que afirmara tener una gran visión para reconstruir todo el software, o para que se realicen cambios globales en la forma en que se construye el software.

En su lugar, dividiríamos y conquistaríamos, asignando pequeños equipos o individuos para clasificar cada pieza de software. Es posible que algunos programas no valgan el costo de la reconstrucción.

En una situación en la que todo el software desaparece, asumiría una deuda técnica masiva y un sesgo para que las funciones de los usuarios sean lo suficientemente seguras y lo suficientemente seguras, en lugar de la ingeniería de procesos o la informática.

Aun así, mucha gente moriría cuando los aviones cayeran del cielo, los suministros de agua se contaminaron irremediablemente, los dispositivos médicos fallaron, las telecomunicaciones dejaron de existir y las centrales eléctricas explotaron.

Si se eliminara todo el software, tendríamos un caos mundial de proporciones apocalípticas …

Y después de 50 años de dura guerra civil, genocidio y canibalismo, todavía habría personas que exigirían la compatibilidad con versiones anteriores de sus aplicaciones heredadas, porque nunca se sabe

  1. Diseñaría y usaría un tamaño de palabra agnóstico de CPU.
  2. Usaría un mejor sistema de fecha y hora y consideraría tipos de datos más grandes.
  3. Usaría un mejor esquema de numeración de direcciones basado en host. Todos sabemos que IPv4 ahora es insuficiente.
  4. Deshazte de la endianess.
  5. Deshágase del recuento de referencias de 1. Lo siento Pascal.