Announcing W4 Toolkit: a new approach to web app development


News: Announcing W4 Toolkit: a new approach to web app development

  1. W4 Toolkit (www windowing toolkit) is a new approach to the development of WEB applications with HTML frontends. It attempts to shorten development and testing cycles by transferring the concept of the object-oriented user interface development to the design of dynamic HTML frontends.

    The W4Toolkit is completely J2EE-compatible; the generation of HTML code takes place within a WebContainer using Servlet technology. Therefore, W4Toolkit can be used on all common J2EE application servers (Servlet-API 2.3). The generated HTML code is to a great extent cross-browser compatible (IE, Netscape, Mozilla, Opera).
    W4 Designer online
  2. I like the idea behind the tool: take the pain of managing a stateless protocol out of the hands of the developer in exchange for some flexibility. I suppose it's essentially a deployment technology, much like JNLP.

    The advantage of JNLP, of course, is that you get to write your application using a much more powerful library, and client state can become the responsibility of the client. The downside of JNLP is that the clients aren't nearly so widespread as this toolkit's (web browsers).

    These toolkits, on the other hand, always seem to produce a user experience inferior to one designed with the stateless protocol in mind: refreshing the page with every click of a button, being deadly slow, and scaling poorly.

    I think the "what the hell is this?" reaction of most internet users would prevent either a JNLP app or a w4toolkit app being deployed effectively to a public audience; in an intranet environment (where you can control both users' expectations and their computers) I think JNLP has the advantage.
  3. W4 Toolkit is in the first place tailored towards application development in intranet environments. We have very positive reactions from our corporate customers using applications built with the library, due to the minimized administration effort and platform independence.

    Network bandwidth and "sweating the pixels" has so far not been an issue, compared to firewall "compatibility".

    We see the same advantages as you in using Swing and JNLP in some fields due to the "much more powerful library", but still many customers prefer web applications. And we already started with adding dynamic gui components (dhtml) to the next version of the library (for example menus).

    The extreme example for refreshing the page with every click is our design tool, but this is not intended for use over the internet. We just liked the idea of trying out things online, it is working with reasonable speed on a local computer (or local dev server).

    We appreciate the feedback of all of you very much and hope to hear from you in the future...
  4. Nice. The only good approach to Web GUIs. But new ? Hardly. .NET does this and WebObjects does the same for several years.

  5. It's not new, two weeks ago another attempt was presented to do something similar (Objective HTML) and I even remember other companies trying to sell the same idea. But what is important, eventually I think it all comes down to implementation. The market for this kind of applications is clearly the corporate intranet, and development / deployment time can be seriously reduced. It will not eliminate however the need for proper front-end design and will not compete on the Internet.
    The challenge for the company will be to further develop the product and to reach a critical mass deployment. It's definetly a good start and I wish them all the best.
  6. Took a quick look at this. And interesting idea with some tradeoffs. Looks you your widgits are constrained into a grid, much like a Swing layout manager (but implemented using layered HTML tables).

    Impressive, as far as it goes. Hard to say what the server-side burden is. Further, doesn't look like you have precise control over layouts (my clients tend to be very picky ... I call it "sweating the pixels"). In addition, it looks like it relies on code generation, again like a Swing based builder.

    The examples seem skewed towards 2-tier (somewhat like Struts), in that your configuration files include defining database pools, and some of the components are concerned with database access.

    Again, appears to be a tradeoff: you gain a visual editor and the ability to RAD your application, but you gain constraints in terms of application design and layering as well as HTML output.

    Not clear about pricing and licensing.

    Obligatory link: Tapestry: Java Web Components covers much the same ground and is LGPL.