From 853691d6fce9220498073b8e10fa78c9e16f1aba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexis=20M=C3=A9taireau?= Date: Thu, 15 Feb 2024 11:45:18 +0100 Subject: [PATCH] Update documentation --- ...g-collaboration-on-umapn-third-update.html | 20 +++++++++---------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/drafts/adding-collaboration-on-umapn-third-update.html b/drafts/adding-collaboration-on-umapn-third-update.html index 3e1de84..b1e746b 100644 --- a/drafts/adding-collaboration-on-umapn-third-update.html +++ b/drafts/adding-collaboration-on-umapn-third-update.html @@ -56,32 +56,30 @@ yet, but I’ve made some progress that I will relate here.

JavaSript modules

uMap is an “old” project. It’s been there since 2012, at a time -when ES6 [wasn’t out there yet](https://fr.wikipedia.org/wiki/ECMAScript#ECMAScript_Edition_6_(ES6)

+when ES6 wasn’t out there yet

As a result, it wasn’t possible to use JavaScript modules, nor modern JavaScript syntax.

The team has been working hard on bringing modules to the mix, and it wasn’t a piece of cake. But, the result is here: we’re now able to use modern JavaSript modules and we -are now more confident about which features of the languages we can use or not.

+are now more confident about which features of the languages we can use or not


I then spent ~way too much~ some time trying to integrate existing CRDTs like Automerge and YJS in our project. These two libs are unfortunately expecting us to use a bundler, which we aren’t currently.

uMap is plain old JavaScript. It’s not using react or any other framework. The way I see this is that it makes it possible for us to have something “close to the -metal”, if that means anything when it comes to web development.

+metal”, if that means anything when it comes to web development. We’re not tied +to the development pace of these frameworks, and have more control on what we +do. It’s easier to debug.

So, after making tweaks and learning how “modules”, “requires” and “bundling” was working, I ultimately decided to take a break from this path, to work on the wiring with uMap. After all, CRDTs might not even be the way forward for us.

Internals

-

So, I went for the deep dive into uMap internals. To be frank, I was expecting -this to be hard : there is a lot of code, some legacy, and at first I was the -head under the water, not able to understand how all this code was working together.

-

After some time, I can now wrap my head around the logic of the project. As one -could expect, it’s not the complexity that was overflooding me, but the fact -that it’s sometimes not simple to get the big picture. To phrase it otherwise, -it was easy to get lost into the details.

+

I was not expecting this to be easy and was a bit afraid. Mostly because I’m out of my +comfort zone. After some time with the head under the water, I’m now able to better +understand the big picture, and I’m not getting lost in the details like I was at first.

Let me try to summarize what I’ve learned.

-

uMap apears to be doing a lot of different things, but in the end it’s:

+

uMap appears to be doing a lot of different things, but in the end it’s: