For the system to be called No Code, in my understanding, it must have the following components (at least):
Object Model Description Tool
A tool for describing behavior (business logic)
Tool for creating interfaces
How about these tools at Liferay?
Let’s start at the end. Liferay’s interfaces are more than good. This is primarily a page builder (a la Tilda) with the ability to create pages from ready-made components in just seconds.
It is also a form editor, not ideal, but quite powerful tool (with flexible layout of fields, the ability to paginate – wizard, with different types of fields, validation, masks and dependencies of fields from each other). It can be used to make really complex shapes.
In general, everything is fine here, you can create a web interface using the mouse and drag-n-drop.
The behavior is a little worse. Liferay has the ability to bind business processes to the same forms, but the built-in implementation of the business process engine – Kaleo, how to say, is too basic. In our Incomand we got around this by stitching the engine into the portal instead of Kaleo Flowable (many people know Camunda – so Flowable is its twin cousin – both forks are from Activiti, only Camunda forked a year and a half earlier). With a full-fledged BPMN notation – and you can do a lot on it (whoever worked with the same Camunda – they won’t let you lie).
There was still a question with the object model – and here there were problems. The fact is that the same forms stored all their data in one table in one field (in JSON format). If you just need to collect some data, that’s okay. But if you still somehow work with them later, this is already a big problem.
A long time ago (back in version 6.x) Liferay developed a mechanism for dynamic objects (Dynamic Data List) – the same forms, only a side view. But even there, everything was stored in one table in one field – in XML format. With similar problems.
And so, in the latest version 7.4 (7.4.3 to be precise) they appeared – Liferay Objects! This is an object model editor that honestly creates a separate table for each object. It is finished! Or?
As soon as the tag appeared in the github, I went to download and test the version without waiting for the official release. Even wrote the official website announcement… BUT – the official site is the official site, and the reality is not as good as we would like it to be.
On the one hand, yes, everything stated is there:
New objects can be created;
You can set fields of different types for objects with different attributes (for example, mandatory);
You can create links between objects (generated Foreign Keys);
Localization is supported (names of objects and fields can be specified in different languages);
Workflow is supported – when creating an object, you can start a business process;
A convenient REST API is generated for objects …
In general, we can say that there is a required minimum (we remember that No Code is still for relatively simple, typical tasks).
But, the most interesting thing starts when we go to the Layouts tab – here you can set the forms for working with the object
And then surprise and disappointment overtook me. Instead of the expected form editor that Liferay has been developing for several years, and in which it has implemented everything that is possible, we are waiting for some completely new editor with OOOOOOO basic functionality. It is unrealistic to create something sane on it that ordinary users can use.
Further study puts everything in its place. Working with the created objects is available only from the control panel (if you have rights). It is impossible to place a list of created objects somewhere on the site page. It turns out that the forms for editing objects are primarily for administration (and for administrators, they will endure everything!).
What about end users? Well, here’s a cool REST API, sit down, write an application in React / Angular / Vue (choose to taste), embed it into the portal – and you will be happy.
Is it reasonable? Yes, but this is not a No Code platform at all.
The bottom line? While sad. In fact, Liferay has all the components to be called a No Code platform. But, since they are not related to each other, we get neither this nor that.