Muchas gracias por la introducción. Soy Anson. Estoy aquí hoy para hablarles sobre JAS, mi nuevo marco para construir aplicaciones en torno a datos colaborativos seguros y sincronizados. Antes de entrar en detalles, esta es la primera vez que hablo de esto públicamente. Por lo tanto, si esto les resulta interesante, realmente podrían ayudarme echando un vistazo a la página principal y uniéndose al Discord, especialmente si quieren experimentar con JAS o tienen algunas preguntas. Cualquier comentario realmente me ayuda en esta etapa inicial. Hoy, hablaré sobre estas cosas. ¿Por qué empecé a hacer JAS? ¿Qué es realmente? Echaremos un vistazo a una pequeña aplicación de demostración y haremos un recorrido detallado por el código para darles una rápida impresión de cómo se siente construir una aplicación con JAS. Si tenemos tiempo, haremos una pequeña aplicación de demostración adicional y hablaré un poco más sobre qué viene para JAS. Entonces, ¿por qué decidí empezar a construir JAS? Construyo muchas aplicaciones y básicamente cada vez que digo, hey, construyamos una aplicación, pero luego tienes que preocuparte por todas estas cosas, como elegir una database, desplegarla, cómo construir el backend y especialmente si quieres hacer multijugador en tiempo real, simplemente añade más complejidad. De repente necesitas colas de mensajes, web sockets, y me pregunto, ¿por qué todo es tan difícil? Y más interesante aún, ¿qué pasaría si no tuviera que ser así? ¿Qué pasaría si pudiéramos deshacernos de casi todo eso y quedarnos solo con las cosas que realmente hacen que nuestra aplicación sea nuestra aplicación, verdad? ¿No sería eso agradable? Esa es más o menos la promesa de JAS, suena bien, ¿verdad? Y mejora aún más. ¿Qué pasaría si les dijera que también obtienen sincronización entre dispositivos, multijugador en tiempo real, obtención automática de data granular de la que no tienen que preocuparse, persistencia local y en la cloud, soporte fuera de línea y una interfaz de usuario realmente rápida de forma gratuita? Suena genial, ¿verdad? Ese es más o menos el sueño que tenía cuando comencé con eso, pero ¿cómo podemos llegar allí? Y creo que para responder a esa pregunta, realmente ayuda. Y eso es con lo que comencé, es preguntarnos, ¿cómo llegamos a este lío en primer lugar? Así que una historia rápida, comencemos desde los principios básicos. Este es más o menos mi modelo mental de una computadora, ¿verdad? Resulta que no es mi modelo mental de una computadora, es en realidad el modelo mental de este tipo, y simplemente lo hizo realidad, y eso es lo que tenemos ahora. Y ha permanecido prácticamente sin cambios desde entonces, excepto en los años 60 y 70, estos tipos añadieron una caja a eso, que es el internet, y todavía estamos recuperándonos de eso. Para la web en sí, este tipo fue super influyente. Básicamente vio esta arquitectura de computadora y dijo, oye, sabes qué, deberíamos construir hipertexto en eso, y creó algunas de las primeras interfaces de usuario gráficas, pero el hipertexto no se popularizó hasta mucho después cuando este tipo dijo, la colaboración de investigación en CERN es un desastre, tal vez deberíamos construir hipertexto, y el problema con su implementación de hipertexto, por supuesto, es que era lo suficientemente buena, y eso es con lo que estamos atrapados ahora, eso es la web. Pero más tarde, en 95, este tipo dijo, hey, eso es un buen hipertexto que tienes ahí, ¿qué tal si construimos una arquitectura de computadora encima de eso? Y también mi jefe me dio diez días para hacerlo. Y de manera similar, el problema con JavaScript fue que era lo suficientemente bueno, así que eso es lo que tenemos ahora, ¿verdad? Así que ahora estamos en una situación en la que básicamente esta es la arquitectura de computadora más popular, la VM de JavaScript en el navegador tal como la conocemos. Pero en realidad, no hay nada realmente malo con eso. La complejidad es realmente inherente en el modelo más genérico de la computadora aquí porque si queremos construir una aplicación, tenemos que preocuparnos por demasiadas de estas cajas. Básicamente la razón por la que tenemos todas estas preguntas es porque cada vez que queremos construir una aplicación, necesitamos pensar en estas flechas y mover data entre la memoria, el disco, el internet, otras computadoras. Ahí es donde creo que proviene la mayor parte de la complejidad. Cuando escuché por primera vez sobre los CRDT, me emocioné mucho porque los CRDT prometen un modelo alternativo a eso. Realmente no tengo mucho tiempo para explicar los CRDT. Hay una publicación de blog muy buena llamada Data Laced with History. Esa es una muy buena forma de pensar en los CRDT también. Así que definitivamente echen un vistazo a eso. Una forma sencilla de pensar en los CRDT que me gusta es, en lugar de intentar tan duro poner tus data en el internet y tener eso en diferentes lugares, básicamente pones el internet en tus data y tus data ahora son conscientes de que existen en diferentes lugares. Muchas personas lo están editando a la vez.
Comments