domingo 13 de abril de 2008

Web Framework Smackdown Questions: IWebMvc

Other frameworks have already answered (Click, Tapestry) Matt's questions so I'm doing it as well:
  • What is the overall performance of your framework as it compares to others?
    No benchmarks have been passed yet but IWebMvc makes full use of Spring MVC / Hibernate on the server side and DWR / dojo on the client. Performance should be on par with those libraries.

  • How does your web framework position themselves in relation to Web Beans?
    JSF / EJB3 is a powerful stack but it cannot stand the visuals and possibilities of dojo on the client and the flexibility Spring + JPA offers on the server.

  • How easy is it to create a re-usable component in your framework? Is it as easy as sub-classing an existing component?
    A new component is composed of a tag lib wrapping the client code and a JPA entity that serves as backend. The most complex components may required a specific Spring data binder. There are several (ten or more) examples for each of these. Framework components are designed to be extensible by nature. All server operations are generic and will work for any new component (CRUD, RSS, security...)

  • What is the key differentiating characteristic of your framework that makes it better than the rest?
    The base is impressive and rock solid (JEE / Spring (AOP, MVC, ORM, TX, Security) / JPA (Hibernate) /DWR / dojo) and IWebMvc just starts there. So basically you get a working application based on those technologies and lots of goodies to make the developer life easier. In addition, choosing such a fixed stack ensures a tight integration between each layer.

  • What do you think about the various scopes introduced by Seam, e.g. conversation vs request or session? If you support these additional scopes, do you also provide some sort of concurrency control?
    IWebMvc will support out-of-the-box Spring Webflow integration in the near future.

  • Why can't we, the Java Community, come together and adopt the best application framework and settle the web development subject?
    Innovation is key in this world. Each framework offers something new and different. IWebMvc probably offers the best DWR / dojo integration with server side technologies available to date.

  • What are you doing to help with developer productivity?
    That's the main goal indeed! Working project scripts (compile, dependency management, QA), generic controllers and functionality, pre-built common tasks, wrapped client code, powerful stack, screencasts & documentation. Everything points in that direction. IWebMvc is a framework aimed at developers.

  • 2008 is a huge year for the mobile web. How do you help developers build great mobile web applications?
    I'm not sure IWebMvc fits the bill here or if some other frameworks are better suited.

  • If you couldn't use your framework, what would you use and why?
    I guess bare Spring MVC / Webflow / DWR / JPA and rebuild some work from there. Another route would be Grails.

  • How do you enable rich Ajax applications?
    IWebMvc was designed with AJAX in mind and cannot really be used otherwise. All widgets support and use AJAX extensively.

  • Can a developer make a change to source, and hit RELOAD in the browser to see the change? If not, why not?
    No problem with client side code (JSP, tag libs, JS, CSS). Java / Spring beans / JPA entities requires the use of and additional product like JavaRebel (or Weblogic 10.3) or a plain restart (to update the DB schema for example).

  • What do you think about the whole Flex revolution, and do you think you are competitors to this technology?
    In some ways we do as IWebMvc offers a lot of client side code. Flex is an interesting technology and so is AJAX. Both are well suited for web develoment. IWebMvc prefers the later because it saves the developer the need of learning a new language and because target applications are more likely to be of the enterprise class rather than highly interactive Flash enabled sites.

  • How easy is it to create a module and plug it into a bigger application, complete with configuration, code, and view?
    Framework and application code are clearly separated. But in truth, as of now, IWebMvc is not designed to create plugins but complete web / enterprise applications. Nonetheless, as long as you keep the Spring configuration in a different XML file and use a different namespace for your sources, with a little extra work everything should be fine.