The first public attempt by Erik Meijer to "Democratize the Cloud" is ready as of 11:00 AM PST, December 5, 2007, for VS 2008 developers to test-drive a Community Technical Preview. You can read the details about Volta, a product of the Tesla incubator group, and download the first CTP from Microsoft Live Labs' newly minted Volta site.
According to Erik's Democratizing the Cloud using Microsoft Live Labs Volta post today on the Lambda the Ultimate forum:
Volta is a collection of tools that enable programmers to develop asynchronous and distributed (including but not limited to AJAX) applications by successive refactoring of normal, sequential, programs written in standard .NET languages (this CTP requires Visual Studio 2008) and deploy the resulting applications on a wide variety of target platforms (this CTP supports Internet Explorer and FireFox). Or as I sometimes say when I am trying to sound like a marketing person "Volta stretches the .NET platform to cover the Cloud" [two-part video clip.] Volta allows programmers to concentrate on the essential complexity involved in building AJAX application and have our tools take care of the gory details and accidental complexity. ...
Volta embraces the Lean Programming principle of delaying irreversible decisions until the last possible responsible moment. In particular we want to delay decisions about distribution as long as possible. To help developers make informed decisions about the distribution a program across tiers, the Rotunda profiler from MSR is fully integrated in the Volta toolchain. By automatically injection hooks for all interesting events, Rotunda creates trace information that can be inspected using the standard Service Trace Viewer tool. [Emphasis added.]
Concurrent software development means starting development when only partial requirements are known and developing in short iterations that provide the feedback that causes the system to emerge. Concurrent development makes it possible to delay commitment until the last responsible moment, that is, the moment at which failing to make a decision eliminates an important alternative. If commitments are delayed beyond the last responsible moment, then decisions are made by default, which is generally not a good approach to making decisions.
See the "Erik Meijer Compares Volta and Google Web Services for Mary Jo Foley" topic of the LINQ and Entity Framework Posts for 12/3/2007+ post for additional input from Erik.
Volta Project Description and Sample Applications
The Volta site provides a more detailed description:
Developers can target either web browsers or the CLR as clients and Volta handles the complexities of tier-splitting for you. Volta comprises tools such as end-to-end profiling to make architectural refactoring and optimization simple and quick. In effect, Volta offers a best-effort experience in multiple environments without any changes to the application.
Here's a screen capture of the Virtual Earth sample client application:
Click image above to display full-size capture.
Following are links to previous OakLeaf posts on LINQ 2.0, Volta, Tesla, and "Democratizing the Cloud":
- Erik Meijer to Demo Volta for the First Time at OOPSLA 2007 (August 14, 2007)
- QCon 2007 and Erik Meijer Coming to San Francisco November 7 - 9 (August 2, 2007)
- Erik Meijer and LINQ 2.0 - Round 2 (May 18, 2007)
- "LINQ 2.0" in Early Returns from QCon 2007, London (March 16, 2007)
- Erik Meijer to Keynote QCon London Conference (February 22, 2007)
There's no mention of "LINQ 2.0" or even LINQ anywhere on the live.com site. Apparently, LINQ 2.0 will go its own way independently of Volta as the next version of LINQ.
Limitations and Comments
According to the Volta Known Issues and Limitations page:
One of the benefits of Volta compiling to MSIL before the destination runtime, rather than source-to-source translation, is that developers can use multiple .NET programming languages to build Volta applications and controls, including C# and Visual Basic. However, currently you will encounter several limitations when using Visual Basic, including:
- Late binding is not supported.
- Services from My (such as User, Computer, etc.) are not supported.
The following are also unsupported unless explicitly specified otherwise:
- Conversion functions. For example, the Cint conversion function works only if the underlying type supports the conversion.
- Helpers and VB6 legacy. For example, the Beep method is unsupported.
So VB again is a second-class citizen, even in project intended to "democratize" a technology.
According to a forum message, you can't use Volta with VS 2008 Express editions because they don't allow loading the extensions that are required to run Volta.
Expect to hear more about Volta after I download the bits and give it a test drive.
Moved: 12/6/2007 from LINQ and Entity Framework Posts for 12/3/2007+