Vaadin is a large collection of UI components. You compose the application user interface from components such as Buttons, Tables, Trees and Layouts. The components use events, listeners and data binding to communicate with each other and with your business logic.
Vaadin is a robust architecture for rapid application development. The component-based architecture together with statically typed Java language and data binding features help you build applications that are easily modularized and refactored as needed. The IDE and tooling support including visual designing tool help you to build web user interface extremely fast.
Vaadin is a good web framework. You don't need to think about HTML and JS. You build your apps like in Swing. However there are several drawbacks.
But still Vaadin is one of the best component-based web framework along with ZK and GWT.
One of the best framework I've used in the past years, with a very responsive support team !! Hats off !!
The best AJAX based web framework ever ;) Easy to learn and use.
Vaadin is GWT-based framework so it is very easy to integrate those two technologies. Vaadin have very good documentation and helpful community.
Works great with Scala too, consider using the semi-official Scaladin plugin.