Vaadin, an open source web framework for Java developers, recently introduced their latest long term support version 14. This release comes with multiple new UI components, simplified theming and support for npm as the frontend package manager.
Vaadin allows developers to build Progressive Web Apps (PWA) in Java. It provides a library of adaptable UI components, a Java web framework, and configurable themes. Developers can use the quick start tutorial or the starter templates that provide examples on how to build responsive, mobile first web applications.
InfoQ spoke to Matti Tahvonen, developer advocate at Vaadin, about this release.
InfoQ: Congratulations on releasing Vaadin 14! What was the community response to the new release?
Matti Tahvonen: Thank you, it was a great effort. The response has been mostly really positive. In the previous long-term support version (Vaadin 10), we had to drop a bunch of features due to the huge rewrite of all component implementations. Thus, many old-time Vaadin users have stayed with version 8, which is still great, and waited for this version to start upgrading their applications.
Most complaints have been about the new npm based front-end build, which we just had to get done for this version. The previous was based on Bower, that is already deprecated. Previously we installed front-end tools during the build if they were needed, but now we expect npm to be installed beforehand. We already started efforts to make the build more seamless for Java developers in upcoming minor versions.
InfoQ: What is a feature in Vaadin 14 that you are most excited about?
Tahvonen: Embedding Vaadin applications as Web Component. Embedding was one thing that we dropped in Vaadin 10, but now the feature is back better than ever. It is straightforward to do for the one who maintains the host page, and possible collapses in CSS and JS space are dealt with the Web Component standard and shadow DOM. This way it is very easy to start using Vaadin on places where it really shines, on the most dynamic parts of your web page. This allows you to share the workload in a team with mixed skills. A developer with plain Java skills can build a part of the app using Vaadin, and for example, React or JSF developer can take care of the rest. https://vaadin.com/releases/vaadin-14#embedding
InfoQ: Web technologies and browser support changes so frequently that it's almost impossible to keep track of all the latest trends and innovations, such as web components, progressive web apps, and WebAssembly (WASM). Does Vaadin help abstract away these low level details and allow developers to easily build complex applications?
Tahvonen: Well, I’d say this is exactly why Vaadin project was started in the first place, almost two decades ago. Especially if you are using the Java API to our components, you can just keep using it, and still get to benefit from the latest and greatest web technologies. The following code comparison is between version 3 (2004) and 14. We simplified the initialization, but the actual component usage is almost the same. During the years, we have Vaadin apps have started to support features AJAX, HTML5, Web Sockets, Web Components, and PWA (Progressive Web Apps). And developers got most of these new things to use with almost no changes in their code. On browser-side, we have supported everything from the Netscape era to the latest built-in browsers in modern smartphones. And naturally on the JVM side things like new Java versions, Spring, CDI, OSGi and so on.
InfoQ: Given that most projects these days are embracing a more aggressive release cadence, did Vaadin have to change its release cycle velocity?
Tahvonen: We changed to a more aggressive quarterly release cycle in version 10 to innovate faster with new things. But I have to say that the response from the community hasn’t been all positive. Personally, I think the fast release cycle is great for certain kind of applications, such as browsers, but libraries such as JDK and Vaadin should be more conservative. We are now actually taking a step back and will start to ship smaller new features in fully backward compatible minor releases to LTS releases. This way, we hope that most developers in the future will stay on the most stable LTS releases, instead of jumping quarterly to try out something new.
InfoQ: Does Vaadin support JDK 11? What are your plans to support JDK feature releases?
Tahvonen: Yes. We do our best to keep Vaadin compatible with the latest Java releases, but of course, we can’t guarantee that for the backward compatible LTS versions. For example, currently, we have no known issues with pre-releases of JDK 13. We expect to announce official support for future Java versions for which Oracle provides LTS support unless they contain backward-incompatible changes that affect Vaadin.
InfoQ: Where do you see Vaadin in the next five years?
Tahvonen: In many of those web apps you use daily :-) Vaadin is still there to make web app development easier, faster, and less frustrating.
The official release announcement outlines the top features of Vaadin 14.