Acropolis: Yet Another Executable XML

time to read 5 min | 802 words

image_thumb3_thumb_thumbI would really like to understand the attidute behind "no code* (TM) " approach.

* Except a whole lot of of XML that you are not supposed to look at but usually have.

 

The new announcement from Microsoft is hitting all the key points that scream "STOP" in my case:

 

Tomorrow you will build parts, behaviors, navigation, and even business logic (via Windows Workflow Foundation) all in a designer. You will even wire components and dependencies and define how they interact, all without writing or generating any code.

I do believe that I have heard this promise before. About Object Oriented Programming, COM, XML, Web Services, SOA, etc.

Being a developer is about telling the computer what to do. Trying to hide this behind a wizard is nice, but it is not an approach that scales, period.

I am not going to program in this, but it looks like that is what I would need to do if I wanted to understand what is going on.

<CsamlFile xmlns="http://schemas.microsoft.com/winfx/2006/xaml/csaml"
           xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <NamespaceDeclaration Identifier="MyNamespace">
        <ClassDeclaration Identifier="MyClass" 
                          Access="Public">
            <MethodDeclaration Identifier="Main" 
                               Access="Public" 
                               Modifier="Static" 
                               ReturnType="{x:Type void}">
                <InvocationExpression
                  MemberAccess="System.Console.WriteLine">
                    <InvocationExpression.ArgumentList>
                        <Literal Type="{x:Type string}"
                                 Value="Hello, CSAML! ">
                    </InvocationExpression.ArgumentList>
                </InvocationExpression>
            </MethodDeclaration>
        </ClassDeclaration>
    </NamespaceDeclaration>
</CsamlFile> 

Oh wait, there is a designer?

Nice, I saw how that turned out for SSIS, BizTalk, etc when we are talking about even moderate complexity. How do I debug it? There is a special tool? How do I profile it? There is nothing for that?

Can we please stop trying to run away from code? If I want declerative language, I will write a DSL, and it sure as hell wouldn't be in XML.

I am all for smarter frameworks and making our life easier, but I am completely against trying to get to: "all without writing or generating any code"

Newsflash: XML is code, period.