title: Comparing Web GUI frameworks for enterprise application
body: <p>I need to chose a web ui framework for our private intranet enterprise application (tomcat + Java + MySQL) and I compared Google Closure,Apache wicket, Ext JS, ZK and Vaadin. I have the following requirements. </p>
  
  <p>1) license - does not matter if it is a commercial framework as long as it satisfies the rest of the requirements.</p>
  
  <p>2) Good widget support - Ext JS and ZK have impressive widget set. In Wicket, we can create our own custom components. How about Closure? It is important to have "enterprise" type of widgets such as complex tables, tree etc. Vaadin has a big list too but most of them are third party addons and so how reliable are they?</p>
  
  <p>3) good ajax support - From what I have seen all of them except Wicket has full AJAX support. Looks like Wicket has AJAX support for only a few components. Is it true ? </p>
  
  <p>4) Security - I understand we have to implement authentication and authorization at the backend. But we still have browser security to take care of and the GUI will change based on the user role. so it should be easy to create dynamic GUIs based on user login. Since Wicket and ZK are server side implementations, I believe it is possible to do it in these frameworks. I saw discussions in Ext JS forums on how to create dynamic GUIs and so it is supported there. How about the other 2 frameworks, Closure and Vaadin? ZK provides browser security as well which is a plus.</p>
  
  <p>5) Vector graphics - We have to draw some charts and some kind of circuit diagrams. Closure and Ext JS supports Raphael.js. How about ZK, Wicket and Vaadin ?</p>
  
  <p>6) Google maps - We would like to embed interactive google maps in one of the GUI pages. It is easy to do it JS based frameworks. There is a plugin for zk. Any one who used it can you please comment on how good it is? Wicket has a plugin too but I read it cannot interact with the server meaning I will not be able to send a request to the server based on user selection. How about vaadin ?</p>
  
  <p>7) Layout Manager - Having a good layout manager is a plus. It will help in creating dynamic GUIs. Ext JS, vaadin and ZK supports many layouts.How about wicket and Closure?</p>
  
  <p>8) Speed - We dont need blazing fast UI response but it should be acceptable. We do have tables with a few thousand rows displayed in the GUI. I read a lot about Ext JS being very slow. How about other Server based frameworks ? Will the round trip cause any speed reduction ?</p>
  
  <p>Any suggestions on which one I should use ? Are there any other frameworks other than this that would satisfy these requirements?
  We are mostly java developers and so we would prefer server based framework. But if there is a JS framework that satisfies these conditions and also allows more flexibility, then we wouldnt mind spending some time learning it.</p>