Migration from MooTools to ECMAScript 6

337 views
Skip to first unread message

Tor

unread,
Mar 31, 2019, 8:06:43 AM3/31/19
to MooTools Users
Hi,
I'm a long time MooTools user who finally feel that I can start migration from my MooTools based client-side code to ES6.

I've had strong reasons in the past to use MooTools and if it was still maintained I would keep using it and I haven't found a replacement that works as well so I'm going to migrate to vanilla javascript and not rely on a javascript library be that Angular, React, Vue, jQuery etc etc.

I'm after the same kind of coding experience (and user experience) I've had with MooTools so I'm basically just going to drop MooTools and fill the void with ES6 classes and a few DOM manipulation helper classes that will support method chaining without extending the Window, Body or Element prototypes. I think I will do something similar with Array and Object.

The first step was to update +100 or so classes that used the MooTools Class functions into ES6 classes. This was very quick and to be honest I could have written a program that would have done this for me. Now I simply relied on a lot of query/replace.

The second step was to replace every Thenable class with methods that return Promises. This was very simple. I used the reset-able functionality of Thenables but since my system uses mostly immutable objects it wasn't hard to just always create new Promises when needed.

The third thing I'm currently doing is replacing all Request calls with the fetch API. I consider writing an adapter for the fetch API that looks like the MooTools Request classes but I also don't want to introduce an extra layer of abstraction if not needed. I won't be able to do simple query/replace here so it will take a little longer to do it manually. I've got about 200 calls to Request and most are with my own Request.REST class but none of the calls have anything fancy going on so worst case scenario is just rewriting them all with fetch syntax which won't take too long really.

The last (hopefully) thing that I need to do is replace all code that does DOM manipulation. This is going to be the big problematic part of the job. MooTools make DOM manipulation so simple in a way that javascript out of the box simply does not. I don't want to extend the DOM in the future though so I'm looking into the smallest possible framework that I can write to 1) render elements and 2) hydrate html generated server-side.

The reason I'm writing this is that I want to report that I so far haven't bumped into any problems replacing MooTools with ES6 but I also haven't gained much in doing so. I think that MooTools is extreamly underrated these days and the only reason I'm doing this refactoring is to not get stuck in old code as ECMAScript develops in the future. If there was a stronger community around MooTools we could have written a thinner version of MooTools that uses ES6 and I would have been first in line to use it. As it stands I will most likely never use a framework that couples things as strongly as I think React and Vue does. I want to have full control over the data flow and how the DOM is updated with my own rendering code and view and widget abstractions.

/ Tor

Clément Hallet

unread,
Apr 1, 2019, 8:54:39 AM4/1/19
to MooTools Users
Hi Tor,

I couldn't agree more, I think that some simplicty in DOM manipulations have been lost these past years.

--
Clément

MrIsaacs

unread,
Apr 1, 2019, 9:09:52 AM4/1/19
to MooTools Users
Same here! I loved it and still love it today. It is a great peace of work. I learned so much from mootools. Sadly it isn't maintaned anymore.

Breno Ribeiro

unread,
Apr 2, 2019, 1:00:00 PM4/2/19
to mootool...@googlegroups.com
I would love if someone maintained MooTools.
(I would love to be able to be this person but i don't believe i have what it takes to move an opensource project forward)
There are nice options to work with like Angular and Vue but i miss the MooTools way of doing things.


--
[]'s

Breno Damas M. Ribeiro
+[Web] Developer
+http://ribeirobreno.com.br/


On Mon, Apr 1, 2019 at 10:09 AM MrIsaacs <ivan....@windowslive.com> wrote:
Same here! I loved it and still love it today. It is a great peace of work. I learned so much from mootools. Sadly it isn't maintaned anymore.

--

---
You received this message because you are subscribed to the Google Groups "MooTools Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mootools-user...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages