Interview: Didier Girard, are GWT and Volta GCC for the Web?
InfoQ: GWT is about two years old, you have been following and using this technology since its inception, where are we today?
Didier: GWT is a technology which enables the development of Rich Internet Applications (RIA). There are two families of frameworks in this space. The first type of frameworks, such as GWT, is dedicated to building traditional information systems while the second type emphasizes multi-media applications (Flash, SilverLight,…).
With GWT we are no longer using a page navigation paradigm, this is a single page application, or more exactly an entire application accessed via a single URL. One of the goal of this type of frameworks is to give a desktop like user experience with the advantages of zero-deployment and cross-browser compatibility.
Typically, we develop on the Windows platform and we perform extensive QA on Internet Explorer and Firefox, and we validate on Opera and Safari.
InfoQ: What are the implications of this technology on the architecture of web applications? In particular could comment on the applicability of the MVC Pattern?
Didier: GWT is very easy to use, a Java developer can develop Web application without learning any new technologies. This is an approach that is very similar to VB. As long as a developer knows how to create a user interface in Java, he or she can use GWT.
In MVC terms, GWT is the view, there are no provisions for models and controllers. For a basic application, the view is enough. When the application is more sophisticated, it is recommend to use a traditional MVC approach.
We actually use a variation of the MVC pattern, the Hierarchical MVC pattern (HMVC). In this variation, each graphical component individually is an MVC tuple. We use events to broadcast state changes and create “behaviors” for our graphical components. We created a framework to simplify the implementation of this pattern (GDF). It is available on Google Code. It should really be used as a guide or an illustration of best practices rather and a traditional framework that introduces checks and balances to avoid developer mistakes.
InfoQ: Since its release Volta has often be compared to GWT? What is your take on the question?
The first capability of Volta is certainly useful, the second one is, in my opinion, theoretical. Today, we don’t have enough data points to understand if this really works or not.
InfoQ: Where are we heading with technologies such as GWT and Volta?
Google itself is establishing the browser as the “platform”. Current browsers are incomplete, and this is why Google is developing Gears which includes a local database, a WorkerPool and a local server. This is only the first step. The second step is going to be defining interactions between the browser and the services. Google is now developing APIs to deal with synchronization issues, for instance transactional interactions between the cache and the services. Intermittent connections are really a fact of life, a lot more so than network latency and bandwidth. For instance, an iPhone is not always connected. Google is trying to solve this problem. Many other APIs may be coming for Gears : multiple files uploading API, Crypto API, Logging API, Messaging API, Location API, Desktop Shortcut API, Image Manipulation API (Just check Dion Almaer’s blog for more information). The vision behind Gears is certainly why it won the PCWorld “Most Innovative Product of the Year“.
In an RIA architecture we rely almost exclusively on distant services, often unrelated to the URL of the application itself. In the programming model the service proxy is local. It is really the role of architecture to manage the idiosyncrasies of the connection. This is really where RIA frameworks are targeting moving forward, strengthening the role of the browser as a platform.
This is less true for the second type framework which is targeting rich media, here the emphasis is more on viewers, performance and in particular streaming. We can really see a market emerging for rich media access points. For instance, goodOS just released a Web oriented Linux. Some network access points will still be producing content and require more robust capabilities at the point of access, but we should see a proliferation of a new type of content (and applications) access points.
InfoQ: Any recommendation for a developer or an architect?
Didier: If you are a java developer, give GWT a try, you will adopt it. And if you are a .NET developer, keep an eye on Volta, it is certainly a keystone of Microsoft web strategy.
Difference between programming language and execution language
Alexandre de Pellegrin
Alexandre de Pellegrin