Microsoft architect compares Volta and Google's GWT

Microsoft architect compares Volta and Google's GWT

Summary: Is Microsoft's "cloud programming" toolset Volta -- which Microsoft released in early preview form this week -- a "me-too" response to Google's Google Web Toolkit (GWT)? Here's Volta Architect Erik Meijer's response.

SHARE:

Is Microsoft's "cloud programming" toolset Volta -- which Microsoft released in early preview form this week -- a "me-too" response to Google's Google Web Toolkit (GWT)? I've seen that argument from fellow ZDNet blogger Ed Burnette and others around the Web. Microsoft architect compares Volta and Google’s GWT

I asked Microsoft Volta Architect Erik Meijer to explain, from his perspective, the similarities and differences between the two rivals' offerings. Here's Meijer's take (which I edited by cutting out the code samples which Meijer provided):

Leveraging the Potential of a Common Intermediate Language

Since Volta’s release, there have been a number of questions about how Volta compares to other tools like GWT. Both Volta and the GWT aim to make Web programming easy for developers that are comfortable in contemporary object-oriented languages such as Java, or C#, VB, etc. However, comparing Volta and GWT is a little bit like comparing apples and oranges, both are a kind of fruit, yet at the same time they are completely different. For instance, the GWT is an official product that came out of beta in August this year and has been available since May 2006. Volta is an experiment that is still in its early stages. We are releasing it early so we can gather feedback from developers on the architectural directions. The focus of this release is not application performance, size, or compatibility robustness. There are also a number of significant technical differences between GWT and Volta as explained below.

Universal

From an architectural point of view, Volta facilitates a many-to-many mapping between programming languages and execution environments by leveraging the Common Intermediate Language as defined by ISO/IEC 23271:2006. The idea of using a common intermediate language to translate M source languages into N target languages dates back as far as 1958 with UNCOL (see also this). You can use any .NET language to write your application and compile it to a .NET assembly using an unmodified compiler. Volta then post-processes the generated MSIL inside the assembly based on declarative annotations in the code by automatically inserting all the boilerplate code necessary for running the application across multiple tiers and making asynchronous invocations. Finally, you deploy the modified assembly on any target execution environment that is capable of executing MSIL.

Microsoft Volta architect compares Volta and Google’s GWTBecause Volta works on the MSIL level, it is completely language and target execution environment agnostic. In particular this implies that further translation of MSIL to JavaScript is a completely orthogonal decision with respect to declarative tier-splitting and asynchronous method definitions. You can use Volta to create distributed applications where the client runs on say the regular desktop CLR as easily as ones that run inside the browser.

Another benefit of working on the MSIL level is that the Volta tools have a holistic view of the complete application. For instance, this enables end-to-end profiling by injecting instrumentation hooks into the MSIL as part of the tier-splitting rewriting process, but also seamless cross-tier debugging. Again, these benefits are agnostic of both the source language (such as VB, C#, F#, Eiffel, ...) and the target execution environment.

The GWT takes source code written in Java only and directly compiles it into JavaScript.

Microsoft Volta architect compares Volta and Google’s GWTAs a result, you can not directly use the GWT to write AJAX applications in other languages that target the JVM such as JRuby, and it does not directly support writing distributed applications with a regular rich Java client.

Declarative

Volta tries to minimize the number of steps it takes for developers to refactor a client-only application into a multi-tier application. To make instances of a class run on the server in Volta , you express your intent declaratively by placing the custom attribute [RunAtOrigin] on the class declaration.

To create an asynchronous version of a method, you similarly declaratively mark an extern signature declaration using the [Async] custom attribute. There is no special interface that the MyService class needs to implement.

In the GWT achieving the same goal requires the programmer to define two interfaces and one class and extend/implement two required base types RemoteService and RemoteServiceServlet.

Independently extensible

The GWT uses Java native methods to interface to JavaScript where the JavaScript implementation of that native method is defined in a special pragma comment.

Microsoft architect compares Volta and Google’s GWTIn many situations, the compiler can automatically infer the JavaScript implementation from the metadata for the corresponding function declaration in C# (or VB). The Volta toolkit therefore implements a sophisticated convention over configuration heuristic to simplify writing foreign function interfaces. As a result this typically enables programmers to import JavaScript functionality by just writing a single [Import] attribute on an extern method signature.

When occasionally the programmer needs to explicitly provide the JavaScript for a given method, the JavaScript code is passed as an argument to the Import attribute and checked by the Volta post-compiler for syntactic correctness.

Topics: Google, Microsoft, Open Source, Software Development

About

Mary Jo has covered the tech industry for 30 years for a variety of publications and Web sites, and is a frequent guest on radio, TV and podcasts, speaking about all things Microsoft-related. She is the author of Microsoft 2.0: How Microsoft plans to stay relevant in the post-Gates era (John Wiley & Sons, 2008).

Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.

Talkback

27 comments
Log in or register to join the discussion
  • Wow!

    Thanks so much for taking the time to post this. What a great description and comparison of Volta to GWT!

    I am so excited about Volta and it's possibilities!

    -Brandon
    http://dynamics-ax.blogspot.com
    skillaid
    • lol

      another NBMer is wettung the pants when hot air is comming from M$.
      Linux Geek
      • Man

        What a very thought out comment, from a what? Linux person??? Welcome to the MS world my friend. What kills me is people get mad at Microsoft for going the distance and coming out with great products, and tools for Real business to run.

        It's sad, but I guess when your on top that's what happens. :-) Sorry my Linux Friend, that Microsoft ruins your day... it makes my day bighter! :-)
        skillaid
      • lol

        Another ABM post completely void of anything remotely intelligent.
        <br>
        The lol part is knowing you think there was some "wit" involved in your post.
        xuniL_z
        • who cares

          How does it go ... "Just the fact that people seem to be getting dumber and dumber. You know, I mean we have all this amazing technology and yet computers have turned into basically four figure wank machines. The internet was supposed to set us free, democratize us, but all it's really given us is Howard Dean's aborted candidacy and 24 hour a day access to kiddie porn. People...they don't write anymore - they blog. Instead of talking, they text, no punctuation, no grammar: LOL this and LMFAO that. You know, it just seems to me it's just a bunch of stupid people pseudo-communicating with a bunch of other stupid people at a proto-language that resembles more what cavemen used to speak than the King's English."

          Who cares if it's MS of Linux, this is a cool platform!
          thastark@...
  • RE: Microsoft architect compares Volta and Google's GWT

    Nice idea, but slow as hell. Try the demos at the Volta and you will understand that something is fundamentally wrong with Volta.
    MattiasW
    • Please

      Volta is not a Production Release... it has not been optimized... it was released as a Labs Project, for getting feedback on functionality and Architecture path. Did you not read the "Apples to Oranges" comparison???

      If all you have to say is it's slow? Well Duh!

      Sorry for the harsh response, but I get tired of hearing half baked comments, on something that is well thought out like 'it's slow' on a lab release package.... What do you expect?
      skillaid
      • I heard the same with Vista

        the slow beta was going to be faster with RC1, it wasn't. The gold code would be faster. Vista Home Premium was if anything slower.
        Perhaps this guy has a point.
        stevey_d
        • What is the relationship between this

          and Vista? I didn't notice any mention of vista in the article. <br>
          Your logic suffers from total lack of relationship. It's like saying Leopard suffers from a major data loss flaw (besides being a dog), memory randomization is useless and easily defeated, time machine is not nearly ready and the fell short of getting the Vista look on their screens, And therefore, all future Apple projects that have any beta flaws, will have them in the released version.
          <br>
          Good thinking.
          xuniL_z
  • So here it is...

    the reason that Microsoft employee John Carroll pushed out his blog two days ago. See: http://blogs.zdnet.com/carroll/?p=1736

    Microsoft has to publish it's "Me Too".

    I figured there was either a product just released or one in the wings that Microsoft had to create a cloud over by saying they also were going to provide that capability...it's the "U" part of FUD.
    Cardinal_Bill
    • So Google did a "Me Too" with Gmail?

      I remember many e-mail services before Google came in quite late, so I guess Google also makes "Me Too" features as well.

      And I remember how Live Maps had traffic integration before Google Maps. So another "Me Too" from Google.

      Guess Microsoft's not the only one.
      quikboy
      • Just a long...

        history of it. Somewhere in the neighborhood of...just when did Bill Gates "buy" a product that he'd already contracted to supply IBM with?
        Cardinal_Bill
        • I believe that came after

          Apple licensed code and used existing hardware technology designed in the 60s and 70s for Darpa as it's platform. <br>
          So what are you saying? If you are suggesting Microsoft is somehow "more" guilty of this than Apple or Google or the Linux Community at large, you are just lying to yourself. <br>
          <br>
          along the way Microsoft began writing the majority of Windows code. Apple can never lay claim to that. They'v never written more than when "Woz" created the Apple I/II with great ideas but was overruled by Jobs. 35 years later Apple is still at less than 10% of the market. <br>
          <br>
          what is the purpose of making such biased suggestions and attempting to mislead with them? When was the last "virgin" technological innovation in IT?
          xuniL_z
    • Message has been deleted.

      xuniL_z
      • Message has been deleted.

        Cardinal_Bill
        • Message has been deleted.

          Joeman57
          • Message has been deleted.

            Cardinal_Bill
      • Where to start....

        [i]Apple made the first mp3 player? [/i]
        If you are referring to the Ipod, it is a MP4 player (MPEG 4 Audio Layer) while MP3 is MPEG 2 Audio Layer 3. These are ISO standards, look them up.

        [i]Google made the first search engine? [/i]
        Google developed a search and ranking algorithm, apparently it is very popular. There are many search engines out there (and many actually use Google Search Appliances, also). There are also directories like Yahoo (which was around several years before). Since your job at CompUSA is about to go away, I would expect that you have other things to think about now, though.

        [i] Apple created the desktop GUI? [/i]
        This was never claimed, they lifted ideas from a tour at Xerox PARC. They did not claim to have created the desktop GUI.

        [i]Mozilla created the first browser? [/i]
        Mozilla was the name of the browser created by Marc Andreesen, the first browser was created at CERN (on NeXTStep) in Switzerland. Mozilla references the school mascot where Andreesen got his degree. No one has ever claimed that Mozilla was the first browser but it was the first graphical browser (prior web browsers only handles text, as per HTML 2.0 and prior).

        Are you still in pain?
        B.O.F.H.
  • The MSIL Angle is Huge

    Volta is huge for the non-orthodox MS software development community: it opens a significant feature set within .Net to dynamic languages, ranging from Python and Ruby to F# and VFP. If it signals a shift within MS to recognition of the importance of non-MS languages within .Net, then Volta's importance is even greater.
    HankFay
    • No

      No, that's not true. I read it on a post above your's, cardinal Bill said:

      "...recreate what Google is doing, except adding hooks to all the stuff that will only run on their OS."

      I assume that must be true, and MS is doing nothing but recreating what Google already has."

      I mean, if that ABM crowd says it, it's true.
      KTLA