title: Vaadin alternative for heavily loaded UI
body: <p>Currently I am programming the Web Application based on <a href="http://vaadin.com/" rel="nofollow noreferrer">Vaadin</a>. I am quite happy with the learning cycle and the way how easy UI can be designed.</p>
  
  <p>In general pluses of Vaadin are:</p>
  
  <ul>
  <li>"Native" UI programming for Java users (component hierarchy / event listeners / drag &amp; drop / validation).</li>
  <li>Out-of-box nice collection of components (tree / table / list / ...).</li>
  </ul>
  
  <p>The minuses are:</p>
  
  <ul>
  <li>Big and complex HTML output. That slows down the browser response time (also mentioned <a href="https://stackoverflow.com/questions/3888233">here</a> and <a href="https://stackoverflow.com/questions/5753761">there</a>) and leads to some rendering peculiarities from browser to browser.</li>
  <li>Difficulties in handling big number of components (see <a href="https://vaadin.com/forum/-/message_boards/view_message/507182" rel="nofollow noreferrer">Can CustomLayout handle 5000 components?</a>).</li>
  <li>The need to recompile the widget set if you use 3rd party components.</li>
  </ul>
  
  <p>My question to community is:</p>
  
  <p><strong>What Web Framework fits best the following requirements</strong>:</p>
  
  <ul>
  <li>Separation of presentation with event/action handlers.</li>
  <li>Common components out of box (with advanced features like table column drag&amp;drop, lazy loading).</li>
  <li>Layout support (no headache with padding and alignment of components).</li>
  <li>Event propagation to server and server-side event processing.</li>
  <li>Possibility to generate your HTML (if framework is not HTML-based) and also capture events for it (e.g. mouse clicks).</li>
  <li>Possibility to register key stoke callbacks (e.g. Ctrl-S) is a plus.</li>
  <li>Short learning curve for Java developer is a plus.</li>
  </ul>
  
  <p>The sensible mix of approaches would fit as well. Please, provide the link for "Hello World" application, implemented based on the framework that you suggest. I am considering <a href="https://stackoverflow.com/a/3563602/267197">Apache Wicket</a> / <a href="https://stackoverflow.com/a/6770736/267197">Echo2</a> / <a href="https://stackoverflow.com/a/40194/267197">Tapestry</a> / <a href="https://stackoverflow.com/a/6604059/267197">Click</a> / <a href="https://stackoverflow.com/a/538592/267197">GWT</a>, but it's difficult to make a choice without playing for couple of months (hopefully with no deep disappointment).</p>