MONTREAL—Microsoft is at work on a project to enable everyday developers to build Web applications, just as easily as folks have built Visual Basic applications over the years.
The project to enable this is called Volta and it is headed up by Erik Meijer, a Microsoft architect in the companys SQL Server group. Meijer gave a demonstration of Volta at OOPSLA (Object-Oriented Programming, Languages, Systems and Applications) here on Oct. 23 and later discussed the technology with me.
“If you look at when VB came on the market, it was really, really hard to do Windows programming,” Meijer said. “You had to be a C++ programmer, and then VB came around and then suddenly people could write Windows programs. Now its the era of the Web, but in some senses were back in the early days of Windows programming.”
Meijer entitled his talk “Democratizing the Cloud,” indicating that Volta makes it easier for anyone to build apps that can be deployed on the Internet or in the cloud.
“Just like Visual Basic democratized programming Windows by removing much of the boilerplate, such as message pumps and window handles, that contributed more to the problem than to the solution, we propose a toolkit of language extensions, APIs and tools that do the same for Web programming,” he said.
Moreover, “As a result, ordinary programmers can concentrate on the essential aspects of building distributed and mobile applications such as partitioning and flowing code and data across tiers, deployment, security, etc. without getting bogged down in low level details,” Meijer said.
Indeed, a key concept of Volta is its support for tier splitting, or enabling parts of a program to run off different tiers and allowing the developer to make the decision as to which tier later in the deployment process, rather than early on in the development of the application, Meijer said.
Click here to read more about Googles collaboration in the cloud.
For instance, tier splitting “facilitates partitioning a program that conceptually or logically runs on a single tier (we like to start on the client) across different physical tiers,” Meijer said.
Traditionally, developers have to decide up-front how their application is distributed across tiers, Meijer said.
A typical modern Web-based application involves various tiers, he said. Each of these tiers usually brings along a myriad of different languages and a tier-specific data model, Meijer said in paper on his OOPSLA talk. Moreover, as a rule, each of the tiers also runs on a different machine, or at best in a different process.
“For instance, the client-tier runs in the browser and uses JavaScript, CSS, HTML as languages and most often uses XML or JSON [JavaScript Object Notation] as the underlying data model,” he said. “The data tier runs inside the database and uses SQL as the language and relational tables as the data model. The middle-tier ties the other two tiers together and runs on the Web server with Java, Perl, PHP, Ruby, C], or Visual Basic as the programming language with their respective (object-oriented) data models.”
Dragos Manolescu, an architect in the Microsoft Patterns and Practices group, who helped Meijer with the demo, said Volta encourages developers to “use whats in the room,” meaning they should not have to learn new things and that the tool should take care of the low-level plumbing for them.
“Volta is the toolkit, so its like a set of Visual Studio plug-ins, tools, libraries to make this [democratization] possible and to realize that vision,” Meijer said.
The Volta team chose the .Net CLR (Common Language Runtime) as its universal computation model.
“On the data-tier we compile MSIL [Microsoft Intermediate Language] to SQL,” Meijer said. “On the client-tier we compile MSIL to JavaScript or Flash… The upshot is Microsoft uniformly provides at least the illusion of the .Net platform on each tier, “in effect stretching it to cover the Cloud. Application programmers only need to care that they can run MSIL everywhere, not about how this is technically accomplished under the hood,” he said.
Meijers group is called the Data Programmability Team, formerly known as the Tesla team, after Nikola Tesla, a scientist who inspired Meijer. “My goal in life is to be as creative as he was,” he said. The Volta name comes from Allesandro Volta, Meijer said. Both Tesla and Volta were pioneers in the field of electricity.
Meijer said there are several frameworks and toolkits out there that promote the easy use of JavaScript and Asynchronous JavaScript and XML (AJAX), including the Dojo toolkit and the Google Web Toolkit (GWT). But “Volta just blows GWT out of the water,” Meijer said.
However, asked if the technology would be productized, Meijer said he does not make those decisions, but that he is hopeful. If productized it would likely be made available as a set of Visual Studio extensions, said Manolescu said. “It would probably look like any other VSIP [Visual Studio Integration Partner] package.”
Moreover, Volta does not only support Microsoft technology, but is cross-browser and could support other operating systems, Meijer said.
And the tier splitting is not limited to client and server. “Imagine on the client that I have Silverlight and I have some libraries in Flash,” Meijer said. “Instead of splitting that out on the client and server, I now can split it based on one piece that lives on Silverlight, one that lives in Flash and one in JavaScript that glues it all together.”
Should the Volta technology be productized? Well, its being used by other Microsoft groups such as the Live Labs team to build applications. And if the company wants to make good on some of the promises made by Microsoft chief software architect Ray Ozzie about the companys push to support computing in the cloud, I dont see how they can afford not to productize Volta.
Check out eWEEK.coms for the latest news, reviews and analysis in programming environments and developer tools.