{"id":446,"date":"2007-12-06T21:07:23","date_gmt":"2007-12-06T20:07:23","guid":{"rendered":"http:\/\/www.itwriting.com\/blog\/?p=446"},"modified":"2007-12-06T21:07:23","modified_gmt":"2007-12-06T20:07:23","slug":"microsoft-volta-magic-but-is-it-useful-magic","status":"publish","type":"post","link":"https:\/\/www.itwriting.com\/blog\/446-microsoft-volta-magic-but-is-it-useful-magic.html","title":{"rendered":"Microsoft Volta: magic, but is it useful magic?"},"content":{"rendered":"<p>Microsoft has released an <a href=\"http:\/\/labs.live.com\/volta\/\">experimental preview of Volta<\/a>, a new development product with some unusual characteristics:<\/p>\n<p>1. You write your application for a single machine, then split it into multiple tiers with a few declarations:<\/p>\n<blockquote>\n<p>Volta automatically creates communication, serialization, and remoting code. Developers simply write custom attributes on classes or methods to tell Volta the tier on which to run them.<\/p>\n<\/blockquote>\n<p>2. Volta seamlessly translates .NET byte code (MSIL) to Javascript, on an as-needed basis, to achieve cross-platform capability:<\/p>\n<blockquote>\n<p>When no version of the CLR is available on the client, Volta may translate MSIL into semantically-equivalent Javascript code that can be executed in the browser. In effect, Volta offers a best-effort experience in the browser without any changes to the application.<\/p>\n<\/blockquote>\n<p>The reasoning behind this is that single-machine applications are easier to write. Therefore, if the compiler can handle the tough job of distributing an application over multiple tiers, it makes the developer&#8217;s job easier. Further, if you can move processing between tiers with just a few declarations, then you can easily explore different scenarios.<\/p>\n<p>Since the input to Volta is MSIL, you can work in Visual Studio using any .NET language.<\/p>\n<p>Visionary breakthrough, or madness? Personally I&#8217;m sceptical, though I have had a head start, since this sounds very like what I <a href=\"http:\/\/www.itwriting.com\/blog\/?p=158\">discussed with Eric Meijer earlier this year<\/a>, when it was called LINQ 2.0:<\/p>\n<blockquote>\n<p>Meijer\u2019s idea is programmers should be able to code for the easiest case, which is an application running directly on the client, and be able to transmute it into a cross-platform, multi-tier application with very little change to the code.<\/p>\n<\/blockquote>\n<p>What are my reservations? It seems hit-and-miss, not knowing whether your app will be executed by the CLR or as Javascript; while leaving it to a compiler to decide how to make an application multi-tier, bearing in mind issues like state management and optimising data flow, sounds like a recipe for inefficiency and strange bugs.<\/p>\n<p>It seems Microsoft is not sure about it either:<\/p>\n<blockquote>\n<p>Volta is an experiment that enables Microsoft to explore new ways of developing distributed applications and to continue to innovate in this new generation of software+services. It is not currently a goal to fit Volta into a larger product roadmap. Instead, we want feedback from the community of partners and customers to influence other Live Labs technologies and concepts.<\/p>\n<\/blockquote>\n<div class=\"wlWriterSmartContent\" id=\"scid:0767317B-992E-4b12-91E0-4F059A8CECA8:f8444ec0-2516-418f-b6df-837d341b4df3\" style=\"padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px\">Technorati tags: <a href=\"http:\/\/technorati.com\/tags\/microsoft\" rel=\"tag\">microsoft<\/a>, <a href=\"http:\/\/technorati.com\/tags\/volta\" rel=\"tag\">volta<\/a>, <a href=\"http:\/\/technorati.com\/tags\/.net\" rel=\"tag\">.net<\/a>, <a href=\"http:\/\/technorati.com\/tags\/msil\" rel=\"tag\">msil<\/a>, <a href=\"http:\/\/technorati.com\/tags\/linq%202\" rel=\"tag\">linq 2<\/a>, <a href=\"http:\/\/technorati.com\/tags\/eric%20meijer\" rel=\"tag\">eric meijer<\/a>, <a href=\"http:\/\/technorati.com\/tags\/distributed%20applications\" rel=\"tag\">distributed applications<\/a>, <a href=\"http:\/\/technorati.com\/tags\/visual%20studio\" rel=\"tag\">visual studio<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Microsoft has released an experimental preview of Volta, a new development product with some unusual characteristics: 1. You write your application for a single machine, then split it into multiple tiers with a few declarations: Volta automatically creates communication, serialization, and remoting code. Developers simply write custom attributes on classes or methods to tell Volta &hellip; <a href=\"https:\/\/www.itwriting.com\/blog\/446-microsoft-volta-magic-but-is-it-useful-magic.html\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Microsoft Volta: magic, but is it useful magic?<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[44,55,80],"tags":[],"class_list":["post-446","post","type-post","status-publish","format-standard","hentry","category-internet","category-microsoft","category-software-development"],"_links":{"self":[{"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/posts\/446","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/comments?post=446"}],"version-history":[{"count":0,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/posts\/446\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/media?parent=446"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/categories?post=446"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/tags?post=446"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}