Vaadin recently announced Vaadin 10 consisting of developer tools, Vaadin components, and Vaadin Flow.
Vaadin Flow comes with many new features and one of the biggest is the usage of Web Components for the client-side, instead of GWT components. There is no big difference on the server-side from a coding point of view, and as far as you don't touch the client-side, your development experience will remain the same. But why Web Components?
Here are my thoughts about Web Components
The strongest part of Web Components is that it's a standard. To give an example out of context, when we buy an electronic device from a local store, we don't check the power adapter, voltage, compatibility, and shape of the power outlet. We know for granted that it will work at home, and any other public places. That is the power of "Standard". The world is moving more and more towards standardizing tools, and especially in the technology field. Think USB-C, for instance.
When it comes to adopting the latest technology standards, Vaadin doesn't stray far away. Using standard Web Components instead of GWT-based UI components does not just give us the freedom to use any Standard Web Component inside the framework, but let’s us freely use Vaadin components with any other web framework.
The GWT project is under active development by a steering committee, and they have many modern features to release in the upcoming versions. You can also write Web Components using GWT, we have experimented that ourselves and open sourced some experimental tools to automate this.
But the majority of innovation regarding front-end technology happens outside GWT project. The community has developed a lot of new tools for Web Components to facilitate the work on the client side, in terms of testing, debugging, and even getting started.
A lot of innovation is happening in the Web Components community. There is not just Vaadin community or Google, but many big companies who are currently investing in this technology. The competition drives the innovation even more. A lot of this can be directly used by all web developers and in component collections like Vaadin components.
Web Components are becoming supported by all browser vendors. The community around them is growing fast. With Vaadin Flow, however, you don’t have to care what the underlying implementation of the components is. You can keep using the plain old Java API as before, but you can also start to use the Web Component standard even more in you applications.
Your options are going to be:
Prefer to keep everything Java
Vaadin Flow is your best web-friend. It's designed to keep everything on the front-end doable in 100% Java. You get to enjoy the benefits of both, latest technology on the client-side, and without leaving your comfort zone of writing in Java for the JVM.