Friday, February 22, 2019

Re: Nalu is released!

Hi Pavlo,

yes, you are right. I am the Owner of the Nalu & Mvp4g project.

First, looking at mvp4g, I would say, that mvp4g is an awesome framework. I used it successfully in many projects in the past. But today, I would not start a new project with mvp4g. Mvp4g (which was origanally created by Pierre-Laurent Coirier) uses heavily GWT generators. So, with J2CL going public it is not the best voice. 

Let's look at mvp4g2. I have rewritten mvp4g and replaced the GWT generators with annotation processors. mvp4g2 is tested with J2CL and will be no show stopper switching from GWT 2.x to J2CL / GWT 3! My intention to create mvp4g2 is to give the mvp4g users an easy upgrade path for the future. As you can see on this page, most of the features of mvp4g has been implemented in mvp4g2:, so it might be easy to upgrade. There are only a few changes. (Of course, Nalu will work with J2CL, too!)

Last year I had a discussion with Ahmad and Colin, which - in the end - let me create Nalu. In my opinion, Nalu is a more modern and web-like framework than mvp4g/mvp4g2 is. So, let me compare mvp4g2 with Nalu (the big points):

* history:

In mvp4g2 you have to work with history converters, write them and manage everything. In Nalu, cause it uses the url to route, you have nothing to do for getting  history done. It works out of the box. (Starting with version 1.2.0 you can tell Nalu to avoid using a token in the url). Nalu can work with url or with a hash. It is just a annotation attribute to switch it. So, I would say, Nalu is more web like compared to mvp4g2.

* life cycle:

In mvp4g2, once a presenter view, is created, it will be reused all the time (except for the case you mark the presenter with multiple=true, but in this case you have to create it). In Nalu, a controller (it is the same like a presenter in mvp4g2) has a life cycle: start - activate - mayStop - deactivate - stop. If case it is needed, a controller can be cached (which will reuse the instance of the controller & component). The life cycle thing was one of the points many mvp4g users have missed. Nalu works here like many other GWT frameworks!

* confirmation:

This is a big deal! In mvp4g2, the confirmation is asynchron. I tis possible to do a server call, before to decide to leave the page. In Nalu the mayStop method is synchron! Nalu works here like many other GWT frameworks!

* visible components:

In mvp4g2, you have to deal by yourself where to add views. In Nalu, the framework will do the replacement of the widgets. All you have to do, is to make sure, that a node with the selector id exists. And, with Nalu it is quite easy to work with different application layouts, because the shell is part of the route. I personally prefer the Nalu way to manage the views.

* logging

During development, Nalu logs a lot on the browser console which makes it easier to understand, what the framework does. 

* context

Nalu supports an application wide context (to store application infos) and injects it into every filter, handler and controller.

Nalu and also mvp4g2 have both an event bus, provide features like filters, handlers (controller/presenter without views) and inject instances of the eventbus, the view/component, the context and the router into every controller / presenter.

But, in my opinion Nalu does it with less code and a little bit more elegant, is more like a web application framework than mvp4g2 and I am pretty sure, Nalu will also work on the server side (if there is a plugin). If you would ask me, which one I choose, I would go with Nalu.

If you have any questions, feel free to contact me here:

If you want to play around with both frameworks, you can generate 

* mvp4g2 projects here:

* Nalu projects here:

More informations about mvp4g2 can be found here:

More informations about Nalu can be found here:

There are many examples projects:

* for mvp4g2:

* and even more for Nalu:

Last but not least, I would say, regarding the last month, Nalu is more popular than mvp4g2.

Hope that helps!   

You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to
To post to this group, send email to
Visit this group at
For more options, visit

No comments:

Post a Comment