CUBA platform and its Studio offer today what I think is the most complete JAVA based full stack to date. Moreover, it has achieved that while staying simple to use.
The platform is well thought and proposes a whole set of features that you nearly always need in an enterprise application :
- efficient web gui with generic features like paging, filters, and a lot of widgets available
- efficient security system with role management and its integrated gui
- jmx beans integration with its gui
- log and its gui, application configuration and its gui
- integrated versioning system with restore features and change tracking by user, and its gui
- dynamic and generic extension of entities attributes (e.g adapt to client specifity)
- scheduled tasks
- REST, responsive GUI (albeit less integrated) & portal
What is impressive is that all these features are ready out of the box, you can even imagine not write a single line of code to extend some of them (e.g security, scheduled tasks) as they fully cover so many real life cases on their own.
Add to that optional components like generic reports, full-text search, BPM and you
On the design side, the platfom is very clean : separation of concerns, based on injected components & services. And you can deploy easily in multiple ways on infrastructure going from simple all-in-one to multi-tiers, and even on the cloud. Plus the generated application is ready for replication between datacenters (for instance through the use of UUIDs).
On top of that, the Studio IDE wil save you tremendous amount of time, by implementing full round-trip between your favorite JAVA IDE, back and forth, and live-reload of your running application in most cases. And featuring automatic and incremental schema evolution as good as other specialized products do. The screen generation from data model is impressive, and you have a WYSIWYG editor to customize it.
The documentation and samples are quite complete, which is not that often for frameworks with so many features. There is a learning curve of course, but there always is.
The platform updates rapidly, which is for us an advantage, as we want it to mature even more quickly, albeit documentation and samples sometimes does not follow the same rythm. E.g no polymer example yet, but this is a fresh new feature, this is certainly on the way. Note that the team is very reactive, which is also of great importance.
All-in-all, after having studied different frameworks for months, we simply found that CUBA was the most advanced, and we now rely on it steadily. Simply put, this is a RAD framework by-the-book : you have out-of-the-box all features needed in an enterprise-class application, so you can concentrate on your business model.
The optional components like generic reports and charts are less documented than the core platform.
Sometimes we feel that we do not use the platform to its full extent. We would like to see something like a full-fledged sample application using each and every feature in order to have a feeling on how CUBA developers build an application with their own platform.
Not all UML cases are handled (e.g unidirectional one-to-many) but this is in the backlog.
Not an issue but an enhancement: the screen generation could use a wizard in order to have more control on output. For instance : which component to map an entity attribute (slider or radio button instead of plain text field), define groups of attributes, choose layout details (e.g grid size), choose how to map one-to-one relationship (as an association or plainly in screen).