Vaadin 10: The evolution from framework to platform
The wait is finally over: It’s been quite some time since the last version of Vaadin was released. Vaadin 8, the last major release, was published in February 2017. Now, more than one year later, Vaadin 10 is ready to see the light of day.
One of the first questions you may have now is probably “Where the heck is Vaadin 9?” Well, from a technological perspective, the step from Vaadin 8 to Vaadin 10 is quite an impressive one. Therefore, we decided to focus on it in the versioning scheme as well.
So we skipped Vaadin 9 and gave the new version the number 10. Vaadin 10 is certainly one of the biggest updates in the history of this framework and much more changed than just the version’s number. Let’s have a closer look at the highlights of this release.
From Vaadin framework to Vaadin platform
Up until Vaadin 8, we had a framework that was based on GWT. And that was it; we just had the framework and nothing else. This is going to change now. In Vaadin 10, we took a turn towards Web Components, meaning that all new components are developed as Web Components. By embracing this new approach, it is now possible to use said Web Components not just for the Java world.
For example, you can use them to write pure client-side applications or combine a component with other frameworks like Angular, React or Vue.js. Thanks to these very flexible possible combinations, developers are free to decide which combinations are the best for their use case. On our website, we have some examples prepared that may help you get started.
Another new feature is the framework Flow, which is basically the server-side connection to the Web Components based on a Java API. Vaadin remains the framework of choice when it comes to server-side web applications that are to be developed exclusively using the Java API. Developers using Vaadin will certainly feel at home here. Some things have been simplified, though, which makes the applications even more compact.
The new release train
Because of the new and much more modular structure, developers are able to leverage new features faster than ever. In addition to that, it is now possible to combine single parts of the platform with new versions of particular components. Persistent applications can now make use of new functions which are incremental to the application itself, without updating the whole platform every time a new feature is implemented in one of the components.
To make this new dynamic more projectable, we decided (starting with the release of Vaadin 10 platform) to also review our release cycles. In the future, there will be a new platform version every three months. Every two years, one of those releases will be published as an LTS version (long-term support). Every LTS version of Vaadin will be maintained and developed for five years. It will also be officially supported over the whole time span.
Vaadin 10 is released as the first new LTS version and the first version with which developers can leverage the new feature of updating just the components they need. From a developer’s perspective, this means the following: The platform of a certain version consists of a group of single components. One of these components might provide a certain button of version X. When a new version of said button is released, you can update just this one component – the rest of the platform’s version will remain the same.
What about Vaadin 7 and 8?
We have not forgotten about our older frameworks, Vaadin 7 and Vaadin 8. They will be supported for quite some time: We are going to continue the development of Vaadin 7 until the end of 2019, our work on Vaadin 8 will continue until the end of 2022. Over the whole time span, those versions will be actively developed and supported.
On our company blog, we published an article on the matter. Based on this schedule, there is still plenty of time to prepare for the transition to Vaadin 10 and carry out the migration step by step. Of course, the topic can also be addressed in the forums and the open channels at any time, I am also happy to help personally, just send me an e-mail at [email protected].