Frequently Asked Questions
Metawidget is an object/user interface mapping tool. The term object/user interface mapping (OIM) refers to the technique of inspecting objects, either statically or at runtime, and creating User Interface (UI) widgets.
As much as possible, Metawidget does this without introducing new technologies. Metawidget inspects an application's existing back-end architecture and creates widgets native to its existing front-end framework.
See also the Elevator Pitch Cartoon.
Metawidget continues the trend in recent years towards 'sensible defaults', writing as little 'boilerplate code' as possible. The Goals Of Metawidget are:
Note it is not a goal of Metawidget that the widgets look the same on every UI framework: every UI has different features, and Metawidget takes advantage of this.
See also the motivation FAQ.
The AngularJS, GWT, HTML 5, Java Server Faces, Spring, Struts and Swing Metawidgets are all deployed in production systems. Large clients include Red Hat, Telefonica and SCISYS. For more information on organizations deploying Metawidget, see our white papers.
The name has two meanings:
See the developer blogs for insights into, and to provide feedback on, Metawidget's development.
No. Metawidget uses existing Web application frameworks, it does not compete with them.
Metawidget uses other frameworks, it does not compete with them.
Please see the comparison FAQ.
Object Relational Mapping (ORM) technologies, such as Hibernate, are concerned with the back-end: mapping an Object (the O in ORM) to a Relational Database (the R in ORM). Object Interface Mapping (OIM) technologies, such as Metawidget, are concerned with the front-end: mapping an Object (the O in OIM) to a User Interface framework (the I in OIM).
OIMs and ORMs are complementary and meet in the middle: they share the same O. By using an OIM in conjunction with an ORM, developers can significantly reduce the amount of code required for an application.
Supporting so many different front-end and back-end technologies carries with it the risk of spreading Metawidget too thin. However, it's important because: