Vaadin 8 was originally built and designed when Java 8 was the newest and the coolest. You can see this in many parts of the API. For example, we use lambdas to implement listeners that only have one method, and use Optionals and Streams here and there. Vaadin 8 also uses GWT 2.8.2, which allows you to use Java 8 syntax in your client-side code.
However, Java has moved forward both as a programming language and as a runtime environment.