The 40th IPP Symposium

Building Web Applications Using Volta

Erik Meijer, Microsoft

Programming Web applications today is too hard for ordinary programmers. They have to deal with an excess of low-level tools and technologies causing them to drown in the accidental complexity. These tools are only adding to the problem instead of helping to solve real issues around security, distribution, asynchronicity, performance, and correctness.

Using techniques and insights from decades of academic language research such as declarative and functional programming, monads, continuations, meta programming, and aspect weaving, the Live Labs Volta toolkit allows programmers to construct Web applications from simple single tier applications written in any .NET language (VB, C#, IronPython) by successive applications of declarative tier-splitting refactoring steps.

Volta applications can be deployed on a wide variety of target platforms ranging from rich clients (desktop CLR and Silverlight) to pure standards-based Web browsers. Tier-splitting is currently also leveraged for instrumentation, automated testing, and foreign function calls.

Erik Meijer is an architect in the Microsoft SQL server division where he runs the Data Programmability Languages team. His team collaborates across the company on programming languages support for data accessibility and distributed programming. In the last couple of years, Erik has worked closely with the C# and Visual Basic language design teams on C# 3.0, VB9 and the various flavors of LINQ. Most recently his team has released LiveLabs Volta, a toolkit that attempts to democratize writing Web applications just like Visual Basic 1 made GUI programming accessible to the masses.

Prior to joining Microsoft Erik was an associate professor at Utrecht University and adjunct professor at the Oregon Graduate Institute. As an academic Erik worded on the standard functional programming language Haskell98 as well as more experimental languages such as Comega and Mondrian. In his very early days, he pursued using category theory as a basis for program refactoring.