¿Cómo podría haberse desarrollado la web siguiendo la visión de Alan Kay de que un navegador es un mini sistema operativo y no solo una aplicación?

Echa un vistazo a la animada web de Dan Ingalls en: bienvenido. Puedes ver una demostración de la idea general que Kay buscaba. No es que se basara en la idea de Kay del navegador como mini-OS (no lo sé). Creo que lo que buscaba Ingalls era usar las capacidades de JavaScript para recrear la idea de un sistema autohospedado y autorreferencial con el poder que tenía Smalltalk (aunque usando JavaScript como el lenguaje del sistema), y que se puede ejecutar en la web, y puede acceder a los recursos en Internet de forma nativa como objetos, utilizando la ventana del navegador como un entorno de escritorio, un sistema operativo dentro de un sistema operativo.

De lo que habló Kay fue más de lo que Ingalls demuestra con Lively, como recibir documentos como objetos y crear documentos dentro del entorno del sistema operativo, y compartirlos / enviarlos a los destinatarios, donde se conservan la autoría (procedencia) y las restricciones de derechos, y que puede proporcionar acceso limitado al contenido, dependiendo de quién lo reciba, pero que puede proporcionar suficiente flexibilidad para que el espectador pueda estar a cargo de cómo quieren ver el contenido o cuánto quieren que se muestre en otro contenido que ellos mismos crean (que serían los propios objetos). Los documentos serían colecciones de objetos, no solo cualquier entidad de medios insertada en el texto, sino también el texto. Además, todas las entidades dentro del entorno son accesibles para otras entidades en el entorno, en el sentido de que si dos entidades están diseñadas para trabajar juntas de manera cooperativa, utilizando interfaces comunes, se puede hacer que trabajen juntas para realizar una tarea. También son accesibles para el código que al usuario del entorno le gustaría escribir.

Parecía hablar del navegador como si fuera un escritorio o un entorno de “campo de juego”, donde las entidades podrían ser manipuladas, si así lo desea.

Edición 13/06/2017: en respuesta a los comentarios de Alan Kay, y algunas investigaciones, revisé lo que dije aquí sobre seguridad.

Mientras digo esto, pienso en las preocupaciones de seguridad. De acuerdo con la idea de que los objetos pueden emular a cualquier otro objeto, pueden virtualizar la interfaz a los recursos del sistema, la implementación permite que los objetos se expresen completamente, pero limitan sus efectos reales en el sistema en general. De esta manera, uno no tiene que preocuparse por traer objetos externos que no sean de confianza. Una vez que el usuario ha tenido la oportunidad de “patear sus neumáticos”, puede permitir que formen parte del sistema más amplio, si así lo desean.

La idea general es que el navegador debería haber sido visto como un portal a objetos que viven en un entorno de red, y un espacio operativo para esos objetos. El propósito de esto es crear un entorno de autoría, no solo un entorno de consumo / participativo, uno que extienda la idea de la web más allá de los documentos en red, sino a entidades semánticas en red, y esas entidades podrían ser muy pequeñas, como un solo píxel en la pantalla, un solo carácter simbólico, una única forma geométrica o una ruta hecha de vectores. Con esto, se podrían crear todo tipo de medios, no solo los complementos que forman parte de la instalación típica de un navegador web.

Una de las quejas de Kay ha sido que puedes compartir texto, video y audio, aunque de manera bastante torpe, porque cada elemento de medios debe estar alojado en servicios separados, cada uno de los cuales requiere que tengas una cuenta con ellos antes de poder hacer algo, y no siempre puede incrustarlos en el contenido web de la manera que desee, dependiendo de dónde se unan todos estos elementos en un solo espacio multimedia alojado; pero no hay forma en la web de compartir una simulación, discutir una idea que implique muchas relaciones, lo que permitiría a los participantes inspeccionar sus partes y experimentar con ella para comprender mejor la idea. En el mejor de los casos, lo que uno podría hacer es tomar un video de la simulación y mostrárselo a la gente, pero eso no comprende el tema de lo que está hablando. El punto no es crear una dinámica donde uno muestre una idea y otros la acepten o la rechacen, y esas son las únicas opciones, sino permitir que la idea sea interrogada y permitir que se realicen experimentos al respecto. Esto es con lo que la web tiene problemas. Es en su mayor parte un medio productor / consumidor, porque esa es la forma en que fue diseñado: produzco algo, y usted lo toma o lo deja; aceptarlo o negarlo. No hay un punto medio en el que uno pueda interrogar a la entidad que se le da y decir: “Creo que esta parte es débil, debido a X, y puedo demostrar dónde falla, pero eso es muy bueno. Resiste bien todos los parámetros que conozco y / o me ha dado una nueva idea. ¿Qué hay de esto?

También puedo imaginar que dicho entorno podría adaptarse fácilmente para permitir el trabajo colaborativo, sin que el navegador tenga que ser programado por el proveedor del navegador para permitirlo, y luego los usuarios tengan que lidiar con las incompatibilidades del navegador, porque el navegador solo será el soporte entorno para objetos en red, proporcionando una arquitectura de servicio general para ellos. Mientras los objetos al menos sepan cómo comunicarse y realicen acciones semánticas en el sistema del navegador, sin que el navegador interprete demasiado lo que están haciendo, entonces es concebible que estos objetos puedan interoperar, llevando a cabo acciones equivalentes en diferentes plataformas

HyperCard casi nos lleva allí. También lo hizo OpenDoc.

Por otra parte, las cosas se ponen muy complicadas, muy rápidamente. La visión original de Ted Nelson de los hipervínculos era bidireccional, agradable en teoría (mucho más difícil de romper), pero mucho más difícil en la práctica (una referencia estática es mucho más fácil de implementar).

Supongo que las cosas se pondrían muy, muy desordenadas si cada página web contuviera toneladas de actores, todos comunicándose continuamente a través de la red. El potencial de abrazos mortales, agotamiento de recursos y todo tipo de efectos desagradables es bastante grande (sin mencionar clases completamente nuevas de spam, virus, ataques DDoS, etc.).

(Eso sí, la noción de páginas web como “documentos inteligentes” es intrigante, y es un área en la que he realizado algunas actividades de I + D financiadas, y busco más. No es tan fácil. Vinculación e incrustación de objetos en documentos de Microsoft Office es lo suficientemente malo. Hacer que funcione a través de Internet, interoperablemente, está muy lejos).

Imagine el navegador como una máquina virtual Java en la que descargaría el código y lo ejecutaría. No solo podría presentar una interfaz de usuario, sino que también podría hacer cómputo del lado del cliente.

Sin embargo, esto está extremadamente roto desde un punto de vista de seguridad.

Más recientemente, tenemos el excelente Google Chrome para confundir esta discusión. ¿Es un navegador? Sí, el mejor y pronto será el más popular. ¿Es un sistema operativo? Sí, en Chromebooks, es el sistema operativo. Además, cuando Chrome es un navegador en una PC, acepta extensiones, que son efectivamente aplicaciones que se ejecutan en su navegador … er … OS … er browser.