May I ask what are the advantages compare with LCL.
It's intended to has of all of default lazarus (LCL) has.
Beside, it open the hole which is allowance of non-lcl project being designed visually using known Form Designer.
I repeat : in "design time".
While at runtime, non-LCL project is fully independent from LCL.
So, the benefit are (included but not limited to) :
* the non-lcl project will run in runtime (debug-time) as they are designed: no dependency to LCL.
* you can register non-lcl component wich are will be displayed in Lazarus Component Palette
* you can drop that component into your form, just like LCL project designing behavior
* you can drag, move, resize, and setting all published properties of your non-lcl visual component, just like usually you are using LCL component.
* you can debug non-lcl project using it. (as identical as Lazarus able to).
Next, the disadvantage :
* You can't use any non-LCL components mixed with LCL project. But, probably you can use the otherwise.
* You must provide your own visual components per each non-LCL-project-root basis.
Let say: jmpessoa provides his own components (visual+non visual) for Android only which not applicable outside Android.
------------------------
I am worry about the meaning of "compare with LCL" of your question.
If you mean is Non-LCL vs LCL, then the advantage is :
* It is easier to deploy your very own visual project compared to port your existing visual project into new widgetset (LCL).
Otherwise, you don't need non-LCL. Using available LCL widgetsets is easier, then.
I hope it satisfied your curiosity.
x2nie.