The purpose of this Story is to introduce a new term in Liferay’s UI for 7.1: Widget. This is not a replacement for any existing term neither a new functionality, but what we believe is a more clear way to refer to an existing important feature.
A widget is a small application that can be added to a page and can coexist with other small applications and with content.
It is important to note that this is not really a new feature of Liferay, but a way of naming an existing feature to facilitate referring to it in the UI and in the documentation. Having a clear and well defined concept also facilitates explaining the future improvements we have planned.
One could say we have not always been the greatest in keeping a well defined glossary of terms. As a matter of fact, we haven't had a clear concept for widgets. Over the years we have used a variety of terms to refer to this very same concept in our UI, documentation, marketing material, etc. Some of the most common terms are:
- Portlets: this was the most common initially but we started avoiding it in the UI and elsewhere for several reasons:
- It’s a technical term which doesn’t necessarily make sense to users of our UI
- Portlet technology can be used for a variety of things in addition to widgets, so saying portlet is often not specific enough. At Liferay we also use portlets for administration applications, product menus, reusable pop-ups, etc.
- Application: This is the term we use in the side pannel that allows a page administrator to add a widget to a page. And it’s not that bad there, but when used out of that context the term “application” is way too generic.
- App: While we try to leave this term only to things that are installed through the marketplace, we found quite a few usages referring to widgets in our documentation and other materials. This reinforced the need for a clear and well defined term for widgets.
Hard as it is to find perfect terms, we consider the cost of lack of clarity is high and we no longer want to pay for it. For this reason we have decided to introduce in 7.1 the “most perfect” term once and for all. The winner, as it’s obvious by now is the term widget.
For the last several months we have been conducting several benchmarkings of products and interviewing people to come up with names and do a short list of the best candidates.
Some other proposals that have come up are: blocks, lifelets, rays, gadgets, …
We have found out that there is no perfect term that everybody will like. We know that some people might “hate” the term “widget” but we believe it’s important to make a choice. We think that “widget” is the best available option and we will get used to it quickly.
In fact, one of the aspects we have prioritized while choosing a name is familiarity. After the research and interviews we strongly believe that it was better to not come up with a new name, specific to Liferay, but rather use a name that people might have already hear with the same or a similar enough meaning.
For now, the only way to develop a widget is using portlet technology.
No, a widget is just one of the use cases for which portlets can be used.
Other use cases for portlets are administration applications (which are not widgets because they are full page), reusable pop-ups (such as item selector, permissions, portlet configuration, …), menus (product menu, control bar, …), ...
I’m glad you ask the question. The answer is YES.
In 7.2 we plan to add the possibility of developing simple widgets through the UI. Most probably these widgets will be developed using some template technology (such as Freemarker or Soy). Some devs are already doing it using web content, which proves the need, but the dev experience is far from the best.
We are also analyzing facilitating using any SPA technology to develop widgets, avoiding the need for portlets for certain types of applications where they are not the best fit.