Both of them used by developers prefer to use java code for presentation and do not like to work on javascript and html, but the different between them based on my knowledge that , GWT is getting out as an AJAX from work for java developers so most of components are AJAX components, but Vaadin is provide multiple components for presentation, currently there is "Vaadin += GWT" you can find it on this link https://vaadin.com/gwt
GWT by google good for user interaction and interface run on client base,slower
Vaadin run on server side many builtin structure and tools u can use you save time, and good when write ur own API and used in ur client
where database in same place the code in same place theme in some where excellent
in security suitable for banking ,there is builtin gwt also in vaadin