Whadda Dey Do on a Rainy Night in-a Rio?
The newest member of the Microsoft stable of .NET languages was mentioned at the PDC 2008 Parallel Symposium, Maestro. I am joining Samuel Jack in thinking that it’s cute that this language follows the other musically named languages…F#, C#, OCML#, Pascal# and of course, Boo#.
At PDC 2008 (in the Parallel Symposium, apparently), Microsoft started talking about a new language that may be joining the .Net family. Continuing the musical theme of certain other languages, this one is called Maestro. Functional Fun: Maestro: A new .Net language for parallel programming from Microsoft
Jonathan Erickson is kind enough to provide us with an interview with Niklas Gustafsson, the creator(?) of the new Maestro language and Mr. Gustafsson describes in his own words what Maestro is supposed to be and how it fits within the .NET family of languages.
Maestro is what I call a “special-purpose language” (SPL) meant to address some of the complexities of authoring parallel applications. By “special-purpose” I mean that I fully expect that Maestro would not be the only language you use to write an application, it is designed to be used with an object-oriented language like C# or VB. Unlike some domain-specific languages, Maestro has enough general-purpose features so that you don’t have to jump out into C# or VB just because you want to add two numbers or scan through a list, but its focus is on orchestrating concurrent component interactions, not implementing algorithms or authoring type libraries.The foundation for Maestro is .NET, but it is not just another OO language. While it can access all of .NET’s class libraries and capabilities, you wouldn’t use Maestro to define new classes and types. Instead, the foundational idea behind Maestro is the need to isolate parallel components and provide a much simplified model for concurrency within each isolated component. Maestro is an actor-oriented language relying on a simplified model declarative coordination within a component, and message-passing between components that are freely concurrent. Maestro: A Special-Purpose Language for Parallel Programming
Of course there is a video posted on the Channel 9 site of Josh Philips, Niklas Gustafsson and Artur Laksberg discussing the language.
Josh Phillips(PM), Niklas Gustafsson(Architect), and Artur Laksberg(Developer) of the Parallel Computing Platform Team spend some time with me to discuss a managed (.NET-based) DSL (Domain Specific Language) for concurrent programming, Maestro. Maestro incorporates well-entrenched language patterns (imperative, OO, C style syntax, etc) and language constructs (channels, agents, domains) in a compelling way to make concurrent composition more accessible and familiar to the legions of sequential code composers. Maestro: A Managed Domain Specific Language For Concurrent Programming | Going Deep | Channel 9
There are a few blogs about Maestro, one from Niklas Gustafsson himself and another from Josh Phillips.
In my last post, I lamented that there was no Maestro-specific blog, but no sooner had I spoken…Josh Phillips got us set up with something specific to Maestro, where we’ll be posting most things related to this incubation effort.Concurrently Speaking : Maestro Blog Available
Given a programming model such as Maestro, where components are strictly isolated from each other, we have to ask how components communicate with each other. Clearly, without some form of communication, the components are not merely isolated from each other, they are unaware of each other.Maestro: Isolation, Agents, and Message-passing in .NET : Channels


Leave a Reply